Systems and Methods for Increasing Database Access Concurrency

    公开(公告)号:US20240143560A1

    公开(公告)日:2024-05-02

    申请号:US18392883

    申请日:2023-12-21

    Applicant: Google LLC

    CPC classification number: G06F16/211 G06F16/2322 G06F16/2329

    Abstract: The various embodiments described herein include methods, devices, and systems for reading and writing data from a database table. In one aspect, a method includes: (1) initiating a read transaction to read from a first non-key column of a row in the database table, the database table having a plurality of rows, each row comprising a primary key and a plurality of non-key columns, the initiating including: (a) determining that a write transaction holds a lock on a second non-key column of the row in the database table, and (b) determining that no lock is held on the first non-key column; and (2) in response, concurrently reading data from the first non-key column and writing a new column value to the second non-key column; where each non-key column includes a last-write timestamp that indicates when the last write occurred for the respective non-key column.

    Systems and methods for increasing database access concurrency

    公开(公告)号:US11853269B2

    公开(公告)日:2023-12-26

    申请号:US17824348

    申请日:2022-05-25

    Applicant: Google LLC

    CPC classification number: G06F16/211 G06F16/2322 G06F16/2329

    Abstract: The various embodiments described herein include methods, devices, and systems for reading and writing data from a database table. In one aspect, a method includes: (1) initiating a read transaction to read from a first non-key column of a row in the database table, the database table having a plurality of rows, each row comprising a primary key and a plurality of non-key columns, the initiating including: (a) determining that a write transaction holds a lock on a second non-key column of the row in the database table, and (b) determining that no lock is held on the first non-key column; and (2) in response, concurrently reading data from the first non-key column and writing a new column value to the second non-key column; where each non-key column includes a last-write timestamp that indicates when the last write occurred for the respective non-key column.

    Cosharding and randomized cosharding

    公开(公告)号:US11816086B2

    公开(公告)日:2023-11-14

    申请号:US18069519

    申请日:2022-12-21

    Applicant: Google LLC

    CPC classification number: G06F16/2282 G06F16/2477 G06F16/27

    Abstract: The technology relates to cosharding tables within a distributed storage system. A data table including one or more rows may be received. Each row in the data table may include an identifier key and pieces of data. Each piece of data in the data table may be indexed into individual rows of an index table, wherein each row in the index table includes data associated with the identifier key of the data table from which the piece of data in the respective row was indexed. The index table may be sharded into splits, wherein the sharding includes assigning each row of the index table into one of the splits based on the identifier key of the data table from which the piece of data in the respective row was indexed. The splits may be stored into two or more portions of the distributed storage system.

    Cosharding and Randomized Cosharding
    24.
    发明公开

    公开(公告)号:US20230214374A1

    公开(公告)日:2023-07-06

    申请号:US18069519

    申请日:2022-12-21

    Applicant: Google LLC

    CPC classification number: G06F16/2282 G06F16/27

    Abstract: The technology relates to cosharding tables within a distributed storage system. A data table including one or more rows may be received. Each row in the data table may include an identifier key and pieces of data. Each piece of data in the data table may be indexed into individual rows of an index table, wherein each row in the index table includes data associated with the identifier key of the data table from which the piece of data in the respective row was indexed. The index table may be sharded into splits, wherein the sharding includes assigning each row of the index table into one of the splits based on the identifier key of the data table from which the piece of data in the respective row was indexed. The splits may be stored into two or more portions of the distributed storage system.

    Cosharding and randomized cosharding

    公开(公告)号:US11561953B2

    公开(公告)日:2023-01-24

    申请号:US17296441

    申请日:2020-03-18

    Applicant: Google LLC

    Abstract: The technology relates to cosharding tables within a distributed storage system. A data table including one or more rows may be received. Each row in the data table may include an identifier key and pieces of data. Each piece of data in the data table may be indexed into individual rows of an index table, wherein each row in the index table includes data associated with the identifier key of the data table from which the piece of data in the respective row was indexed. The index table may be sharded into splits, wherein the sharding includes assigning each row of the index table into one of the splits based on the identifier key of the data table from which the piece of data in the respective row was indexed. The splits may be stored into two or more portions of the distributed storage system.

    Systems and methods for increasing database access concurrency

    公开(公告)号:US11372825B2

    公开(公告)日:2022-06-28

    申请号:US16730095

    申请日:2019-12-30

    Applicant: Google LLC

    Abstract: The various embodiments described herein include methods, devices, and systems for reading and writing data from a database table. In one aspect, a method of reading and writing data from a database table, includes: (1) initiating a write transaction to write data to a first non-key column of a row of the database table, the database table having a plurality of rows, each row comprising a primary key and a plurality of non-key columns; (2) locking the first non-key column; and (3) in accordance with a determination that the second non-key column is not locked, initiating a read transaction to read data from the second non-key column, where initiation of the read transaction occurs prior to completion of the write transaction.

    Pipelining paxos state machines
    28.
    发明授权

    公开(公告)号:US11132381B2

    公开(公告)日:2021-09-28

    申请号:US16241598

    申请日:2019-01-07

    Applicant: Google LLC

    Abstract: Paxos transactions are pipelined in a distributed database formed by a plurality of replica servers. A leader server is selected by consensus of the replicas, and receives a lock on leadership for an epoch. The leader gets Paxos log numbers for the current epoch, which are greater than the numbers allocated in previous epochs. The leader receives database write requests, and assigns a Paxos number to each request. The leader constructs a proposed transaction for each request, which includes the assigned Paxos number and incorporates the request. The leader transmits the proposed transactions to the replicas. Two or more write requests that access distinct objects in the database can proceed simultaneously. The leader commits a proposed transaction to the database after receiving a plurality of confirmations for the proposed transaction from the replicas. After all the Paxos numbers have been assigned, inter-epoch tasks are performed before beginning a subsequent epoch.

    System and method for sending proposals within a distributed state machine replication system

    公开(公告)号:US10462218B1

    公开(公告)日:2019-10-29

    申请号:US14799891

    申请日:2015-07-15

    Applicant: Google LLC

    Abstract: Systems and methods are provided for efficiently sending large units of data in a network. A sender computing device splits the proposal into a plurality of fragments, and sends each of the plurality of fragments to a receiver computing device. The sender computing device receives an acknowledgement from the receiver computing device for each fragment received by the receiver computing device. If no acknowledgements for any fragments are received within a predetermined time period, it may be determined that an error occurred, in which case the sender may time out or take another action. The sender computing device further sends a message to the receiver computing device, wherein a payload of the message includes one or more references corresponding to the plurality of fragments sent.

    Pipelining paxos state machines
    30.
    发明授权

    公开(公告)号:US10191960B2

    公开(公告)日:2019-01-29

    申请号:US14988535

    申请日:2016-01-05

    Applicant: GOOGLE LLC

    Abstract: Paxos transactions are pipelined in a distributed database formed by a plurality of replica servers. A leader server is selected by consensus of the replicas, and receives a lock on leadership for an epoch. The leader gets Paxos log numbers for the current epoch, which are greater than the numbers allocated in previous epochs. The leader receives database write requests, and assigns a Paxos number to each request. The leader constructs a proposed transaction for each request, which includes the assigned Paxos number and incorporates the request. The leader transmits the proposed transactions to the replicas. Two or more write requests that access distinct objects in the database can proceed simultaneously. The leader commits a proposed transaction to the database after receiving a plurality of confirmations for the proposed transaction from the replicas. After all the Paxos numbers have been assigned, inter-epoch tasks are performed before beginning a subsequent epoch.

Patent Agency Ranking