Patents by Inventor Brian Frank Cooper

Brian Frank Cooper 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: 11899649
    Abstract: In a distributed database, a transaction is to be committed at a first coordinator server and one or more participant servers 1210. The first coordinator server is configured to receive a notification that each participant server of the transaction is prepared at a respective prepared timestamp, the respective prepared timestamp being chosen within a time range for which the respective participant server obtained at least one lock 1220. The first coordinator server computes the commit timestamp for the transaction equal or greater than each of the prepared timestamps 1230, and restrict the commit timestamp such that a second coordinator server sharing at least one of the participant servers for one or more other transactions at a shared shard cannot select the same commit timestamp for any of the other transactions 1240. The transaction is committed at the commit timestamp 1250.
    Type: Grant
    Filed: September 9, 2022
    Date of Patent: February 13, 2024
    Assignee: Google LLC
    Inventors: Sebastian Kanthak, Brian Frank Cooper
  • Patent number: 11831711
    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.
    Type: Grant
    Filed: November 3, 2022
    Date of Patent: November 28, 2023
    Assignee: Google LLC
    Inventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
  • Publication number: 20230052324
    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.
    Type: Application
    Filed: November 3, 2022
    Publication date: February 16, 2023
    Inventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
  • Patent number: 11556375
    Abstract: 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: Grant
    Filed: June 8, 2020
    Date of Patent: January 17, 2023
    Assignee: Google LLC
    Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
  • Publication number: 20230004545
    Abstract: In a distributed database, a transaction is to be committed at a first coordinator server and one or more participant servers 1210. The first coordinator server is configured to receive a notification that each participant server of the transaction is prepared at a respective prepared timestamp, the respective prepared timestamp being chosen within a time range for which the respective participant server obtained at least one lock 1220. The first coordinator server computes the commit timestamp for the transaction equal or greater than each of the prepared timestamps 1230, and restrict the commit timestamp such that a second coordinator server sharing at least one of the participant servers for one or more other transactions at a shared shard cannot select the same commit timestamp for any of the other transactions 1240. The transaction is committed at the commit timestamp 1250.
    Type: Application
    Filed: September 9, 2022
    Publication date: January 5, 2023
    Inventors: Sebastian Kanthak, Brian Frank Cooper
  • Patent number: 11496572
    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.
    Type: Grant
    Filed: August 12, 2019
    Date of Patent: November 8, 2022
    Assignee: Google LLC
    Inventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
  • Patent number: 11474991
    Abstract: In a distributed database, a transaction is to be committed at a first coordinator server and one or more participant servers 1210. The first coordinator server is configured to receive a notification that each participant server of the transaction is prepared at a respective prepared timestamp, the respective prepared timestamp being chosen within a time range for which the respective participant server obtained at least one lock 1220. The first coordinator server computes the commit timestamp for the transaction equal or greater than each of the prepared timestamps 1230, and restrict the commit timestamp such that a second coordinator server sharing at least one of the participant servers for one or more other transactions at a shared shard cannot select the same commit timestamp for any of the other transactions 1240. The transaction is committed at the commit timestamp 1250.
    Type: Grant
    Filed: March 13, 2018
    Date of Patent: October 18, 2022
    Assignee: Google LLC
    Inventors: Sebastian Kanthak, Brian Frank Cooper
  • Publication number: 20210042284
    Abstract: In a distributed database, a transaction is to be committed at a first coordinator server and one or more participant servers 1210. The first coordinator server is configured to receive a notification that each participant server of the transaction is prepared at a respective prepared timestamp, the respective prepared timestamp being chosen within a time range for which the respective participant server obtained at least one lock 1220. The first coordinator server computes the commit timestamp for the transaction equal or greater than each of the prepared timestamps 1230, and restrict the commit timestamp such that a second coordinator server sharing at least one of the participant servers for one or more other transactions at a shared shard cannot select the same commit timestamp for any of the other transactions 1240. The transaction is committed at the commit timestamp 1250.
    Type: Application
    Filed: March 13, 2018
    Publication date: February 11, 2021
    Applicant: Google LLC
    Inventors: Sebastian Kanthak, Brian Frank Cooper
  • Publication number: 20200301729
    Abstract: 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: Application
    Filed: June 8, 2020
    Publication date: September 24, 2020
    Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
  • Patent number: 10691484
    Abstract: 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: Grant
    Filed: July 14, 2017
    Date of Patent: June 23, 2020
    Assignee: Google LLC
    Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
  • Patent number: 10462218
    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.
    Type: Grant
    Filed: July 15, 2015
    Date of Patent: October 29, 2019
    Assignee: Google LLC
    Inventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
  • Patent number: 10275347
    Abstract: Methods, systems and computer program products are provided for managing at least one cache for a database. In one method, an operation record is inserted in an operations log for each write operation to the database. The operation record includes a Log Sequence Number (LSN). At least one cache is updated using operation records in the operations log. To update a cache, unapplied operations in the operations log for the cache are identified using an applied LSN associated with the cache. The applied LSN denotes an LSN of a last operation applied to the cache. The unapplied operations are then applied to the cache and the applied LSN is updated with an LSN corresponding to the last unapplied operation of the unapplied operations that were applied to the cache during updating the cache.
    Type: Grant
    Filed: March 8, 2010
    Date of Patent: April 30, 2019
    Assignee: Excalibur IP, LLC
    Inventor: Brian Frank Cooper
  • Publication number: 20180329739
    Abstract: 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: Application
    Filed: July 14, 2017
    Publication date: November 15, 2018
    Inventors: Brian Frank Cooper, Alexander Lloyd, Sebastian Kanthak, Andrew Fikes, Christopher Taylor
  • Patent number: 8893131
    Abstract: In a large-scale transaction such as the bulk loading of new records into an ordered, distributed database, a transaction limit such as an insert limit may be chosen, partitions on overfull storage servers may be designated to be moved to underfull storage servers, and the move assignments may be based, at least in part on the degree to which a storage server is underfull and the move and insertion costs of the partitions to be moved.
    Type: Grant
    Filed: April 11, 2008
    Date of Patent: November 18, 2014
    Assignee: Yahoo! Inc.
    Inventors: Raghu Ramakrishnan, Erik Vee, Ramana Yerneni, Utkarsh Srivastava, Brian Frank Cooper, Adam Silberstein
  • Patent number: 8554944
    Abstract: In one embodiment, for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content; and for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content. For each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer.
    Type: Grant
    Filed: March 16, 2012
    Date of Patent: October 8, 2013
    Assignee: Yahoo! Inc.
    Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
  • Patent number: 8489674
    Abstract: In one embodiment, a first one of a plurality of message processors receives a request with respect to a topic, and determines whether the first message processor itself is currently responsible for the topic. If so, then the first message processor services the request. If not, then the first message processor determines whether any of the other ones of the message processors is currently responsible for the topic. If so, then the request is redirected to another message processor to be serviced. If not, then the first message processor selects one of the message processors to be responsible for the topic and to service the request.
    Type: Grant
    Filed: March 11, 2010
    Date of Patent: July 16, 2013
    Assignee: Yahoo! Inc.
    Inventors: Utkarsh Hriday Srivastava, Benjamin Clay Reed, Yang Zhang, Erwin Sing Tam, Brian Frank Cooper
  • Publication number: 20120179782
    Abstract: In one embodiment, for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content; and for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content. For each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer.
    Type: Application
    Filed: March 16, 2012
    Publication date: July 12, 2012
    Applicant: Yahoo! Inc.
    Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
  • Patent number: 8214355
    Abstract: Methods and apparatus are described for partitioning native tables in a database cluster into logical tables. Each logical table is mapped into a unique portion of the native table by an intermediary server. Clients access a logical table as an ordinary, full-fledged database table through the intermediary server, which translates queries on the logical table into queries on the corresponding portion of the native table. The mapping may use the application name, logical table name, and a version number to create a native table key for each key in the logical table. A data structure storing these mappings may be stored at the intermediary server or in a native table in the database. This approach affords clients quick and flexible access to the database with better data integrity and security than native tables allow.
    Type: Grant
    Filed: February 9, 2010
    Date of Patent: July 3, 2012
    Assignee: Yahoo! Inc.
    Inventor: Brian Frank Cooper
  • Patent number: 8156240
    Abstract: In one embodiment, for each one of one or more content producers, access a content-producing rate at which the content producer produces one or more items of content; and for each one of one or more content consumers, access a content-consuming rate at which the content consumer consumes one or more items of content. For each one of a plurality of consumer-producer pairs, wherein the consumer-producer pair comprises one of the content consumers and one of the content producers, and the content consumer follows the content producer, select between a push strategy and a pull strategy for delivering one or more items of content from the content producer to the content consumer based on the content-consuming rate of the content consumer and the content-producing rate of the content producer.
    Type: Grant
    Filed: March 1, 2010
    Date of Patent: April 10, 2012
    Assignee: Yahoo! Inc.
    Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
  • Publication number: 20110225229
    Abstract: In one embodiment, a first one of a plurality of message processors receives a request with respect to a topic, and determines whether the first message processor itself is currently responsible for the topic. If so, then the first message processor services the request. If not, then the first message processor determines whether any of the other ones of the message processors is currently responsible for the topic. If so, then the request is redirected to another message processor to be serviced. If not, then the first message processor selects one of the message processors to be responsible for the topic and to service the request.
    Type: Application
    Filed: March 11, 2010
    Publication date: September 15, 2011
    Applicant: YAHOO! INC.
    Inventors: Utkarsh Hriday Srivastava, Benjamin Clay Reed, Yang Zhang, Erwin Sing Tam, Brian Frank Cooper