Patents by Inventor Craig Freedman

Craig 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: 10438008
    Abstract: A system and method of enabling row level security through security policies is disclosed herein. In this system and method, a computing device may be communicatively coupled to a storage device. The computing device may further be activated and maintain data that comprises a plurality of rows. When executed by the computing device, the system and method may process a data definition language statement comprising a security policy definition. Further, the system and method may receive a query language statement comprising a request to access a first column of a row from the plurality of rows. The system and method may process the request and determine if access may be granted to a user based on the security policy definition in the system.
    Type: Grant
    Filed: October 30, 2014
    Date of Patent: October 8, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Panagiotis Antonopoulos, Jack Richins, Michael James Zwilling, Conor Cunningham, Raul Garcia, Craig Freedman, Erik Ismert
  • Publication number: 20160125189
    Abstract: A system and method of enabling row level security through security policies is disclosed herein. In this system and method, a computing device may be communicatively coupled to a storage device. The computing device may further be activated and maintain data that comprises a plurality of rows. When executed by the computing device, the system and method may process a data definition language statement comprising a security policy definition. Further, the system and method may receive a query language statement comprising a request to access a first column of a row from the plurality of rows. The system and method may process the request and determine if access may be granted to a user based on the security policy definition in the system.
    Type: Application
    Filed: October 30, 2014
    Publication date: May 5, 2016
    Inventors: Panagiotis Antonopoulos, Jack Richins, Michael James Zwilling, Conor Cunningham, Raul Garcia, Craig Freedman, Erik Ismert
  • Patent number: 8180763
    Abstract: A system and method for accelerating searches of B-trees. An auxiliary index that is optimized for use with a cache is used in conjunction with a B-tree. A hash type of auxiliary index maintains pointers to key entries in the B-tree leaf nodes. The hash type of index may be searched, and a resulting pointer is used to locate records of the B-tree, bypassing a search of the B-tree. A top level type of auxiliary index maintains pointers to leaf nodes or internal nodes of the B-tree. A top level index may be searched, and a search of the B-tree is performed beginning with the node found by using the top level index. A monitoring mechanism may automatically start, change, or discard the auxiliary index based on an amount of cache memory, types of searches, or other factors. The auxiliary index may be optimized for high performance in read only searches, while the B-tree provides transaction durability.
    Type: Grant
    Filed: May 29, 2009
    Date of Patent: May 15, 2012
    Assignee: Microsoft Corporation
    Inventors: Craig Freedman, Cristian Diaconu, Michael Zwilling
  • Publication number: 20100306222
    Abstract: A system and method for accelerating searches of B-trees. An auxiliary index that is optimized for use with a cache is used in conjunction with a B-tree. A hash type of auxiliary index maintains pointers to key entries in the B-tree leaf nodes. The hash type of index may be searched, and a resulting pointer is used to locate records of the B-tree, bypassing a search of the B-tree. A top level type of auxiliary index maintains pointers to leaf nodes or internal nodes of the B-tree. A top level index may be searched, and a search of the B-tree is performed beginning with the node found by using the top level index. A monitoring mechanism may automatically start, change, or discard the auxiliary index based on an amount of cache memory, types of searches, or other factors. The auxiliary index may be optimized for high performance in read only searches, while the B-tree provides transaction durability.
    Type: Application
    Filed: May 29, 2009
    Publication date: December 2, 2010
    Applicant: Microsoft Corporation
    Inventors: Craig Freedman, Cristian Diaconu, Michael Zwilling
  • Publication number: 20060026386
    Abstract: The present invention is directed to systems and methods for improved prefetching. The present invention reduces the processing time and associated costs of prefetching by incorporating a number of techniques for efficiently searching a node structure. Such techniques eliminate redundant traversal of nodes. Additionally, such techniques do not require locking the node structure to prevent concurrent updates. Furthermore, such techniques may exploit known key ordering information to optimize a search.
    Type: Application
    Filed: July 30, 2004
    Publication date: February 2, 2006
    Applicant: Microsoft Corporation
    Inventors: Craig Freedman, Gang He, Goetz Graefe
  • Publication number: 20060020579
    Abstract: A method to achieve acceptable query performance even when a database query optimizer chooses an inefficient query plan due to poor cardinality (row count) estimation includes generating a batch sort query plan which includes a row count operation and a reorder operation. The batch sort, and in particular the reorder operation, is not required to satisfy the query but without these operations the query plan may prove to be inefficient. When the row count operation determines that the query plan is inefficient, the row reordering operation reorders rows for more I/O efficient processing. The results of both the row count operation and the reorder operation are used to produce the desired rowset to satisfy the input query without discarding any retrieved rows.
    Type: Application
    Filed: July 22, 2004
    Publication date: January 26, 2006
    Applicant: Microsoft Corporation
    Inventors: Craig Freedman, Goetz Graefe