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: 11068482Abstract: 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: GrantFiled: April 13, 2018Date of Patent: July 20, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Alekh Jindal, Hiren Patel, Shi Qiao, Jieming Di, Malay Kumar Bag, Zhicheng Yin
-
Publication number: 20210089532Abstract: 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: ApplicationFiled: September 25, 2019Publication date: March 25, 2021Inventors: Hiren S. PATEL, Rathijit SEN, Zhicheng YIN, Shi QIAO, Abhishek ROY, Alekh JINDAL, Subramaniam Venkatraman KRISHNAN, Carlo Aldo CURINO
-
Patent number: 10749984Abstract: 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: GrantFiled: February 19, 2019Date of Patent: August 18, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: 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: 10530892Abstract: 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: GrantFiled: June 29, 2016Date of Patent: January 7, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20190387073Abstract: 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: ApplicationFiled: February 19, 2019Publication date: December 19, 2019Inventors: 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: 20190318025Abstract: 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: ApplicationFiled: April 13, 2018Publication date: October 17, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Alekh JINDAL, Hiren PATEL, Shi QIAO, Jieming DI, Malay Kumar BAG, Zhicheng YIN
-
Patent number: 10366084Abstract: 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: GrantFiled: September 15, 2016Date of Patent: July 30, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: 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: 10212255Abstract: 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: GrantFiled: June 29, 2016Date of Patent: February 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20180075098Abstract: 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: ApplicationFiled: September 15, 2016Publication date: March 15, 2018Inventors: 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: 20170090958Abstract: 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: ApplicationFiled: June 29, 2016Publication date: March 30, 2017Inventors: 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: 20170094020Abstract: 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: ApplicationFiled: June 29, 2016Publication date: March 30, 2017Inventors: 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