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: 11899649Abstract: 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: GrantFiled: September 9, 2022Date of Patent: February 13, 2024Assignee: Google LLCInventors: Sebastian Kanthak, Brian Frank Cooper
-
Patent number: 11831711Abstract: 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: GrantFiled: November 3, 2022Date of Patent: November 28, 2023Assignee: Google LLCInventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
-
Publication number: 20230052324Abstract: 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: ApplicationFiled: November 3, 2022Publication date: February 16, 2023Inventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
-
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: 20230004545Abstract: 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: ApplicationFiled: September 9, 2022Publication date: January 5, 2023Inventors: Sebastian Kanthak, Brian Frank Cooper
-
Patent number: 11496572Abstract: 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: GrantFiled: August 12, 2019Date of Patent: November 8, 2022Assignee: Google LLCInventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
-
Patent number: 11474991Abstract: 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: GrantFiled: March 13, 2018Date of Patent: October 18, 2022Assignee: Google LLCInventors: Sebastian Kanthak, Brian Frank Cooper
-
Publication number: 20210042284Abstract: 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: ApplicationFiled: March 13, 2018Publication date: February 11, 2021Applicant: Google LLCInventors: Sebastian Kanthak, Brian Frank Cooper
-
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: 10462218Abstract: 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: GrantFiled: July 15, 2015Date of Patent: October 29, 2019Assignee: Google LLCInventors: Iulian Moraru, Brian Frank Cooper, Sebastian Kanthak, Alexander Lloyd, Mert Akdere
-
Patent number: 10275347Abstract: 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: GrantFiled: March 8, 2010Date of Patent: April 30, 2019Assignee: Excalibur IP, LLCInventor: Brian Frank Cooper
-
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: 8893131Abstract: 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: GrantFiled: April 11, 2008Date of Patent: November 18, 2014Assignee: Yahoo! Inc.Inventors: Raghu Ramakrishnan, Erik Vee, Ramana Yerneni, Utkarsh Srivastava, Brian Frank Cooper, Adam Silberstein
-
Patent number: 8554944Abstract: 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: GrantFiled: March 16, 2012Date of Patent: October 8, 2013Assignee: Yahoo! Inc.Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
-
Patent number: 8489674Abstract: 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: GrantFiled: March 11, 2010Date of Patent: July 16, 2013Assignee: Yahoo! Inc.Inventors: Utkarsh Hriday Srivastava, Benjamin Clay Reed, Yang Zhang, Erwin Sing Tam, Brian Frank Cooper
-
Publication number: 20120179782Abstract: 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: ApplicationFiled: March 16, 2012Publication date: July 12, 2012Applicant: Yahoo! Inc.Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
-
Patent number: 8214355Abstract: 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: GrantFiled: February 9, 2010Date of Patent: July 3, 2012Assignee: Yahoo! Inc.Inventor: Brian Frank Cooper
-
Patent number: 8156240Abstract: 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: GrantFiled: March 1, 2010Date of Patent: April 10, 2012Assignee: Yahoo! Inc.Inventors: Adam Eli Silberstein, Brian Frank Cooper, Raghunath Ramakrishnan, Jeffrey Terrace
-
Publication number: 20110225229Abstract: 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: ApplicationFiled: March 11, 2010Publication date: September 15, 2011Applicant: YAHOO! INC.Inventors: Utkarsh Hriday Srivastava, Benjamin Clay Reed, Yang Zhang, Erwin Sing Tam, Brian Frank Cooper