Patents by Inventor Zhicheng Yin

Zhicheng Yin 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: 11068482
    Abstract: Described herein is a system and method for detecting and reusing overlapping computations. Overlapping subgraphs of the query are determined using a normalized signature for a particular subgraph that identifies a particular subgraph across recurring instances of data. A normalized signature for each overlapping subgraph for the determined overlapping subgraphs of the query is provided. For each overlapping subgraph determined to be materialized: whether or not the particular subgraph has been materialized is determined using a precise signature corresponding to a normalized signature of the particular overlapping subgraph. The precise signature identifies a particular subgraph corresponding to the normalized signature within a particular recurring instance of data. When the particular subgraph has not been materialized, the subgraph is materialized and used to respond to the query. When the particular subgraph has been materialized, the materialized subgraph is used to respond to the query.
    Type: Grant
    Filed: April 13, 2018
    Date of Patent: July 20, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alekh Jindal, Hiren Patel, Shi Qiao, Jieming Di, Malay Kumar Bag, Zhicheng Yin
  • Publication number: 20210089532
    Abstract: The cloud-based query workload optimization system disclosed herein the cloud-based query workloads optimization system receives query logs from various query engines to a cloud data service, extracts various query entities from the query logs, parses query entities to generate a set of common workload features, generates intermediate representations of the query workloads, wherein the intermediate representations are agnostic to the language of the plurality of the queries, identifies a plurality of workload patterns based on the intermediate representations of the query workloads, categorizes the workloads in one or more workload type categories based on the workload patterns and the workload features, and selects an optimization scheme based on the category of workload pattern.
    Type: Application
    Filed: September 25, 2019
    Publication date: March 25, 2021
    Inventors: Hiren S. PATEL, Rathijit SEN, Zhicheng YIN, Shi QIAO, Abhishek ROY, Alekh JINDAL, Subramaniam Venkatraman KRISHNAN, Carlo Aldo CURINO
  • Patent number: 10749984
    Abstract: Processing a job request for multiple versions of a distributed computing service. The service processing node does this by at least interleavingly (e.g., via time sharing with rapid context switching, or by actually concurrently) running a first runtime library associated with a first service version of the distributed computerized service and a second runtime library associated with a different service version of the distributed computerized service. While running the first runtime library, job requests of a first service version may be at least partially processed using a first set of one or more executables that interact with the first runtime library. While running the second runtime library, job requests of a second service version may be at least partially processed using a second set of one or more executables that interact with the second runtime library.
    Type: Grant
    Filed: February 19, 2019
    Date of Patent: August 18, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Zhicheng Yin, Xiaoyu Chen, Tao Guan, Paul Michael Brett, Nan Zhang, Jaliya N. Ekanayake, Eric Boutin, Anna Korsun, Jingren Zhou, Haibo Lin, Pavel N. Iakovenko
  • Patent number: 10530892
    Abstract: Processing received job requests for a multi-versioned distributed computerized service. For each received job request, the job request is channeled to an appropriate service processing node that depends on the version of the distributed computing service that is to handle the job request. A version of the distributed computing service is assigned to the incoming job request. A service processing node that runs a runtime library for the assigned service version is then identified. The identified service processing node also has an appropriate set of one or more executables that allows the service processing node to plan an appropriate role (e.g., compiler, scheduler, worker) in the distributed computing service. The job request is then dispatched to the identified service processing node.
    Type: Grant
    Filed: June 29, 2016
    Date of Patent: January 7, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Zhicheng Yin, Xiaoyu Chen, Tao Guan, Paul Michael Brett, Nan Zhang, Jaliya N. Ekanayake, Eric Boutin, Anna Korsun, Jingren Zhou, Haibo Lin, Pavel N. Iakovenko
  • Publication number: 20190387073
    Abstract: Processing a job request for multiple versions of a distributed computing service. The service processing node does this by at least interleavingly (e.g., via time sharing with rapid context switching, or by actually concurrently) running a first runtime library associated with a first service version of the distributed computerized service and a second runtime library associated with a different service version of the distributed computerized service. While running the first runtime library, job requests of a first service version may be at least partially processed using a first set of one or more executables that interact with the first runtime library. While running the second runtime library, job requests of a second service version may be at least partially processed using a second set of one or more executables that interact with the second runtime library.
    Type: Application
    Filed: February 19, 2019
    Publication date: December 19, 2019
    Inventors: Zhicheng YIN, Xiaoyu CHEN, Tao GUAN, Paul Michael BRETT, Nan ZHANG, Jaliya N. EKANAYAKE, Eric BOUTIN, Anna KORSUN, Jingren ZHOU, Haibo LIN, Pavel N. IAKOVENKO
  • Publication number: 20190318025
    Abstract: Described herein is a system and method for detecting and reusing overlapping computations. Overlapping subgraphs of the query are determined using a normalized signature for a particular subgraph that identifies a particular subgraph across recurring instances of data. A normalized signature for each overlapping subgraph for the determined overlapping subgraphs of the query is provided. For each overlapping subgraph determined to be materialized: whether or not the particular subgraph has been materialized is determined using a precise signature corresponding to a normalized signature of the particular overlapping subgraph. The precise signature identifies a particular subgraph corresponding to the normalized signature within a particular recurring instance of data. When the particular subgraph has not been materialized, the subgraph is materialized and used to respond to the query. When the particular subgraph has been materialized, the materialized subgraph is used to respond to the query.
    Type: Application
    Filed: April 13, 2018
    Publication date: October 17, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Alekh JINDAL, Hiren PATEL, Shi QIAO, Jieming DI, Malay Kumar BAG, Zhicheng YIN
  • Patent number: 10366084
    Abstract: Aspects extend to methods, systems, and computer program products for optimally pipelining result sets with fault tolerance in distributed query execution. Distributed computing jobs are optimized by dividing the distributed computing jobs into one or more bubbles for execution. Each bubble can be independently executed, potentially in parallel with other bubbles, when resources to handle the bubble are available. Intra-bubble communication can be streamed between vertices within a bubble. Inter-bubble communication can be stored to durable storage. Bubbles provide a failure boundary for a job graph and re-executing a bubble along with storage of intermediate results in durable storage can be used to recover from failures. When a vertex inside a bubble fails, computation can resume by rescheduling the execution of the failed bubble from the durable inputs for that bubble. Durable storage provides a light-weight failover to handle non-deterministic behavior.
    Type: Grant
    Filed: September 15, 2016
    Date of Patent: July 30, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Zhicheng Yin, Jin Sun, Ming Li, Jaliya Nishantha Ekanayake, Yongchul Kwon, José A. Blakeley, Marc T. Friedman, Haibo Lin, Raghunath Ramakrishnan, Tao Guan
  • Patent number: 10212255
    Abstract: Processing a job request for multiple versions of a distributed computing service. The service processing node does this by at least interleavingly (e.g., via time sharing with rapid context switching, or by actually concurrently) running a first runtime library associated with a first service version of the distributed computerized service and a second runtime library associated with a different service version of the distributed computerized service. While running the first runtime library, job requests of a first service version may be at least partially processed using a first set of one or more executables that interact with the first runtime library. While running the second runtime library, job requests of a second service version may be at least partially processed using a second set of one or more executables that interact with the second runtime library.
    Type: Grant
    Filed: June 29, 2016
    Date of Patent: February 19, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Zhicheng Yin, Xiaoyu Chen, Tao Guan, Paul Michael Brett, Nan Zhang, Jaliya N. Ekanayake, Eric Boutin, Anna Korsun, Jingren Zhou, Haibo Lin, Pavel N. Iakovenko
  • Publication number: 20180075098
    Abstract: Aspects extend to methods, systems, and computer program products for optimally pipelining result sets with fault tolerance in distributed query execution. Distributed computing jobs are optimized by dividing the distributed computing jobs into one or more bubbles for execution. Each bubble can be independently executed, potentially in parallel with other bubbles, when resources to handle the bubble are available. Intra-bubble communication can be streamed between vertices within a bubble. Inter-bubble communication can be stored to durable storage. Bubbles provide a failure boundary for a job graph and re-executing a bubble along with storage of intermediate results in durable storage can be used to recover from failures. When a vertex inside a bubble fails, computation can resume by rescheduling the execution of the failed bubble from the durable inputs for that bubble. Durable storage provides a light-weight failover to handle non-deterministic behavior.
    Type: Application
    Filed: September 15, 2016
    Publication date: March 15, 2018
    Inventors: Zhicheng Yin, Jin Sun, Ming Li, Jaliya Nishantha Ekanayake, Yongchul Kwon, José A. Blakeley, Marc T. Friedman, Haibo Lin, Raghunath Ramakrishnan, Tao Guan
  • Publication number: 20170090958
    Abstract: Processing a job request for multiple versions of a distributed computing service. The service processing node does this by at least interleavingly (e.g., via time sharing with rapid context switching, or by actually concurrently) running a first runtime library associated with a first service version of the distributed computerized service and a second runtime library associated with a different service version of the distributed computerized service. While running the first runtime library, job requests of a first service version may be at least partially processed using a first set of one or more executables that interact with the first runtime library. While running the second runtime library, job requests of a second service version may be at least partially processed using a second set of one or more executables that interact with the second runtime library.
    Type: Application
    Filed: June 29, 2016
    Publication date: March 30, 2017
    Inventors: Zhicheng Yin, Xiaoyu Chen, Tao Guan, Paul Michael Brett, Nan Zhang, Jaliya N. Ekanayake, Eric Boutin, Anna Korsun, Jingren Zhou, Haibo Lin, Pavel N. Iakovenko
  • Publication number: 20170094020
    Abstract: Processing received job requests for a multi-versioned distributed computerized service. For each received job request, the job request is channeled to an appropriate service processing node that depends on the version of the distributed computing service that is to handle the job request. A version of the distributed computing service is assigned to the incoming job request. A service processing node that runs a runtime library for the assigned service version is then identified. The identified service processing node also has an appropriate set of one or more executables that allows the service processing node to plan an appropriate role (e.g., compiler, scheduler, worker) in the distributed computing service. The job request is then dispatched to the identified service processing node.
    Type: Application
    Filed: June 29, 2016
    Publication date: March 30, 2017
    Inventors: Zhicheng Yin, Xiaoyu Chen, Tao Guan, Paul Michael Brett, Nan Zhang, Jaliya N. Ekanayake, Eric Boutin, Anna Korsun, Jingren Zhou, Haibo Lin, Pavel N. Iakovenko