# US 12,182,081 B2 · Consistent schema-less scalable storage system for orders

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,081 B2
- Document ID: US12182081B2
- Status: Granted
- Kind: B2
- Application number: 18/063,507
- Filed: 2022-12-08
- Published: 2023-04-27
- Granted: 2024-12-31
- Earliest claimed: 2015-11-20
- Assignees: eBay Inc.
- Applicants: eBay Inc.
- Inventors: Anand Sekar Rengasamy Rajasekar; Srilatha Koneru; Mansi Narula; Senthilnathan Subramanian; Vijayshree Singh; Scott Sharp; Vijay Kumar Sivakumar
- Web page: https://patentgrep.com/patent/US12182081B2

## CPC

- G06F 16/211: {Schema design and management}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In various example embodiments, a system and method for consistent schema-less and scalable database storage are described herein. A data object is generated. The data object corresponds to a column of a table from a database. The data object includes information regarding an order that is placed over a network publication system. The data object is stored in the column of the table in the database. A request to access the data object is received from a device of a first user. The data object is transmitted to the device of the first user. The data is kept coherent during concurrent updates by using optimistic locks. The data is kept backward and forward compatible utilizing intermediate data structures common to both versions of the software. The data is kept searchable by using lookup indexes. The storage system is kept scalable by sharing data across many databases.

## Claims

### Claim 1

A system for managing transactions of an online marketplace, comprising:
one or more processors; and
a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:
accessing, by an application server, a database that includes a first data object and a second data object, the first data object including at least one attribute that is compatible with a first version of a software application and incompatible with a second version of the software application, the second data object including a plurality of attributes that are compatible with the first version and the second version of the software application, the accessing being based at least in part on whether a request indicates the at least one attribute that is incompatible with the second version of the software application;
providing, by the application server to a first client device and a second client device, a data object that is either the first data object or the second data object accessed from the database, the data object comprising one or more order attributes associated with an order placed via the online marketplace;
receiving, from the first client device, a first modification of the one or more order attributes of the data object;
storing the first modification of the one or more order attributes of the data object in the database;
receiving, from the second client device, a second modification of the one or more order attributes of the data object, wherein the second modification is received subsequent to storing the first modification; and
discarding the second modification based at least in part on storing the first modification and based at least in part on the second modification being received subsequent to storing the first modification.

### Claim 2 (depends on 1)

The system of claim 1, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
identifying a check-in of the data object by the first client device to the database based at least in part on storing the first modification; and
placing a lock on the data object based at least in part on identifying the check-in, wherein discarding the second modification is based at least in part on the lock.

### Claim 3 (depends on 1)

The system of claim 1, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
transmitting an error message to the second client device indicating that the second modification of the one or more order attributes of the data object will not be stored in the database, wherein discarding the second modification is based at least in part on transmitting the error message.

### Claim 4 (depends on 1)

The system of claim 1, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
identifying a check-in of the data object by the second client device to the database;
providing access to the data object to the second client device based at least in part on identifying the check-in, wherein providing access to the data object is based at least in part on storing the first modification;
receiving, from the second client device, a third modification of the one or more order attributes of the data object; and
storing the third modification of the one or more order attributes of the data object in the database.

### Claim 5 (depends on 1)

The system of claim 1, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
determining that the second modification of the one or more order attributes of the data object is stale based at least in part on storing the first modification of the data object, wherein discarding the second modification is based at least in part on determining that the second modification is stale.

### Claim 6 (depends on 1)

The system of claim 1, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
receiving, from the first client device, the request to access data, wherein providing the data object from the database comprises providing the first version of the software application based at least in part on the request indicating the at least one attribute that is incompatible with the second version of the software application.

### Claim 7 (depends on 6)

The system of claim 6, wherein the instructions are further executable by the one or more processors to cause the system to perform operations comprising:
generating the first data object based at least in part on the at least one attribute being incompatible with the second version of the software application.

### Claim 8

A method for managing transactions of an online marketplace, comprising:
accessing, by an application server, a database that includes a first data object and a second data object, the first data object including at least one attribute that is compatible with a first version of a software application and incompatible with a second version of the software application, the second data object including a plurality of attributes that are compatible with the first version and the second version of the software application, the accessing being based at least in part on whether a request indicates the at least one attribute that is incompatible with the second version of the software application;
providing, by the application server to a first client device and a second client device, a data object that is either the first data object or the second data object accessed from the database, the data object comprising one or more order attributes associated with an order placed via the online marketplace;
receiving, from the first client device, a first modification of the one or more order attributes of the data object;
storing, using the one or more servers, the first modification of the one or more order attributes of the data object in the database;
receiving, from the second client device, a second modification of the one or more order attributes of the data object, wherein the second modification is received subsequent to storing the first modification; and
discarding the second modification based at least in part on storing the first modification and based at least in part on the second modification being received subsequent to storing the first modification.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
identifying a check-in of the data object by the first client device to the database based at least in part on storing the first modification; and
placing a lock on the data object based at least in part on identifying the check-in, wherein discarding the second modification is based at least in part on the lock.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
transmitting an error message to the second client device indicating that the second modification of the one or more order attributes of the data object will not be stored in the database, wherein discarding the second modification is based at least in part on transmitting the error message.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
identifying a check-in of the data object by the second client device to the database;
providing access to the data object to the second client device based at least in part on identifying the check-in, wherein providing access to the data object is based at least in part on storing the first modification;
receiving, from the second client device, a third modification of the one or more order attributes of the data object; and
storing, using the one or more servers, the third modification of the one or more order attributes of the data object in the database.

### Claim 12 (depends on 8)

The method of claim 8, further comprising:
determining that the second modification of the one or more order attributes of the data object is stale based at least in part on storing the first modification of the data object, wherein discarding the second modification is based at least in part on determining that the second modification is stale.

### Claim 13 (depends on 8)

The method of claim 8, further comprising:
receiving, from the first client device, the request to access data, wherein providing the data object from the database comprises providing the first version of the software application based at least in part on the request indicating the at least one attribute that is incompatible with the second version of the software application.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
generating the first data object based at least in part on the at least one attribute being incompatible with the second version of the software application.

### Claim 15

A non-transitory computer-readable medium storing instructions which, when executed by a processor, cause a system for managing transactions of an online marketplace to perform operations comprising:
accessing, by an application server, a database that includes a first data object and a second data object, the first data object including at least one attribute that is compatible with a first version of a software application and incompatible with a second version of the software application, the second data object including a plurality of attributes that are compatible with the first version and the second version of the software application, the accessing being based at least in part on whether a request indicates the at least one attribute that is incompatible with the second version of the software application;
providing, by the application server to a first client device and a second client device, a data object that is either the first data object or the second data object accessed from the database, the data object comprising one or more order attributes associated with an order placed via the online marketplace;
receiving, from the first client device, a first modification of the one or more order attributes of the data object;
storing the first modification of the one or more order attributes of the data object in the database;
receiving, from the second client device, a second modification of the one or more order attributes of the data object, wherein the second modification is received subsequent to storing the first modification; and
discarding the second modification based at least in part on storing the first modification and based at least in part on the second modification being received subsequent to storing the first modification.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the processor to cause the system to perform operations comprising:
identifying a check-in of the data object by the first client device to the database based at least in part on storing the first modification; and
placing a lock on the data object based at least in part on identifying the check-in, wherein discarding the second modification is based at least in part on the lock.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the processor to cause the system to perform operations comprising:
transmitting an error message to the second client device indicating that the second modification of the one or more order attributes of the data object will not be stored in the database, wherein discarding the second modification is based at least in part on transmitting the error message.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the processor to cause the system to perform operations comprising:
identifying a check-in of the data object by the second client device to the database;
providing access to the data object to the second client device based at least in part on identifying the check-in, wherein providing access to the data object is based at least in part on storing the first modification;
receiving, from the second client device, a third modification of the one or more order attributes of the data object; and
storing the third modification of the one or more order attributes of the data object in the database.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the processor to cause the system to perform operations comprising:
determining that the second modification of the one or more order attributes of the data object is stale based at least in part on storing the first modification of the data object, wherein discarding the second modification is based at least in part on determining that the second modification is stale.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the processor to cause the system to perform operations comprising:
receiving, from the first client device, the request to access data, wherein providing the data object from the database using the first version of the software application based at least in part on the request indicating the at least one attribute that is incompatible with the second version of the software application.
