Patents by Inventor Cristian Diaconu

Cristian Diaconu 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).

  • Publication number: 20160306856
    Abstract: A lockless open collection data structure used to create a sequence of collection records. The sequence of collection records may be inserted into a data stream for purposes of assisting in subsequent processing of the data stream in a parallel manner, by collection. The open collection data structure is re-usable for multiple collections of data items within the data stream. The use of the open collection data structure may occur while a data stream that includes multiple different types of data items is being evaluated. The open collection data structure is used to track an expandable collection definition of a currently open collection. Upon detecting that the collection definition is no longer expandable, the collection record is created based on state within the open collection data structure. Once the collection record for a collection has been created, the open collection data structure becomes available for the next collection record.
    Type: Application
    Filed: April 14, 2015
    Publication date: October 20, 2016
    Inventors: Cristian Diaconu, Christian Damianidis, Arkadi Brjazovski, Rogerio Ramos
  • Publication number: 20160306654
    Abstract: The use of a skip element when redoing transactions, so as to avoid tracking dependencies between transactions assigned to different threads for parallel processing. When the second thread comes to a second task in the course of redoing a second transaction, if a first task that is mooted by the second task is not already performed, the second thread inserts a skip element associated with the object to be operated upon by the particular task, instead of actually performing the particular task upon the object. When the first thread later comes to the first task in the course of redoing a first transaction, the first thread encounters the skip element associated with the object. Accordingly, instead of performing the dependee task, the first thread skips the dependee task and perhaps removes the skip element. The result is the same regardless of whether the first or second task is redone first.
    Type: Application
    Filed: April 14, 2015
    Publication date: October 20, 2016
    Inventor: Cristian Diaconu
  • Publication number: 20160306841
    Abstract: The insertion into a data stream of collection records associated with multiple collections of data items in the data stream, for purposes of aiding in subsequent processing of the data stream by collections. Each collection record comprises a collection definition that does not overlap with the collection definition in any of the sequence of collection records including the collection definition of any neighboring collection record in the sequence of collection records. Each collection record also includes a data stream address range extending from the first data item to the last data item in the collection.
    Type: Application
    Filed: April 14, 2015
    Publication date: October 20, 2016
    Inventors: Cristian Diaconu, Christian Damianidis, Arkadi Brjazovski, Rogerio Ramos, Raghavendra Thallam Kodandaramaih
  • Publication number: 20160306839
    Abstract: The creation of transaction segment records that are each associated with transaction segments within a log that includes multiple tasks, each of at least some associated with a corresponding transaction. The transaction segment records each include a transaction identifier set that define which tasks are included within the transaction segment. The transaction identifier sets are non-overlapping such that the transaction segments may be processed substantially in parallel by dispatching the transaction segment records to different worker threads. The identity of a latest external dependee entity, if any, is included within the transaction segment record. Upon being assigned a transaction segment for processing, the module assigned the transaction segment awaits completion of processing of the latest external dependee entity prior to processing the transaction segment.
    Type: Application
    Filed: April 14, 2015
    Publication date: October 20, 2016
    Inventors: Cristian Diaconu, Daniel Vasquez Lopez
  • Patent number: 9436561
    Abstract: The recovery of a transaction, and perhaps the recovery of multiple transactions, in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which that the record version is considered to properly represent the record. Torn write guards may be used to verify that there are no torn writes in the record versions or in the log buffer associated with the transaction.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: September 6, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 9417974
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. As part of the transaction, post-commit processing information is generated to allow the computing system to recover in the event of a system failure.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: August 16, 2016
    Assignee: Microsoft Technology Licensing, LLC.
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20160147827
    Abstract: An in-memory database system includes database table stored in system memory. The database table comprises a plurality of rows including a particular row. Data corresponding to each row is stored entirely in the system memory. The database table comprises a first version of the particular row having a first valid time, and a second version having a second valid time. Index(es) are associated with the database table. Each index is implemented as a lock-free data structure and references the plurality of rows, including referencing the first and second versions of the particular row. A first transaction acting on the first version of the particular row is executed. The first version of the particular row is visible to the first transaction based on the first valid time and the second version of the particular row being not visible to the first transaction based on the second valid time.
    Type: Application
    Filed: January 29, 2016
    Publication date: May 26, 2016
    Inventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
  • Publication number: 20160125022
    Abstract: Techniques for improved update performance in transactional and data warehouse applications are disclosed herein. A request to store a modified version of the row is received. A first record indicative of a logically deleted state for values in the column store corresponding to the row is added to a first plurality of records. The modified version of the row is added to the row store. The identifier is modified to indicate that the column store does not contain a location corresponding to the modified version of the row. A second record indicative of the modified version of the row not having been propagated to the column is added to a second plurality of records store.
    Type: Application
    Filed: October 31, 2014
    Publication date: May 5, 2016
    Inventors: Devin Leo Rider, Vasileios Papadimos, Xin Zhang, Adrian Birka, Per-Åke Larson, Cristian Diaconu
  • Patent number: 9251214
    Abstract: A computer system includes a memory and a processor coupled to the memory. The processor is configured to execute instructions that cause execution of an in-memory database system that includes one or more database tables. Each database table includes a plurality of rows, where data representing each row is stored in the memory. The in-memory database system also includes a plurality of indexes associated with the one or more database tables, where each index is implemented by a lock-free data structure. Update logic at the in-memory database system is configured to update a first version of a particular row to create a second version of the particular row. The in-memory database system includes a non-blocking garbage collector configured to identify data representing outdated versions of rows.
    Type: Grant
    Filed: April 8, 2010
    Date of Patent: February 2, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
  • Publication number: 20150254273
    Abstract: The subject disclosure relates to a distributed transaction management technique that ensures synchronization between participating nodes in a global or distributed transaction. The technique leverages a commit protocol that uses local clocks at the respective participating nodes. Participants in a global transaction are configured to utilize the same commit timestamp and logical read time and can advance their respective local clocks to establish this synchronization. In one embodiment, distributed commit utilizes a modified version of two-phase commit that includes an extra phase to collect commit timestamp votes from participants. Additionally, a heartbeat mechanism can be used to establish loose synchronization between nodes. In another embodiment, a node can respond to a remote transaction request by returning a list of nodes involved in generating the result of the transaction and the types of access used by such nodes in addition to the transaction result itself.
    Type: Application
    Filed: May 14, 2015
    Publication date: September 10, 2015
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake LARSON, Michael James ZWILLING, Cristian DIACONU
  • Patent number: 9075841
    Abstract: The subject disclosure relates to a distributed transaction management technique that ensures synchronization between participating nodes in a global or distributed database transaction. The technique leverages a commit protocol that uses local clocks at the respective participating nodes. Participants in a global transaction are configured to utilize the same commit timestamp and logical read time and can advance their respective local clocks to establish this synchronization. In one embodiment, distributed commit utilizes a modified version of two-phase commit that includes an extra phase to collect commit timestamp votes from participants. Additionally, a heartbeat mechanism can be used to establish loose synchronization between nodes. In another embodiment, a node can respond to a remote transaction request by returning a list of nodes involved in generating the result of the transaction and the types of access used by such nodes in addition to the transaction result itself.
    Type: Grant
    Filed: November 30, 2012
    Date of Patent: July 7, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake Larson, Michael James Zwilling, Cristian Diaconu
  • Patent number: 9053123
    Abstract: High availability and disaster recovery can be achieved within a database management system by detecting which parts of a file have changed and sending the changed parts to secondary servers, without sending the entire file that has experienced the changes. A log cracker reads data from a transaction log that stores records from a database and a separately maintained file system. The log cracker sends mirror commands with some of the transaction log data to the file system to initiate mirroring of the data from the file system to secondary servers. The log data is then subsequently sent to the secondary servers as well, to enable identification of changed data without having to transfer the entire file that has been changed.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: June 9, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Pradeep Jnana Madhavarapu, Priyank Porwal, Vaibhav Kamra, Alexandru C. Chirica, Cristian Diaconu, Jun Fang, Srinivasmurthy P. Acharya
  • Publication number: 20140297598
    Abstract: The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297608
    Abstract: The recovery of a transaction, and perhaps the recovery of multiple transactions, in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which that the record version is considered to properly represent the record. Torn write guards may be used to verify that there are no torn writes in the record versions or in the log buffer associated with the transaction.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297609
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. The transaction processing uses torn write detection so that recovery processes may use such guards to verify that there are no torn writes. For instance, torn write guards may be used to verify the integrity of record versions as well as the log buffers that refer to the record versions.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297595
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. As part of the transaction, post-commit processing information is generated to allow the computing system to recover in the event of a system failure.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Applicant: Microsoft Corporation
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 8655847
    Abstract: A method for mirroring one or more data changes from a first database server to one or more second database servers. The method includes intercepting one or more operations that make one or more changes to one or more data on the first database server. After intercepting these operations, the method merges the operations into one or more chunks, adds one or more log records having the chunks into a database log. The database log includes one or more database log blocks. The method then writes the database log blocks.
    Type: Grant
    Filed: August 16, 2010
    Date of Patent: February 18, 2014
    Assignee: Microsoft Corporation
    Inventors: Vaibhav Kamra, Pradeep Madhavarapu, Cristian Diaconu, Priyank Porwal, Jun Fang, Srini Acharya, Alexandru Chirica
  • Patent number: 8407195
    Abstract: A transaction creates a wait for dependency on a version in a main memory database implementing a multi-version concurrency control scheme. The wait for dependency allows the transaction to update the version while other transactions are reading the version. The multi-version concurrency control scheme also allows commit dependencies to be implementing concurrently with wait for dependencies. Commit dependencies allow a transaction to read an updated version before the updated version is committed.
    Type: Grant
    Filed: March 7, 2011
    Date of Patent: March 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Per-Ake Larson, Spyridon Blanas, Cristian Diaconu
  • Patent number: 8401998
    Abstract: The present invention extends to methods, systems, and computer program products for mirroring file data. Generally, high availability and disaster recovery (“HADRON”) is achieved within a database management system by detecting which parts of a file have changed and sending the changed parts to secondaries. Adjacent or partially overlapping parts of a file can coalesce to form larger chunks of changed data. Coalescing reduces the overall number of chunks that are tracked.
    Type: Grant
    Filed: September 2, 2010
    Date of Patent: March 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Pradeep Jnana Madhavarapu, Priyank Porwal, Vaibhav Kamra, Alexandru C. Chirica, Cristian Diaconu, Jun Fang, Srinivasmurthy P. Acharya
  • Patent number: 8396831
    Abstract: The subject disclosure relates to a concurrency control technique that ensures isolation among concurrently execution transactions optimistically in a multiversion database by applying two optional tests at the end of a read-write transaction: validating the visibility of the read set of the read-write transaction(s) and phantom detection by re-scanning and confirming no new version have appeared in the view. Depending on desired level of isolation, both, one or none of the test are applied. Each version of a data record in an applicable database can be assigned two timestamps indicating the lifetime the version. The value of a version timestamp, though assigned, may be conditional on a transaction committing.
    Type: Grant
    Filed: December 18, 2009
    Date of Patent: March 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Per-Ake Larson, Cristian Diaconu, Michael J. Zwilling, Craig Steven Freedman