Patents by Inventor Roger MacNicol
Roger MacNicol 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: 20140013078Abstract: A method and apparatus for efficiently processing data in various formats in a single instruction multiple data (“SIMD”) architecture is presented. Specifically, a method to unpack a fixed-width bit values in a bit stream to a fixed width byte stream in a SIMD architecture is presented. A method to unpack variable-length byte packed values in a byte stream in a SIMD architecture is presented. A method to decompress a run length encoded compressed bit-vector in a SIMD architecture is presented. A method to return the offset of each bit set to one in a bit-vector in a SIMD architecture is presented. A method to fetch bits from a bit-vector at specified offsets relative to a base in a SIMD architecture is presented. A method to compare values stored in two SIMD registers is presented.Type: ApplicationFiled: September 10, 2013Publication date: January 9, 2014Applicant: Oracle International CorporationInventors: Amit Ganesh, Shasank K. Chavan, Vineet Marwah, Jesse Kamp, Anindya C. Patthak, Michael J. Gleeson, Allison L. Holloway, Roger Macnicol
-
Publication number: 20140013077Abstract: A method and apparatus for efficiently processing data in various formats in a single instruction multiple data (“SIMD”) architecture is presented. Specifically, a method to unpack a fixed-width bit values in a bit stream to a fixed width byte stream in a SIMD architecture is presented. A method to unpack variable-length byte packed values in a byte stream in a SIMD architecture is presented. A method to decompress a run length encoded compressed bit-vector in a SIMD architecture is presented. A method to return the offset of each bit set to one in a bit-vector in a SIMD architecture is presented. A method to fetch bits from a bit-vector at specified offsets relative to a base in a SIMD architecture is presented. A method to compare values stored in two SIMD registers is presented.Type: ApplicationFiled: September 10, 2013Publication date: January 9, 2014Applicant: Oracle International CorporationInventors: Amit Ganesh, Shasank K. Chavan, Vineet Marwah, Jesse Kamp, Anindya C. Patthak, Michael J. Gleeson, Allison L. Holloway, Roger Macnicol
-
Patent number: 8583692Abstract: Techniques for storing and manipulating tabular data are provided. According to one embodiment, a user may control whether tabular data is stored in row-level or column-major format. Furthermore, the user may control the level of data compression to achieve an optimal balance between query performance and compression ratios. Tabular data from within the same table may be stored in both column-major and row-major format and compressed at different levels. In addition, tabular data can migrate between column-major format and row-major format in response to various events. For example, in response to a request to update or lock a row stored in column-major format, the row may be migrated and subsequently stored into row-major format. In one embodiment, table partitions are used to enhance data compression techniques. For example, compression tests are performed on a representative table partition, and a compression map is generated and applied to other table partitions.Type: GrantFiled: August 30, 2010Date of Patent: November 12, 2013Assignee: Oracle International CorporationInventors: Amit Ganesh, Vikram Kapoor, Vineet Marwah, Kam Shergill, Roger MacNicol, Sachin Kulkarni, Jesse Kamp
-
Patent number: 8521784Abstract: Techniques for storing and manipulating tabular data are provided. According to one embodiment, a user may control whether tabular data is stored in row-level or column-major format. Furthermore, the user may control the level of data compression to achieve an optimal balance between query performance and compression ratios. Tabular data from within the same table may be stored in both column-major and row-major format and compressed at different levels. In addition, tabular data can migrate between column-major format and row-major format in response to various events. For example, in response to a request to update or lock a row stored in column-major format, the row may be migrated and subsequently stored into row-major format. In one embodiment, table partitions are used to enhance data compression techniques. For example, compression tests are performed on a representative table partition, and a compression map is generated and applied to other table partitions.Type: GrantFiled: August 30, 2010Date of Patent: August 27, 2013Assignee: Oracle International CorporationInventors: Amit Ganesh, Vikram Kapoor, Vineet Marwah, Kam Shergill, Roger MacNicol, Sachin Kulkarni, Jesse Kamp
-
Patent number: 8356060Abstract: Techniques are described herein for automatically selecting the compression techniques to be used on tabular data. A compression analyzer gives users high-level control over the selection process without requiring the user to know details about the specific compression techniques that are available to the compression analyzer. Users are able to specify, for a given set of data, a “balance point” along the spectrum between “maximum performance” and “maximum compression”. The point thus selected is used by the compression analyzer in a variety of ways. For example, in one embodiment, the compression analyzer uses the user-specified balance point to determine which of the available compression techniques qualify as “candidate techniques” for the given set of data. The compression analyzer selects the compression technique to use on a set of data by actually testing the candidate compression techniques against samples from the set of data.Type: GrantFiled: April 28, 2010Date of Patent: January 15, 2013Assignee: Oracle International CorporationInventors: Vineet Marwah, Vikram Kapoor, Amit Ganesh, Jesse Kamp, Sachin Kulkarni, Roger Macnicol, Kam Shergill, Manosiz Bhattacharyya
-
Patent number: 8239421Abstract: Described herein are compression and processing optimizations by using data transformation techniques. In example embodiments, a byte-wise differential transformation is applied to columnar data represented as a list of length-value pairs to determine a list of delta pairs that is subsequently compressed and stored on persistent storage. A length separation transformation is applied to separate a list of length-value pairs into a length array and a corresponding data value array, where these two arrays are subsequently compressed and stored separately on persistent storage. A native number transformation is applied to a set of number values to remove the lengths stored in the number values, where the transformed set is stored on persistent storage instead of the original set of number values.Type: GrantFiled: August 30, 2010Date of Patent: August 7, 2012Assignee: Oracle International CorporationInventors: Vineet Marwah, Vikram Kapoor, Jesse Kamp, Kam Shergill, Roger MacNicol, Manosiz Bhattacharyya, Amit Ganesh
-
Publication number: 20120143833Abstract: A highly flexible and extensible structure is provided for physically storing tabular data. The structure, referred to as a compression unit, may be used to store tabular data that logically resides in any type of table-like structure. According to one embodiment, compression units are recursive. Thus, a compression unit may have a “parent” compression unit to which it belongs, and may have one or more “child” compression units that belong to it. In one embodiment, compression units include metadata that indicates how the tabular data is stored within them. The metadata for a compression unit may indicate, for example, whether the data is stored in row-major or column major-format the order of the columns within the compression unit (which may differ from the logical order of the columns dictated by the definition of their logical container), a compression technique for the compression unit, the child compression units (if any), etc.Type: ApplicationFiled: February 10, 2012Publication date: June 7, 2012Inventors: Amit Ganesh, Vikram Kapoor, Vineet Marwah, Kam Shergill, Roger MacNicol, Sachin Kulkarni, Jesse Kamp
-
Publication number: 20120117038Abstract: A highly flexible and extensible structure is provided for physically storing tabular data. The structure, referred to as a compression unit, may be used to physically store tabular data that logically resides in any type of table-like structure. Techniques are employed to avoid changing tabular data within existing compression units. Deleting tabular data within compression units is avoided by merely tracking deletion requests, without actually deleting the data. Inserting new tabular data into existing compression units is avoided by storing the new data external to the compression units. If the number of deletions exceeds a threshold, and/or the number of new inserts exceeds a threshold, new compression units may be generated. When new compression units are generated, the previously-existing compression units may be discarded to reclaim storage, or retained to allow reconstruction of prior states of the tabular data.Type: ApplicationFiled: November 15, 2011Publication date: May 10, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Amit Ganesh, Vikram Kapoor, Vineet Marwah, Kam Shergill, Roger MacNicol, Sachin Kulkarni, Jesse Kamp
-
Publication number: 20120059792Abstract: A method and system that annotates a redo log to provide information concerning the execution of a procedure at a primary database. The annotations include entry and exit markers that indicate the beginning and the end of the execution along with any arguments passed to the procedure, and whether the execution of the procedure was successful. At the standby database, these markers are used to create a logical transaction associated with the procedure. The operations performed by the procedure are grouped into individual transactions, and these individual transactions are grouped as belonging to the logical transaction. If the execution of the procedure was successful at the primary database, then the individual transactions are discarded, and the logical transaction is applied by executing the procedure at the standby database. If the execution of the procedure failed at the primary database, then the individual transactions and the logical transaction are discarded.Type: ApplicationFiled: November 9, 2011Publication date: March 8, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Joydip Kundu, Anthony Adams, Goutam Kulkarni, Roger MacNicol, Douglas Voss, Qinqin Wang
-
Publication number: 20120054225Abstract: A method and apparatus is provided for optimizing queries received by a database system that relies on an intelligent data storage server to manage storage for the database system. Storing compression units in hybrid columnar format, the storage manager evaluates simple predicates and only returns data blocks containing rows that satisfy those predicates. The returned data blocks are not necessarily stored persistently on disk. That is, the storage manager is not limited to returning disc block images. The hybrid columnar format enables optimizations that provide better performance when processing typical database workloads including both fetching rows by identifier and performing table scans.Type: ApplicationFiled: August 30, 2010Publication date: March 1, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Vineet Marwah, Vikram Kapoor, Jesse Kamp, Kam Shergill, Roger Macnicol, Sachin Kulkami, Amit Ganesh
-
Patent number: 8086564Abstract: A method and system that annotates a redo log to provide information concerning the execution of a procedure at a primary database. The annotations include entry and exit markers that indicate the beginning and the end of the execution along with any arguments passed to the procedure, and whether the execution of the procedure was successful. At the standby database, these markers are used to create a logical transaction associated with the procedure. The operations performed by the procedure are grouped into individual transactions, and these individual transactions are grouped as belonging to the logical transaction. If the execution of the procedure was successful at the primary database, then the individual transactions are discarded, and the logical transaction is applied by executing the procedure at the standby database. If the execution of the procedure failed at the primary database, then the individual transactions and the logical transaction are discarded.Type: GrantFiled: December 12, 2007Date of Patent: December 27, 2011Assignee: Oracle International CorporationInventors: Joydip Kundu, Anthony Adams, Goutam Kulkarni, Roger MacNicol, Douglas Voss, Qinqin Wang
-
Publication number: 20110029569Abstract: Techniques for storing and manipulating tabular data are provided. According to one embodiment, a user may control whether tabular data is stored in row-level or column-major format. Furthermore, the user may control the level of data compression to achieve an optimal balance between query performance and compression ratios. Tabular data from within the same table may be stored in both column-major and row-major format and compressed at different levels. In addition, tabular data can migrate between column-major format and row-major format in response to various events. For example, in response to a request to update or lock a row stored in column-major format, the row may be migrated and subsequently stored into row-major format. In one embodiment, table partitions are used to enhance data compression techniques. For example, compression tests are performed on a representative table partition, and a compression map is generated and applied to other table partitions.Type: ApplicationFiled: August 30, 2010Publication date: February 3, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Amit GANESH, Vikram KAPOOR, Vineet MARWAH, Kam SHERGILL, Roger MacNICOL, Sachin KULKARNI, Jesse KAMP
-
Publication number: 20100281079Abstract: Techniques are described herein for automatically selecting the compression techniques to be used on tabular data. A compression analyzer gives users high-level control over the selection process without requiring the user to know details about the specific compression techniques that are available to the compression analyzer. Users are able to specify, for a given set of data, a “balance point” along the spectrum between “maximum performance” and “maximum compression”. The point thus selected is used by the compression analyzer in a variety of ways. For example, in one embodiment, the compression analyzer uses the user-specified balance point to determine which of the available compression techniques qualify as “candidate techniques” for the given set of data. The compression analyzer selects the compression technique to use on a set of data by actually testing the candidate compression techniques against samples from the set of data.Type: ApplicationFiled: April 28, 2010Publication date: November 4, 2010Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Vineet Marwah, Vikram Kapoor, Amit Ganesh, Jesse Kamp, Sachin Kulkarni, Roger Macnicol, Kam Shergill, Manosiz Bhattacharyya
-
Publication number: 20100281004Abstract: A database server stores compressed units in data blocks of a database. A table (or data from a plurality of rows thereof) is first compressed into a “compression unit” using any of a wide variety of compression techniques. The compression unit is then stored in one or more data block rows across one or more data blocks. As a result, a single data block row may comprise compressed data for a plurality of table rows, as encoded within the compression unit. Storage of compression units in data blocks maintains compatibility with existing data block-based databases, thus allowing the use of compression units in preexisting databases without modification to the underlying format of the database. The compression units may, for example, co-exist with uncompressed tables. Various techniques allow a database server to optimize access to data in the compression unit, so that the compression is virtually transparent to the user.Type: ApplicationFiled: April 28, 2010Publication date: November 4, 2010Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Vikram Kapoor, Amit Ganesh, Jesse Kamp, Sachin Kulkarni, Vineet Marwah, Kam Shergill, Roger Macnicol, Manosiz Bhattacharyya
-
Publication number: 20100278446Abstract: A highly flexible and extensible structure is provided for physically storing tabular data. The structure, is referred to as a compression unit, and may be used to physically store tabular data that logically resides in any type of table-like structure. According to one embodiment, compression units are recursive. Thus, a compression unit may have a “parent” compression unit to which it belongs, and may have one or more “child” compression units that belong to it. In one embodiment, compression units include metadata that indicates how the tabular data is stored within them. The metadata for a compression unit may indicate, for example, whether the data within the compression unit is stored in row-major or column major-format (or some combination thereof), the order of the columns within the compression unit (which may differ from the logical order of the columns dictated by the definition of their logical container), a compression technique for the compression unit, the child compression units (if any), etc.Type: ApplicationFiled: November 12, 2009Publication date: November 4, 2010Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Amit Ganesh, Vikram Kapoor, Vineet Marwah, Kam Shergill, Roger MacNicol, Sachin Kulkarni, Jesse Kamp
-
Publication number: 20090157764Abstract: A method and system that annotates a redo log to provide information concerning the execution of a procedure at a primary database. The annotations include entry and exit markers that indicate the beginning and the end of the execution along with any arguments passed to the procedure, and whether the execution of the procedure was successful. At the standby database, these markers are used to create a logical transaction associated with the procedure. The operations performed by the procedure are grouped into individual transactions, and these individual transactions are grouped as belonging to the logical transaction. If the execution of the procedure was successful at the primary database, then the individual transactions are discarded, and the logical transaction is applied by executing the procedure at the standby database. If the execution of the procedure failed at the primary database, then the individual transactions and the logical transaction are discarded.Type: ApplicationFiled: December 12, 2007Publication date: June 18, 2009Inventors: Joydip Kundu, Anthony Adams, Goutam Kulkarni, Roger MacNicol, Douglas Voss, Qinqin Wang
-
Publication number: 20030187858Abstract: An improved method for handling database queries including functional expressions against columns having enumerated storage is described. Upon receipt of a query including a predicate having at least one functional expression referencing at least one database column containing offsets to values in enumerated storage, a look-up table is created for storing results of evaluation of the predicate against the values in enumerated storage. Each functional expression of the predicate is evaluated against the values in enumerated storage and the results of evaluation are stored in the look-up table. Results stored in the look-up table may then be accessed through use of the offsets to values in enumerated storage. The method may also be utilized for projecting expressions against database columns having enumerated storage.Type: ApplicationFiled: April 2, 2002Publication date: October 2, 2003Applicant: Sybase, Inc.Inventors: Steven Kirk, Roger MacNicol, Fang-Ying Yen