Patents by Inventor Albert A. Hopeman
Albert A. Hopeman 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: 10810198Abstract: Techniques related to group determination based on multi-table dictionary codes are disclosed. In some embodiments, one or more non-transitory storage media store a sequence of instructions which, when executed by one or more computing devices, cause performance of a method. The method comprises storing a fact table and a dimension table that share a domain dictionary. The fact table and the dimension table each have a column of encoded join keys that is decodable using the shared domain dictionary. A query may specify one or more row groups for the dimension table. To efficiently process the query, one or more group identifiers are assigned to the one or more row groups. Each row group corresponds to a different group identifier. This enables a code-to-group-identifier mapping to be generated. The code-to-group-identifier mapping correlates the encoded join keys to the one or more group identifiers.Type: GrantFiled: March 12, 2018Date of Patent: October 20, 2020Assignee: Oracle International CorporationInventors: Albert Hopeman, IV, Ekrem S. C. Soylemez, Martin Roth
-
Patent number: 10558659Abstract: Techniques are described herein for performing join and aggregation operations for a received query using column dictionaries. In an embodiment, a query is received that requests to aggregate a measure column of a fact table based on an aggregate function and join the fact table with a dimension table on a join key column. Data of the fact table may be stored in one or more storage data units, for example a particular data portion of the fact table may be stored on a particular data storage unit. The respective data portion may include one or more column vectors corresponding to one or more columns of the fact table in which a cell element corresponds to a value at a particular row and a particular column of the one or more columns of the fact table. The cell element of the one or more column vectors includes a dictionary encoded value of the value at the particular column and row. This dictionary encoded value is mapped to the value of by a dictionary data structure of the particular column.Type: GrantFiled: September 16, 2016Date of Patent: February 11, 2020Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Albert Hopeman, Martin Roth, Ekrem Soylemez, Adam Kociubes
-
Publication number: 20190095486Abstract: Techniques related to group determination based on multi-table dictionary codes are disclosed. In some embodiments, one or more non-transitory storage media store a sequence of instructions which, when executed by one or more computing devices, cause performance of a method. The method comprises storing a fact table and a dimension table that share a domain dictionary. The fact table and the dimension table each have a column of encoded join keys that is decodable using the shared domain dictionary. A query may specify one or more row groups for the dimension table. To efficiently process the query, one or more group identifiers are assigned to the one or more row groups. Each row group corresponds to a different group identifier. This enables a code-to-group-identifier mapping to be generated. The code-to-group-identifier mapping correlates the encoded join keys to the one or more group identifiers.Type: ApplicationFiled: March 12, 2018Publication date: March 28, 2019Inventors: Albert Hopeman, IV, Ekrem S.C. Soylemez, Martin Roth
-
Publication number: 20180081939Abstract: Techniques are described herein for performing join and aggregation operations for a received query using column dictionaries. In an embodiment, a query is received that requests to aggregate a measure column of a fact table based on an aggregate function and join the fact table with a dimension table on a join key column. Data of the fact table may be stored in one or more storage data units, for example a particular data portion of the fact table may be stored on a particular data storage unit. The respective data portion may include one or more column vectors corresponding to one or more columns of the fact table in which a cell element corresponds to a value at a particular row and a particular column of the one or more columns of the fact table. The cell element of the one or more column vectors includes a dictionary encoded value of the value at the particular column and row. This dictionary encoded value is mapped to the value of by a dictionary data structure of the particular column.Type: ApplicationFiled: September 16, 2016Publication date: March 22, 2018Inventors: Albert Hopeman, Martin Roth, Ekrem Soylemez, Adam Kociubes
-
Patent number: 9740718Abstract: Methods, computer systems, and stored instructions are described herein for densely grouping dimensional data and/or aggregating data using a data structure, such as one that is constructed based on dimensional data. When smaller tables are joined with a larger table, a server may analyze the smaller tables first to determine actual value combinations that occur in the smaller tables, and these actual value combinations are used to more efficiently process the larger table. A dense data structure may be generated by processing dimensional data before processing data from fact table. The dense data structure may be generated by compressing ranges of values that are possible in dimensions into a range of values that actually occurs in the dimensions. The compressed range of values may be represented by dense set identifiers rather than the actual compressed range of values.Type: GrantFiled: September 20, 2013Date of Patent: August 22, 2017Assignee: Oracle International CorporationInventors: Albert A. Hopeman, IV, Martin Roth, Ekrem S. C. Soylemez
-
Patent number: 9195699Abstract: A method and data structure is described that builds summary information using processor time that is usually proportional to the size of input data and a depth of hierarchies for a plurality of attributes. The output of computation is stored in a smaller area by eliminating redundant storage and computation. An index is generated which includes tuples or rows that include lower bound values for each of the attributes, values of children of the lower bound values based on the hierarchies of the attributes, and coverage class indicators of the coverage classes of the children.Type: GrantFiled: August 6, 2004Date of Patent: November 24, 2015Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Caleb Welton, Ekrem Soylemez, Albert A. Hopeman
-
Publication number: 20150088885Abstract: Methods, computer systems, and stored instructions are described herein for densely grouping dimensional data and/or aggregating data using a data structure, such as one that is constructed based on dimensional data. When smaller tables are joined with a larger table, a server may analyze the smaller tables first to determine actual value combinations that occur in the smaller tables, and these actual value combinations are used to more efficiently process the larger table. A dense data structure may be generated by processing dimensional data before processing data from fact table. The dense data structure may be generated by compressing ranges of values that are possible in dimensions into a range of values that actually occurs in the dimensions. The compressed range of values may be represented by dense set identifiers rather than the actual compressed range of values.Type: ApplicationFiled: September 20, 2013Publication date: March 26, 2015Inventors: ALBERT A. HOPEMAN IV, MARTIN ROTH, EKREM S.C. SOYLEMEZ
-
Patent number: 8612421Abstract: Predicate abduction involves identifying, from a database statement, predicates on attributes of dimensional data, and applying those predicates to corresponding measure data so that only measure values are fetched and returned for dimension values that satisfy the predicate. In contrast to processing joins of relational data, the subset of the measure data is determined without needing to join a fact table with a dimension table and, therefore, without processing every fact record to determine which measure values are associated with records that satisfy the condition. Buffer reuse involves storing in buffers the “domains” of queries executing on multidimensional data. Responsive to detecting that execution of a database statement requires multiple iterations of extracting the same multidimensional data, the data is extracted during the first iteration and stored in a buffer so that, for each subsequent iteration, the buffer-stored data is accessed rather than re-extracting the data.Type: GrantFiled: September 16, 2004Date of Patent: December 17, 2013Assignee: Oracle International CorporationInventors: Matthew Dombroski, Caleb Welton, Ekrem Soylemez, Albert A. Hopeman, IV
-
Patent number: 8200612Abstract: In processing a query on multidimensional data in a multidimensional schema, a multidimensional database server performs various processes to limit the amount of data that is extracted from the database and presented to a relational database server in response to the request. A subset of data is identified to extract from the multidimensional data, based on the query. In various embodiments, cell-filtering, measure-filtering, and column-filtering criteria identified from the query are used to filter the subset of data, in order to return a minimized set of multidimensional data values from the subset of data. Therefore, computational resources are conserved with respect to further processing by the relational database server in response to the query.Type: GrantFiled: May 6, 2004Date of Patent: June 12, 2012Assignee: Oracle International CorporationInventors: Ekrem Soylemez, Caleb Welton, Gregory Dorman, Matthew Dombroski, Albert A. Hopeman, IV, Igor Lubashev, Lev Margulis, Christopher Kearney, James Carey
-
Patent number: 7165065Abstract: In a multidimensional database, an aggregation operation is performed in an optimal manner by storing the values included in the/aggregation operation on the same disk page. A sparsity manager determines aggregate values that are computed from other data values during the aggregation operation. Each aggregate value is associated with one or more data values that are used during the aggregation operation to compute the aggregate value. The sparsity manager stores the associated data values in proximity to each other, such as on the same disk page, so that multiple disk page fetches may not be required for the same set of data values during the aggregation operation. The data values used in the aggregation operation can therefore be fetched once from a disk page, and thereafter are found in memory, such as on a cache page corresponding to the disk page. In this manner, multiple fetches for the same disk page during the aggregation operation are avoided.Type: GrantFiled: July 14, 2000Date of Patent: January 16, 2007Assignee: Oracle CorporationInventors: Caleb E. Welton, Albert A. Hopeman, Andrew H. Goldberg
-
Publication number: 20060004885Abstract: Multiple writers can make permanent changes to data objects, while the performance is improved and data consistency is ensured. A database management system comprises a database containing a plurality of objects, and, possibly, a plurality of analytic workspaces, each analytic workspace containing at least some of the plurality of objects in the database, wherein changes made to a an object in a database private view are not written to a corresponding object in the database unless write access on the object has been given to the database private view, and wherein the database management system is operable to give write access on each of the plurality of objects in the database to database private views individually.Type: ApplicationFiled: June 30, 2004Publication date: January 5, 2006Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Igor Lubashev, James Carey, Albert Hopeman, Bruce Golbus, Ekrem Soylemez, Zhiqi Qiu
-
Publication number: 20050033741Abstract: Predicate abduction involves identifying, from a database statement, predicates on attributes of dimensional data, and applying those predicates to corresponding measure data so that only measure values are fetched and returned for dimension values that satisfy the predicate. In contrast to processing joins of relational data, the subset of the measure data is determined without needing to join a fact table with a dimension table and, therefore, without processing every fact record to determine which measure values are associated with records that satisfy the condition. Buffer reuse involves storing in buffers the “domains” of queries being executed on multidimensional data. In response to detecting that execution of a database statement requires multiple iterations of extracting the same multidimensional data, the data is extracted during the first iteration and stored in a buffer so that, for each subsequent iteration, the data in the buffer is accessed rather than again extracting the data.Type: ApplicationFiled: September 16, 2004Publication date: February 10, 2005Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Matthew Dombroski, Caleb Welton, Ekrem Soylemez, Albert Hopeman
-
Patent number: 6845430Abstract: In a multi-threaded computing environment, a shared cache system reduces the amount of redundant information stored in memory. A cache memory area provides both global readable data and private writable data to processing threads. A particular processing thread accesses data by first checking its private views of modified data and then its global views of read-only data. Uncached data is read into a cache buffer for global access. If write access is required by the processing thread, the data is copied into a new cache buffer, which is assigned to the processing thread's private view. The particular shared cache system supports generational views of data. The system is particularly useful in on-line analytical processing of multi-dimensional databases. In one embodiment, a dedicated collector reclaims cache memory blocks for the processing threads. By utilizing a dedicated collector thread, any processing penalty encountered during the reclamation process is absorbed by the dedicated collector.Type: GrantFiled: June 2, 2003Date of Patent: January 18, 2005Assignee: Oracle International CorporationInventors: Albert A. Hopeman, James E. Carey, Bruce F. Golbus
-
Publication number: 20040236767Abstract: In processing a query on multidimensional data in a multidimensional schema, a multidimensional database server performs various processes to limit the amount of data that is extracted from the database and presented to a relational database server in response to the request. A subset of data is identified to extract from the multidimensional data, based on the query. In various embodiments, cell-filtering, measure-filtering, and column-filtering criteria identified from the query are used to filter the subset of data, in order to return a minimized set of multidimensional data values from the subset of data. Therefore, computational resources are conserved with respect to further processing by the relational database server in response to the query.Type: ApplicationFiled: May 6, 2004Publication date: November 25, 2004Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Ekrem Soylemez, Caleb Welton, Gregory Dorman, Matthew Dombroski, Albert A. Hopeman, Igor Lubashev, Lev Margulis, Christopher Kearney, James Carey
-
Publication number: 20030196042Abstract: In a multi-threaded computing environment, a shared cache system reduces the amount of redundant information stored in memory. A cache memory area provides both global readable data and private writable data to processing threads. A particular processing thread accesses data by first checking its private views of modified data and then its global views of read-only data. Uncached data is read into a cache buffer for global access. If write access is required by the processing thread, the data is copied into a new cache buffer, which is assigned to the processing thread's private view. The particular shared cache system supports generational views of data. The system is particularly useful in on-line analytical processing of multi-dimensional databases. In one embodiment, a dedicated collector reclaims cache memory blocks for the processing threads. By utilizing a dedicated collector thread, any processing penalty encountered during the reclamation process is absorbed by the dedicated collector.Type: ApplicationFiled: June 2, 2003Publication date: October 16, 2003Applicant: ORACLE International CorporationInventors: Albert A. Hopeman, James E. Carey, Bruce F. Golbus
-
Patent number: 6606621Abstract: A method for aggregating sparse data in a multidimensional array by using a composite join hierarchy created by segmenting the data so that each segment of the hierarchy processed is smaller and more likely to fit in memory. The method employs a recursive sub-cubing mechanism wherein an n-dimensional cube is broken into a number of (n−1)-dimensional cubes and each of those cubes are solved as (n−2)-dimensional cubes etc. Within each division, the processing is segmented by hierarchy level so a dimension with three hierarchy levels (for example, month-quarter-year) would form three separate subcubes with one less dimension. This algorithm produces one ‘worklist’ for every combination of hierarchy levels in the cube. Each of these worklists is represented as a bitmap of the cells contained within it and may be used as a basis of generating more aggregate worklists.Type: GrantFiled: May 30, 2001Date of Patent: August 12, 2003Assignee: Oracle International Corp.Inventors: Albert A. Hopeman, Caleb E. Welton, Grant E. Hicks
-
Patent number: 6584475Abstract: Growth of databases in read-repeatable environments is controlled by an erase list maintained for each generation of the database. The erase list identifies pages which are retained in the database to facilitate read repeatability. The system uses the erase list to identify obsolete pages which can be removed from the database. The removed pages can then be reclaimed for re-use by a subsequent generation.Type: GrantFiled: December 15, 1999Date of Patent: June 24, 2003Assignee: Oracle International CorporationInventors: James E. Carey, Charles P. Venezia, Jr., Albert Hopeman
-
Patent number: 6574720Abstract: In a multi-threaded computing environment, a shared cache system reduces the amount of redundant information stored in memory. A cache memory area provides both global readable data and private writable data to processing threads. A particular processing thread accesses data by first checking its private views of modified data and then its global views of read-only data. Uncached data is read into a cache buffer for global access. If write access is required by the processing thread, the data is copied into a new cache buffer, which is assigned to the processing thread's private view. The particular shared cache system supports generational views of data. The system is particularly useful in on-line analytical processing of multi-dimensional databases. In one embodiment, a dedicated collector reclaims cache memory blocks for the processing threads. By utilizing a dedicated collector thread, any processing penalty encountered during the reclamation process is absorbed by the dedicated collector.Type: GrantFiled: June 19, 2000Date of Patent: June 3, 2003Assignee: Oracle International CorporationInventors: Albert A. Hopeman, James E. Carey, Bruce F. Golbus
-
Publication number: 20020194163Abstract: A method for aggregating sparse data in a multidimensional array by using a composite join hierarchy created by segmenting the data so that each segment of the hierarchy processed is smaller and more likely to fit in memory. The method employs a recursive sub-cubing mechanism wherein an n-dimensional cube is broken into a number of (n-1)-dimensional cubes and each of those cubes are solved as (n-2)-dimensional cubes etc. Within each division, the processing is segmented by hierarchy level so a dimension with three hierarchy levels (for example, month-quarter-year) would form three separate subcubes with one less dimension. This algorithm produces one ‘worklist’ for every combination of hierarchy levels in the cube. Each of these worklists is represented as a bitmap of the cells contained within it and may be used as a basis of generating more aggregate worklists. To minimize the need for input-output data transfers, all the derived worklists of a single worklist are generated at the same time.Type: ApplicationFiled: May 30, 2001Publication date: December 19, 2002Inventors: Albert A. Hopeman, Caleb E. Welton, Grant Hicks
-
Patent number: 6480950Abstract: A method for translating, in a software paging system, an input key describing a virtual page to the address of the page in main memory, comprises creating, in main memory, a translation buffer which has a plurality of records. Each record has a plurality of cells, each cell having a key field for storing a key or a portion of a key which identifies a page in memory, and each cell having an address field for storing the address of the identified page. If the input key matches a stored key, the address associated with the identified page is retrieved. Otherwise, a paging manager is invoked to establish an address for the input key, and the input key and established address are saved. The least recently used order of memory pages addressed in the dereferenced record is indicated by updating a least recently used cell indicator associated with the dereferenced record.Type: GrantFiled: January 24, 2000Date of Patent: November 12, 2002Assignee: Oracle International CorporationInventors: Igor Lyubashevskiy, Albert Hopeman, James E. Carey