IP Library Granted Patent US 11,281,631
Granted Patent B2
US 11,281,631 · App. 16/927,264 · Granted Mar 22, 2022

Associating application-specific methods with tables used for data storage

Inventors: Jeffrey Dean (Palo Alto, CA); Sanjay Ghemawat (Mountain View, CA); Andrew Fikes (Los Altos, CA); Yasushi Saito (Mountain View, CA)
Assignee: Google LLC
G06F16/182G06F9/5083G06F16/13G06F16/184G06F16/22H04L67/1002H04L67/1004H04L67/1029
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,281,631
App. No.
16/927,264
Granted
Mar 22, 2022
Kind
B2
Abstract

A method of accessing data includes storing a table that includes a plurality of tablets corresponding to distinct non-overlapping table portions. Respective pluralities of tablet access objects and application objects are stored in a plurality of servers. A distinct application object and distinct tablet are associated with each tablet access object. Each application object corresponds to a distinct instantiation of an application associated with the table. The tablet access objects and associated application objects are redistributed among the servers in accordance with a first load-balancing criterion. A first request directed to a respective tablet is received from a client. In response, the tablet access object associated with the respective tablet is used to perform a data access operation on the respective tablet, and the application object associated with the respective tablet is used to perform an additional computational operation to produce a result to be returned to the client.

Claims (57)

1. A method, comprising:

at a server system comprising a set of interconnected computers storing a table structure comprising a plurality of tablets that correspond to distinct table portions, a plurality of tablet access objects, and a plurality of application objects corresponding to instantiations of an application associated with the table structure, each tablet access object of the plurality of tablet access objects being associated with a tablet of the plurality of tablets:

receiving a request directed to the stored table structure at the server system; and

in response to the request:

identifying a target tablet of the plurality of tablets containing data relevant to the request;

identifying an access object associated with the target tablet;

using the access object associated with the target tablet to enable access to perform an access operation on the target tablet; and

returning a result of the access operation to the client.

2. The method of claim 1 , wherein each application object being associated with a tablet access object in the plurality of tablet access objects, and each application object and its associated tablet access object are associated with the tablet of the plurality of tablets.

3. The method of claim 1 , wherein each application object and its associated tablet access object are distinct from a tablet of the plurality of tablets.

4. The method of claim 1 , wherein each application object and its associated tablet access object are associated with different tablets of the plurality of tablets.

5. The method of claim 1 , wherein the respective tablet is stored at a first server of the server system and the respective access object is stored at a second server of the server system.

6. The method of claim 1 , further comprising, after performing the data access operation and before returning the result, performing a computational operation to produce the result.

7. The method of claim 6 , wherein the data access operation is a search operation and the computational operation is selected from the group consisting of filtering search results, aggregating search results, and verifying permission.

8. The method of claim 6 , wherein performing the computational operation comprises using the access object at the second server to perform the computational operation.

9. The method of claim 6 , wherein performing the computational operation comprises using the application object to perform the computational operation.

10. The method of claim 1 , wherein the stored table structure comprises data contained in a plurality of tablets, the plurality of tablets including the tablet and one or more additional tablets; and

the method further comprises, in response to the client request:

identifying the one or more additional tablets;

identifying at least one first server of the server system storing the one or more additional tablets;

identifying at least one second server of the server system storing one or more additional access objects for the one or more additional tablets;

directing the client request to the at least one second server;

using the one or more additional access objects to perform second access operations on the one or more additional tablets; and

returning a result of the second access operations.

11. The method of claim 1 , wherein each tablet of the plurality of tablets corresponds to a distinct range of rows in the table structure.

12. The method of claim 1 , wherein receiving a request comprises issuing a remote procedure call to the server system.

13. The method of claim 12 , wherein the dividing and associating are performed in response to (i) a determination that (i) the particular tablet has a size exceeding a first size criterion, (ii) a determination that a load on the particular tablet exceeds a first load criterion, or (iii) a user command.

14. The method of claim 1 , further comprising:

redistributing the tablet access objects and the associated application objects among the server system accordance with a first load-balancing criterion, wherein redistributing the tablet access objects includes:

unloading the access object from the a first server of the server system; and

loading the access object onto a second server of the server system, distinct from the first server.

15. The method of claim 1 , further comprising:

dividing a particular tablet of the plurality of tablets into first and second new tablets corresponding to distinct non-overlapping portions of the particular tablet; and

associating a first access object with the first new tablet and a second access object with the second new tablet.

16. A server system, comprising:

in a set of interconnected computers:

memory storing a table structure comprising a plurality of tablets that correspond to distinct table portions, a plurality of tablet access objects, and a plurality of application objects corresponding to instantiations of an application associated with the table structure, each tablet access object of the plurality of tablet access objects being associated with a tablet of the plurality of tablets;

a plurality of processors; and

one or more programs stored in the memory and configured for execution by the plurality of processors, wherein execution of the one or more programs by the plurality of processors causes the set of interconnected computers to perform operations, including:

receiving a client request directed to the stored table structure at the server system; and

in response to the client request:

identifying a target tablet of the plurality of tablets containing data relevant to the request;

identifying an access object associated with the target tablet;

using the access object associated with the target tablet to enable access to perform an access operation on the target tablet stored; and

returning a result of the access operation to the client.

17. The server system of claim 16 , wherein the respective tablet is stored at a first server of the server system and the respective access object is stored at a second server of the server system.

18. The server system of claim 16 , wherein the one or more processors are further configured to, in response to the client request, after performing the data access operation and before returning the result, perform a computational operation to produce the result.

19. The server system of claim 16 , wherein the data access operation is a search operation and the computational operation is selected from the group consisting of filtering search results, aggregating search results, and verifying permission.

20. A non-transitory computer-readable storage medium storing one or more programs for use in accessing data, the one or more programs configured to be executed by a server system comprising a set of interconnected computers,

wherein the set of interconnected computers store a table structure comprising a plurality of tablets that correspond to distinct table portions, a plurality of tablet access objects, and a plurality of application objects corresponding to instantiations of an application associated with the table structure, each tablet access object of the plurality of tablet access objects being associated with a tablet of the plurality of tablets,

wherein execution of the one or more programs by the server system causes the server system to perform operations comprising:

receiving a request directed to the stored table structure at the server system; and

in response to the request:

identifying a target data tablet of a plurality of data tablets, the data tablet containing the data relevant to the request;

identifying an access object associated with the target tablet;

using the access object associated with the target tablet to enable access to perform an access operation on the target tablet; and

returning a result of the access operation to the client.

Assignments (2)
CHANGE OF NAME Recorded Jul 15, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053214/0494 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2020
From: DEAN, JEFFREY A.; GHEMAWAT, SANJAY; FIKES, ANDREW B.; SAITO, YASUSHI
To: GOOGLE INC.
Reel/Frame 053203/0821 →
Continuity (4)
Continuation 15868928 · Jan 11, 2018
Continuation 13938126 · Jul 9, 2013
Continuation 12247984 · Oct 8, 2008
Related Publication 20200341950A1 · Oct 29, 2020