Patents by Inventor Craig Steven Freedman
Craig Steven Freedman 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: 10055449Abstract: An in-memory database system stores the entirety of a database that is being operated on by a database system within main memory. The database includes a table that comprises a plurality of rows including a particular row. 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 transaction acting on the first version of the particular row is executed. The first version of the particular row is visible to the transaction based on the first valid time and the second version of the particular row being not visible to the transaction based on the second valid time.Type: GrantFiled: November 27, 2017Date of Patent: August 21, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
-
Patent number: 10019476Abstract: A data system in which a parent transaction that has multiple nested transactions has isolation between the nested transactions. Each of at least some of the plurality of operations are included within a nested transaction within the parent transaction. For each of at least some of the nested transactions, a begin transaction identifier is assigned to the nested transaction; and on or around completion of the nested transaction, a completion transaction identifier is assigned as a statement identifier at least one object version operated upon by the nested transaction. Visibility of a particular version of an object to an active nested transaction may be verified by comparing the begin transaction identifier of the active nested transaction to the statement identifier of the particular version of the object. The comparison is done such that visibility achieves the proper isolation between nested transactions.Type: GrantFiled: May 27, 2015Date of Patent: July 10, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Nikola Vujić, Milo{hacek over (s)} Andelković, Marko {hacek over (Z)}ivanović, Craig Steven Freedman, Erik Ismert
-
Publication number: 20180075089Abstract: An in-memory database system stores the entirety of a database that is being operated on by a database system within main memory. The database includes a table that comprises a plurality of rows including a particular row. 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 transaction acting on the first version of the particular row is executed. The first version of the particular row is visible to the transaction based on the first valid time and the second version of the particular row being not visible to the transaction based on the second valid time.Type: ApplicationFiled: November 27, 2017Publication date: March 15, 2018Inventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
-
Patent number: 9830350Abstract: 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: GrantFiled: January 29, 2016Date of Patent: November 28, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
-
Patent number: 9767147Abstract: Performing database queries. A method includes receiving a particular database query. The method further includes accessing a query plan based on the particular database query. The query plan has operators and specific operational parameters associated with each of the operators. The association of operators and specific operational parameters is specific to the particular database query. From the query plan, the method further includes instantiating a plurality of compiled code templates. Each code template includes executable code that when executed performs functionality of one of the operators from the query plan with the specific operational parameters applied in the compilation. The method further includes binding the code templates together using programmatic control flow to create a functioning program.Type: GrantFiled: November 23, 2015Date of Patent: September 19, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Craig Steven Freedman, Erik Ismert
-
Patent number: 9547685Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: GrantFiled: August 18, 2015Date of Patent: January 17, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Craig Steven Freedman, Conor John Cunningham
-
Publication number: 20160350356Abstract: A data system in which a parent transaction that has multiple nested transactions has isolation between the nested transactions. Each of at least some of the plurality of operations are included within a nested transaction within the parent transaction. For each of at least some of the nested transactions, a begin transaction identifier is assigned to the nested transaction; and on or around completion of the nested transaction, a completion transaction identifier is assigned as a statement identifier at least one object version operated upon by the nested transaction. Visibility of a particular version of an object to an active nested transaction may be verified by comparing the begin transaction identifier of the active nested transaction to the statement identifier of the particular version of the object. The comparison is done such that visibility achieves the proper isolation between nested transactions.Type: ApplicationFiled: May 27, 2015Publication date: December 1, 2016Inventors: Nikola Vujic, Milos Andelkovic, Marko Zivanovic, Craig Steven Freedman, Erik Ismert
-
Publication number: 20160147827Abstract: 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: ApplicationFiled: January 29, 2016Publication date: May 26, 2016Inventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
-
Publication number: 20160078084Abstract: Performing database queries. A method includes receiving a particular database query. The method further includes accessing a query plan based on the particular database query. The query plan has operators and specific operational parameters associated with each of the operators. The association of operators and specific operational parameters is specific to the particular database query. From the query plan, the method further includes instantiating a plurality of compiled code templates. Each code template includes executable code that when executed performs functionality of one of the operators from the query plan with the specific operational parameters applied in the compilation. The method further includes binding the code templates together using programmatic control flow to create a functioning program.Type: ApplicationFiled: November 23, 2015Publication date: March 17, 2016Inventors: Craig Steven Freedman, Erik Ismert
-
Publication number: 20160048553Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: ApplicationFiled: August 18, 2015Publication date: February 18, 2016Inventors: Craig Steven Freedman, Conor John Cunningham
-
Patent number: 9251214Abstract: 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: GrantFiled: April 8, 2010Date of Patent: February 2, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling
-
Patent number: 9195712Abstract: Performing database queries. A method includes receiving a particular database query. The method further includes accessing a query plan based on the particular database query. The query plan has operators and specific operational parameters associated with each of the operators. The association of operators and specific operational parameters is specific to the particular database query. From the query plan, the method further includes instantiating a plurality of compiled code templates. Each code template includes executable code that when executed performs functionality of one of the operators from the query plan with the specific operational parameters applied in the compilation. The method further includes binding the code templates together using programmatic control flow to create a functioning program.Type: GrantFiled: March 12, 2013Date of Patent: November 24, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Craig Steven Freedman, Erik Ismert
-
Publication number: 20150242439Abstract: Running a transaction against a database that allows the transaction to be automatically retried when the transaction fails such that certain transaction failures that cause the transaction to be automatically retried are not visible to an entity that receives data as a result of the execution of the transaction. A first set of statements of a transaction is identified by identifying statements that will cause a change in the database state. A second set of statements is identified, that result in data being generated to be sent to the entity. The method further includes executing the first set of statements to change the database. The method further includes running the second set of statements separately from the first set of statements to generate data to be sent to the entity.Type: ApplicationFiled: February 24, 2014Publication date: August 27, 2015Applicant: Microsoft CorporationInventors: Craig Steven Freedman, Michael James Zwilling, Erik Ismert
-
Patent number: 9116943Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: GrantFiled: May 7, 2014Date of Patent: August 25, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Craig Steven Freedman, Conor John Cunningham
-
Publication number: 20140280030Abstract: Performing database queries. A method includes receiving a particular database query. The method further includes accessing a query plan based on the particular database query. The query plan has operators and specific operational parameters associated with each of the operators. The association of operators and specific operational parameters is specific to the particular database query. From the query plan, the method further includes instantiating a plurality of compiled code templates. Each code template includes executable code that when executed performs functionality of one of the operators from the query plan with the specific operational parameters applied in the compilation. The method further includes binding the code templates together using programmatic control flow to create a functioning program.Type: ApplicationFiled: March 12, 2013Publication date: September 18, 2014Applicant: Microsoft CorporationInventors: Craig Steven Freedman, Erik Ismert
-
Publication number: 20140244597Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: ApplicationFiled: May 7, 2014Publication date: August 28, 2014Applicant: MICROSOFT CORPORATIONInventors: Craig Steven Freedman, Conor John Cunningham
-
Patent number: 8818963Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: GrantFiled: October 29, 2010Date of Patent: August 26, 2014Assignee: Microsoft CorporationInventors: Craig Steven Freedman, Conor John Cunningham
-
Patent number: 8396831Abstract: 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: GrantFiled: December 18, 2009Date of Patent: March 12, 2013Assignee: Microsoft CorporationInventors: Per-Ake Larson, Cristian Diaconu, Michael J. Zwilling, Craig Steven Freedman
-
Publication number: 20120109903Abstract: Mitigating problems related to the Halloween problem including where update operations potentially allow the record to be visited more than once during the operation. A method includes accessing an instance of a data store operation statement. The instance of the data store operation statement is executed causing an update or delete to an old version of data store record or creation of a data store record resulting in a new version of the data store record in the case of an update or creation of a data store record and a deleted version of the data store record in the case of a delete in the data store. The instance of the data store operation statement is correlated with the new version of the data store record or the deleted version of the data store record.Type: ApplicationFiled: October 29, 2010Publication date: May 3, 2012Applicant: Microsoft CorporationInventors: Craig Steven Freedman, Conor John Cunningham
-
Publication number: 20110252000Abstract: 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: ApplicationFiled: April 8, 2010Publication date: October 13, 2011Applicant: Microsoft CorporationInventors: Cristian Diaconu, Craig Steven Freedman, Per-Ake Larson, Michael James Zwilling