Patents by Inventor Dominic Law

Dominic Law 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: 10182111
    Abstract: Techniques for handling the dynamic reassignment of entities among multiple data centers are provided. In one technique, for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers, an entity identifier that is associated with the task is identified. A call to an entity routing service is initiated, where the call includes the entity A response to the call is received from the entity routing service, where the response indicates a particular data center. An entity processor that is different than the entity routing service processes the task only if the particular data center is the first data center. If the particular data center is different than the first data center, then a data structure that stores the task is updated to indicate the particular data center and the task is eventually processed in the particular data center.
    Type: Grant
    Filed: December 6, 2016
    Date of Patent: January 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Edward Wu, Yingfeng Oh, Hao Liu, Dominic Law, Xiaokang Zhang
  • Patent number: 10127078
    Abstract: Techniques for rotating leadership among processes in multiple data centers are provided. A first process of a program in a first data center determines whether the first process is a leader process among multiple processes of the program. Each process of the multiple processes executes in a different data center of the multiple data centers. In response to determining that the first process is the leader process, the first process performs a particular task. After performing the particular task, the first process causes leadership data to be updated to indicate that the first process is no longer the leader process. After the leadership data is updated, a second process (of the multiple processes) in a second data center determines whether the second process is the leader process. The second process performs the particular task only if the second process determines that the second process is the leader process.
    Type: Grant
    Filed: November 28, 2016
    Date of Patent: November 13, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yingfeng Oh, Edward Wu, Dominic Law, Xiaokang Zhang
  • Publication number: 20180159927
    Abstract: Techniques for handling the dynamic reassignment of entities among multiple data centers are provided. In one technique, for each task of a plurality of tasks that are associated with a first data center of a plurality of data centers, an entity identifier that is associated with the task is identified. A call to an entity routing service is initiated, where the call includes the entity A response to the call is received from the entity routing service, where the response indicates a particular data center. An entity processor that is different than the entity routing service processes the task only if the particular data center is the first data center. If the particular data center is different than the first data center, then a data structure that stores the task is updated to indicate the particular data center and the task is eventually processed in the particular data center.
    Type: Application
    Filed: December 6, 2016
    Publication date: June 7, 2018
    Inventors: Edward Wu, Yingfeng Oh, Hao Liu, Dominic Law, Xiaokang Zhang
  • Publication number: 20180150316
    Abstract: Techniques for rotating leadership among processes in multiple data centers are provided. A first process of a program in a first data center determines whether the first process is a leader process among multiple processes of the program. Each process of the multiple processes executes in a different data center of the multiple data centers. In response to determining that the first process is the leader process, the first process performs a particular task. After performing the particular task, the first process causes leadership data to be updated to indicate that the first process is no longer the leader process. After the leadership data is updated, a second process (of the multiple processes) in a second data center determines whether the second process is the leader process. The second process performs the particular task only if the second process determines that the second process is the leader process.
    Type: Application
    Filed: November 28, 2016
    Publication date: May 31, 2018
    Inventors: Yingfeng Oh, Edward Wu, Dominic Law, Xiaokang Zhang
  • Publication number: 20170032414
    Abstract: A machine may be configured to control online ad serving based on a period budget. For example, the machine accesses event data pertaining to an event of online ad consumption of an online ad included in a campaign. The campaign is one of one or more campaigns associated with an account. The machine identifies, based on the event data, an account identifier associated with the online ad. The machine accesses a remaining period budget value associated with the account identifier. The remaining period budget value represents a budget amount remaining to be spent, during a period of time, on one or more online ads that are associated with the one or more campaigns. The machine determines that the remaining period budget value exceeds an event cost value associated with the event. The machine adjusts the remaining period budget value based on the event cost value.
    Type: Application
    Filed: July 30, 2015
    Publication date: February 2, 2017
    Inventors: Venkata S.J.R. Bhamidipati, Linda Leung, Dakan Wang, Dominic Law