-
公开(公告)号:US20240143560A1
公开(公告)日:2024-05-02
申请号:US18392883
申请日:2023-12-21
Applicant: Google LLC
Inventor: Wilson Cheng-Yi Hsieh , Alexander Lloyd , Eric Hugh Veach
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.
-
公开(公告)号:US11853269B2
公开(公告)日:2023-12-26
申请号:US17824348
申请日:2022-05-25
Applicant: Google LLC
Inventor: Wilson Cheng-Yi Hsieh , Alexander Lloyd , Eric Hugh Veach
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.
-
公开(公告)号:US11816086B2
公开(公告)日:2023-11-14
申请号:US18069519
申请日:2022-12-21
Applicant: Google LLC
Inventor: Alexander Khesin , Alexander Lloyd , Sebastian Kanthak
IPC: G06F16/22 , G06F16/27 , G06F16/2458
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.
-
公开(公告)号:US20230214374A1
公开(公告)日:2023-07-06
申请号:US18069519
申请日:2022-12-21
Applicant: Google LLC
Inventor: Alexander Khesin , Alexander Lloyd , Sebastian Kanthak
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.
-
公开(公告)号:US11561953B2
公开(公告)日:2023-01-24
申请号:US17296441
申请日:2020-03-18
Applicant: Google LLC
Inventor: Alexander Khesin , Alexander Lloyd , Sebastian Kanthak
IPC: G06F16/22 , G06F16/27 , G06F16/2458
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.
-
公开(公告)号:US11496572B1
公开(公告)日:2022-11-08
申请号:US16538178
申请日:2019-08-12
Applicant: Google LLC
Inventor: Iulian Moraru , Brian Frank Cooper , Sebastian Kanthak , Alexander Lloyd , Mert Akdere
IPC: H04L67/133 , H04L67/60 , H04L69/28
Abstract: Systems and methods are provided for sending and receiving remote procedure calls (RPCs). Based on a message in a first RPC, a second set of RPCs are created by one or more computing devices, where each of the second set of RPCs includes a portion of the message in the first RPC. The message in the first RPC is replaced with a reference to each RPC of the second set of RPCs. The one or more computing devices send the first RPC with the references, and also send the second set of RPCs.
-
公开(公告)号:US11372825B2
公开(公告)日:2022-06-28
申请号:US16730095
申请日:2019-12-30
Applicant: Google LLC
Inventor: Wilson Chang-Yi Hsieh , Alexander Lloyd , Eric Hugh Veach
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.
-
公开(公告)号:US11132381B2
公开(公告)日:2021-09-28
申请号:US16241598
申请日:2019-01-07
Applicant: Google LLC
Inventor: Wilson Cheng-Yi Hsieh , Alexander Lloyd
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.
-
29.
公开(公告)号:US10462218B1
公开(公告)日:2019-10-29
申请号:US14799891
申请日:2015-07-15
Applicant: Google LLC
Inventor: Iulian Moraru , Brian Frank Cooper , Sebastian Kanthak , Alexander Lloyd , Mert Akdere
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.
-
公开(公告)号:US10191960B2
公开(公告)日:2019-01-29
申请号:US14988535
申请日:2016-01-05
Applicant: GOOGLE LLC
Inventor: Wilson Cheng-Yi Hsieh , Alexander Lloyd
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.
-
-
-
-
-
-
-
-
-