# US 2018/0025047 A1 · Method and system for concurrent database operation

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

- Number: US 2018/0025047 A1
- Document ID: US20180025047A1
- Status: Published application
- Kind: A1
- Application number: 15/214,901
- Filed: 2016-07-20
- Published: 2018-01-25
- Earliest claimed: 2016-07-20
- Assignees: Yahoo Holdings, Inc.
- Applicants: Yahoo Holdings, Inc.
- Inventors: Edward Bortnikov; Anastasia Braginsky; Eshcar Hillel; Guy Gueta; Dmitry Basin; Moshe Sulamy
- Web page: https://patentgrep.com/patent/US20180025047A1

## CPC

- G06F 16/2329: {using versioning}
- G06F 16/2308: {Concurrency control (transaction processing G06F9/466)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present teaching relates to concurrent database operation. In one example, a plurality of requests which includes a scan request to obtain first data associated with a plurality of first keys stored in a database is received concurrently. A global version number is updated upon receipt of the scan request. The first data associated with the plurality of first keys is obtained based on the updated global version number. The first data is provided in response to the scan request.

## Claims

### Claim 1

A method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for database operation, the method comprising:
receiving, concurrently, a plurality of requests which includes a scan request to obtain first data associated with a plurality of first keys stored in a database;
updating a global version number upon receipt of the scan request;
obtaining the first data associated with the plurality of first keys based on the updated global version number; and
providing the first data in response to the scan request.

### Claim 2 (depends on 1)

The method of claim 1, wherein the updating the global version number comprises:
retrieving the global version number in the database; and
increasing the global version number.

### Claim 3 (depends on 2)

The method of claim 2, wherein the obtaining the first data associating with the plurality of first keys based on the updated global version number comprises:
determining a relevant version number for each of the plurality of first keys, wherein the relevant version number is a largest version number below the updated global version number that is associated with the first key in the database; and
retrieving a value of each of the plurality of first keys associated with the corresponding relevant version number.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of requests includes a get request to retrieve second data associated with a second key specified in the get request, and wherein the method further comprises:
obtaining the second data associated with the second key based on the global version number; and
providing the second data in response to the get request.

### Claim 5 (depends on 4)

The method of claim 4, wherein the obtaining the second data associated with the second key based on the global version number comprises:
determining a relevant version number for the second key, wherein the relevant version number is a largest version number below the global version number that is associated with the second key in the database; and
retrieving a value of the second key associated with the relevant version number.

### Claim 6 (depends on 1)

The method of claim 1, wherein the plurality of requests includes a put request to update the database with third data associated with a third key specified in the put request, and the method further comprises:
updating the database with the third data associated with the third key; and
transmitting a confirmation in response to the get request.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
when the put request is not associated with a first version number, assigning the global version number to be the first version number associated with the put request; and
associating the first version number with the third key in the database when the third key does not have a version number in the database.

### Claim 8

A system, having at least one processor, storage, and a communication platform connected to a network for database operation, the system comprising:
a request classifier configured to:
receive, concurrently, a plurality of requests; and
classify each of the plurality of requests into one of a scan request to obtain first data associated with a plurality of first keys stored in a database, a get request to obtain second data associated with a second key stored in the database, and a put request to update the database with third data associated with a third key, wherein the plurality of requests includes the scan request; and
a data scanner configured to:
receive the scan request from the request classifier;
update a global version number upon receipt of the scan request;
obtain the first data associated with the plurality of first keys based on the updated global version number; and
providing the first data in response to the scan request.

### Claim 9 (depends on 8)

The system of claim 8, wherein updating the global version number comprises:
retrieving the global version number in the database; and
increasing the global version number.

### Claim 10 (depends on 9)

The system of claim 9, wherein obtaining the first data associating with the plurality of first keys based on the updated global version number comprises:
determining a relevant version number for each of the plurality of first keys, wherein the relevant version number is a largest version number below the updated global version number that is associated with the first key in the database; and
retrieving a value of each of the plurality of first keys associated with the corresponding relevant version number.

### Claim 11 (depends on 8)

The system of claim 8, wherein the plurality of requests includes a get request to retrieve second data associated with a second key specified in the get request, and wherein the system further comprises a data reader configured to:
obtain the second data associated with the second key based on the global version number; and
provide the second data in response to the get request.

### Claim 12 (depends on 11)

The system of claim 11, wherein obtaining the second data associated with the second key based on the global version number comprises:
determining a relevant version number for the second key, wherein the relevant version number is a largest version number below the global version number that is associated with the second key in the database; and
retrieving a value of the second key associated with the relevant version number.

### Claim 13 (depends on 8)

The system of claim 8, wherein the plurality of requests includes a put request to update the database with third data associated with a third key specified in the put request, and the system further comprises a data updater configured to:
update the database with the third data associated with the third key; and
transmit a confirmation in response to the get request.

### Claim 14 (depends on 13)

The system of claim 13, further the data updater further configured to:
when the put request is not associated with a first version number, assign the global version number to be the first version number associated with the put request; and
associate the first version number with the third key in the database when the third key does not have a version number in the database.

### Claim 15

A machine-readable tangible and non-transitory medium having information for database operation, when read by the machine, causes the machine to perform the following:
receiving, concurrently, a plurality of requests which includes a scan request to obtain first data associated with a plurality of first keys stored in a database;
updating a global version number upon receipt of the scan request;
obtaining the first data associated with the plurality of first keys based on the updated global version number; and
providing the first data in response to the scan request.

### Claim 16 (depends on 15)

The machine-readable tangible and non-transitory medium of claim 15, wherein the updating the global version number comprises:
retrieving the global version number in the database; and
increasing the global version number.

### Claim 17 (depends on 16)

The machine-readable tangible and non-transitory medium of claim 16, wherein the obtaining the first data associating with the plurality of first keys based on the updated global version number comprises:
determining a relevant version number for each of the plurality of first keys, wherein the relevant version number is a largest version number below the updated global version number that is associated with the first key; and
retrieving a value of each of the plurality of first keys associated with the corresponding relevant version number.

### Claim 18 (depends on 15)

The machine-readable tangible and non-transitory medium of claim 15, wherein the plurality of requests includes a get request to retrieve second data associated with a second key specified in the get request, and wherein the information, when read by the machine, further causes the machine to perform the following:
obtaining the second data associated with the second key based on the global version number; and
providing the second data in response to the get request.

### Claim 19 (depends on 18)

The machine-readable tangible and non-transitory medium of claim 18, wherein the obtaining the second data associated with the second key based on the global version number comprises:
determining a relevant version number for the second key, wherein the relevant version number is a largest version number below the global version number that is associated with the second key in the database; and
retrieving a value of the second key associated with the relevant version number.

### Claim 20 (depends on 15)

The machine-readable tangible and non-transitory medium of claim 15, wherein the plurality of requests includes a put request to update the database with third data associated with a third key specified in the put request, and wherein the information, when read by the machine, further causes the machine to perform the following:
updating the database with the third data associated with the third key;
when the put request is not associated with a first version number, assigning the global version number to be the first version number associated with the put request;
associating the first version number with the third key in the database when the third key does not have a version number in the database; and
transmitting a confirmation in response to the get request.
