Patents by Inventor Andrew Fikes
Andrew Fikes has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11822521Abstract: 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.Type: GrantFiled: February 14, 2022Date of Patent: November 21, 2023Assignee: Google LLCInventors: Jeffrey Adgate Dean, Sanjay Ghemawat, Andrew Fikes, Yasushi Saito
-
Publication number: 20230188452Abstract: Methods and systems for monitoring performance in a distributed storage system described. One example method includes identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; generating probe requests based on the identified requests, the probe requests including probe request parameter values for probe request parameter values, representing a statistical sample of the request parameters included in the identified requests; sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to perform preparations for servicing each probe request in response to receiving the probe request; receiving responses to the probe requests from the distributed storage system; and outputting at least one performance metric value measuring a current performance state of the distributed storage system based on the received responses.Type: ApplicationFiled: February 7, 2023Publication date: June 15, 2023Applicant: Google LLCInventors: Vadim Borisov, Andrew Fikes, Brian F. Cooper
-
Patent number: 11582130Abstract: Methods and systems for monitoring performance in a distributed storage system described. One example method includes identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; generating probe requests based on the identified requests, the probe requests including probe request parameter values for probe request parameter values, representing a statistical sample of the request parameters included in the identified requests; sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to perform preparations for servicing each probe request in response to receiving the probe request; receiving responses to the probe requests from the distributed storage system, and outputting at least one performance metric value measuring a current performance state of the distributed storage system based on the received responses.Type: GrantFiled: June 15, 2020Date of Patent: February 14, 2023Assignee: Google LLCInventors: Vadim Borisov, Andrew Fikes, Brian F. Cooper
-
Patent number: 11556375Abstract: In a distributed system where a client's call to commit a transaction occurs outside the transaction's lock-hold interval, computation of timestamp information for the transaction is moved to a client library, while ensuring that no conflicting reads or writes are performed between a time of the computation and acquiring all locks for the transaction. The transaction is committed in phases, with each phase being initiated by the client library. Timestamp information is added to the locks to ensure that timestamps are generated during lock-hold intervals. An increased number of network messages is thereby overlapped with a commit wait period in which a write in a distributed database is delayed in time to ensure concurrency in the database.Type: GrantFiled: June 8, 2020Date of Patent: January 17, 2023Assignee: Google LLCInventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
-
Publication number: 20220222219Abstract: 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.Type: ApplicationFiled: February 14, 2022Publication date: July 14, 2022Inventors: Jeffrey Adgate Dean, Sanjay Ghemawat, Andrew Fikes, Yasushi Saito
-
Patent number: 11281631Abstract: 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.Type: GrantFiled: July 13, 2020Date of Patent: March 22, 2022Assignee: Google LLCInventors: Jeffrey Dean, Sanjay Ghemawat, Andrew Fikes, Yasushi Saito
-
Publication number: 20200382403Abstract: Methods and systems for monitoring performance in a distributed storage system described. One example method includes identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; generating probe requests based on the identified requests, the probe requests including probe request parameter values for probe request parameter values, representing a statistical sample of the request parameters included in the identified requests; sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to perform preparations for servicing each probe request in response to receiving the probe request; receiving responses to the probe requests from the distributed storage system, and outputting at least one performance metric value measuring a current performance state of the distributed storage system based on the received responses.Type: ApplicationFiled: June 15, 2020Publication date: December 3, 2020Applicant: Google LLCInventors: Vadim Borisov, Andrew Fikes, Brian F. Cooper
-
Publication number: 20200341950Abstract: 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.Type: ApplicationFiled: July 13, 2020Publication date: October 29, 2020Inventors: Jeffrey Dean, Sanjay Ghemawat, Andrew Fikes, Yasushi Saito
-
Publication number: 20200301729Abstract: In a distributed system where a client's call to commit a transaction occurs outside the transaction's lock-hold interval, computation of timestamp information for the transaction is moved to a client library, while ensuring that no conflicting reads or writes are performed between a time of the computation and acquiring all locks for the transaction. The transaction is committed in phases, with each phase being initiated by the client library. Timestamp information is added to the locks to ensure that timestamps are generated during lock-hold intervals. An increased number of network messages is thereby overlapped with a commit wait period in which a write in a distributed database is delayed in time to ensure concurrency in the database.Type: ApplicationFiled: June 8, 2020Publication date: September 24, 2020Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
-
Patent number: 10691484Abstract: In a distributed system where a client's call to commit a transaction occurs outside the transaction's lock-hold interval, computation of timestamp information for the transaction is moved to a client library, while ensuring that no conflicting reads or writes are performed between a time of the computation and acquiring all locks for the transaction. The transaction is committed in phases, with each phase being initiated by the client library. Timestamp information is added to the locks to ensure that timestamps are generated during lock-hold intervals. An increased number of network messages is thereby overlapped with a commit wait period in which a write in a distributed database is delayed in time to ensure concurrency in the database.Type: GrantFiled: July 14, 2017Date of Patent: June 23, 2020Assignee: Google LLCInventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
-
Patent number: 10686686Abstract: Methods and systems for monitoring performance in a distributed storage system described. One example method includes identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; generating probe requests based on the identified requests, the probe requests including probe request parameter values for probe request parameter values, representing a statistical sample of the request parameters included in the identified requests; sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to perform preparations for servicing each probe request in response to receiving the probe request; receiving responses to the probe requests from the distributed storage system; and outputting at least one performance metric value measuring a current performance state of the distributed storage system based on the received responses.Type: GrantFiled: November 10, 2016Date of Patent: June 16, 2020Assignee: Google LLCInventors: Vadim Borisov, Andrew Fikes, Brian F. Cooper
-
Patent number: 10394908Abstract: A user's prior searching and browsing activities are recorded for subsequent use. A user may examine the user's prior searching and browsing activities in a number of different ways, including indications of the user's prior activities related to advertisements. A set of search results may be modified in accordance with the user's historical activities. The user's activities may be examined to identify a set of preferred locations. The user's set of activities may be shared with one or more other users. The set of preferred locations presented to the user may be enhanced to include the preferred locations of one or more other users. A user's browsing activities may be monitored from one or more different client devices or client application. A user's browsing volume may be graphically displayed.Type: GrantFiled: February 8, 2016Date of Patent: August 27, 2019Assignee: GOOGLE LLCInventors: Oren E. Zamir, Jeffrey L. Korn, Andrew Fikes
-
Publication number: 20180329739Abstract: In a distributed system where a client's call to commit a transaction occurs outside the transaction's lock-hold interval, computation of timestamp information for the transaction is moved to a client library, while ensuring that no conflicting reads or writes are performed between a time of the computation and acquiring all locks for the transaction. The transaction is committed in phases, with each phase being initiated by the client library. Timestamp information is added to the locks to ensure that timestamps are generated during lock-hold intervals. An increased number of network messages is thereby overlapped with a commit wait period in which a write in a distributed database is delayed in time to ensure concurrency in the database.Type: ApplicationFiled: July 14, 2017Publication date: November 15, 2018Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
-
Patent number: 9774676Abstract: A system, computer-readable storage medium storing at least one program, and a computer-implemented method for identifying a storage group in a distributed storage system into which data is to be stored is presented. A data structure including information relating to storage groups in a distributed storage system is maintained, where a respective entry in the data structure for a respective storage group includes placement metrics for the respective storage group. A request to identify a storage group into which data is to be stored is received from a computer system. The data structure is used to determine an identifier for a storage group whose placement metrics satisfy a selection criterion. The identifier for the storage group whose placement metrics satisfy the selection criterion is returned to the computer system.Type: GrantFiled: May 21, 2013Date of Patent: September 26, 2017Assignee: GOOGLE INC.Inventors: Jeffrey Adgate Dean, Sanjay Ghemawat, Yasushi Saito, Andrew Fikes, Christopher Jorgen Taylor, Sean Quinlan, Michal Piotr Szymaniak, Sebastian Kanthak, Wilson Cheng-Yi Hsieh, Alexander Lloyd, Michael James Boyer Epstein
-
Publication number: 20170141992Abstract: Methods and systems for monitoring performance in a distributed storage system described. One example method includes identifying requests sent by clients to the distributed storage system, each request including request parameter values for request parameters; generating probe requests based on the identified requests, the probe requests including probe request parameter values for probe request parameter values, representing a statistical sample of the request parameters included in the identified requests; sending the generated probe requests to the distributed storage system over a network, wherein the distributed storage system is configured to perform preparations for servicing each probe request in response to receiving the probe request; receiving responses to the probe requests from the distributed storage system; and outputting at least one performance metric value measuring a current performance state of the distributed storage system based on the received responses.Type: ApplicationFiled: November 10, 2016Publication date: May 18, 2017Inventors: Vadim Borisov, Andrew Fikes, Brian F. Cooper
-
Patent number: 9596294Abstract: A system, computer-readable storage medium storing at least one program, and a computer-implemented method for committing transactions on remote servers is presented. Commit requests are issued to remote servers in a set of remote servers to request that the remote servers in the set of remote servers agree to commit a transaction at a first designated future time. When responses from the remote servers in the set of remote servers are received before a first abort time and indicate that all remote servers in the set of remote servers have agreed to commit the transaction at the first designated future time, commit commands are issued to the remote servers in the set of remote servers instructing the remote servers to perform the transaction at the first designated future time.Type: GrantFiled: May 10, 2013Date of Patent: March 14, 2017Assignee: GOOGLE INC.Inventors: Sebastian Kanthak, Alexander Lloyd, Chris Jorgen Taylor, Andrew Fikes
-
Patent number: 9298576Abstract: In accordance with some implementations, a method of collecting statistics about processor usage is disclosed. The method is performed on a data storage server having one or more processors and memory storing one or more programs for execution by the one or more processors. The server system executes one or more processes, wherein each of the one or more first processes is associated with an entity from a group of one or more entities. The server system then receives an interrupt signal at a first predetermined interval. In response to receiving the interrupt signal and for each processor of the one or more processors, the server system interrupts the process currently being executed on the processor. The server system increments the counter associated with the interrupted process. The server system then resumes the interrupted process.Type: GrantFiled: June 4, 2013Date of Patent: March 29, 2016Assignee: GOOGLE INC.Inventors: Sanjay Ghemawat, Andrew Fikes, Chris Jorgen Taylor
-
Patent number: 9256506Abstract: A system, computer-readable storage medium storing at least one program, and a computer-implemented method for performing operations on target servers is presented. A request including an operation is received. A set of target servers associated with the operation is identified. The following request processing operations are performed until a predetermined termination condition has been satisfied: a target server in the set of target servers to which the request has not been issued and whose health metrics satisfy health criteria is identified, the request to perform the operation is issued to the target server, and when the request to perform the operation fails at the target server, health metrics for the target server are updated to indicate that the request to perform the operation failed at the target server and health check operation is scheduled to be performed with respect to the target server.Type: GrantFiled: June 3, 2013Date of Patent: February 9, 2016Assignee: GOOGLE INC.Inventors: Chris Jorgen Taylor, Sanjay Ghemawat, Alexander Lloyd, Andrew Fikes, Yaz Saito, Wilson Cheng-Yi Hsieh, Christopher Cunningham Frost
-
Patent number: 9256685Abstract: A user's prior searching and browsing activities are recorded for subsequent use. A user may examine the user's prior searching and browsing activities in a number of different ways, including indications of the user's prior activities related to advertisements. A set of search results may be modified in accordance with the user's historical activities. The user's activities may be examined to identify a set of preferred locations. The user's set of activities may be shared with one or more other users. The set of preferred locations presented to the user may be enhanced to include the preferred locations of one or more other users. A user's browsing activities may be monitored from one or more different client devices or client application. A user's browsing volume may be graphically displayed.Type: GrantFiled: March 31, 2005Date of Patent: February 9, 2016Assignee: Google Inc.Inventors: Oren E. Zamir, Jeffrey L. Korn, Andrew Fikes
-
Patent number: 9195611Abstract: A method of storing data is disclosed. The method is performed on a data storage server having one or more processors and memory storing one or more programs for execution by the one or more processors. The data storage server receives a first and second data request, the requests including a first and second range of one or more keys and an associated first and second value respectively. The data storage server identifies one or more overlap points associated with the first range and the second range. For each of the overlap points, the data storage server then creates data items including ranges of keys, the ranges of each data item including one or more keys that are either: (a) the keys between a terminal key of the first or second range and the overlap point, or (b) the keys between two adjacent overlap points.Type: GrantFiled: June 4, 2013Date of Patent: November 24, 2015Assignee: GOOGLE INC.Inventors: Jeffrey Adgate Dean, Sanjay Ghemawat, Andrew Fikes