US20100332462A1 - Maximizing system resources used to decompress read-only compressed analytic data in a relational database table - Google Patents
Maximizing system resources used to decompress read-only compressed analytic data in a relational database table Download PDFInfo
- Publication number
- US20100332462A1 US20100332462A1 US12/875,376 US87537610A US2010332462A1 US 20100332462 A1 US20100332462 A1 US 20100332462A1 US 87537610 A US87537610 A US 87537610A US 2010332462 A1 US2010332462 A1 US 2010332462A1
- Authority
- US
- United States
- Prior art keywords
- code
- relational database
- database table
- control block
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims abstract description 9
- 238000007906 compression Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 8
- 230000006837 decompression Effects 0.000 description 13
- 238000013459 approach Methods 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
Definitions
- the present invention relates to the field of data compression and decompression for databases, and more particularly to minimizing system resources used to decompress read-only compressed analytic data in a relational database table.
- a database may refer to a collection of related records that is created and managed by what is commonly referred to as a database management system.
- One type of database is a “relational database.”
- a relational database may refer to a database that maintains a set of separate, related files or tables, but combines data elements from the tables for queries and reports when required.
- Analytic data may refer to data that is analyzed.
- stock transaction data may be analyzed for trends such as the age group of the individuals engaged in stock transactions.
- insurance data may be analyzed to determine whether it is profitable to maintain particular individuals as customers.
- data may be analyzed for fraud.
- the analytic data stored in a relational database is “compressed” in order to maximize the amount of data stored in a given amount of disk space.
- Data compression may refer to the process of encoding information using fewer bits than an unencoded representation (original format of the data) would use through use of specific encoding schemes. For example, an article could be encoded with fewer bits if we accept the convention that the word “compression” be encoded as “comp.”
- the compressed analytic data may be “read-only.” Read-only may refer to data that will not change after it is compressed. It is noted that when “compressed data” is used herein that “compressed data” refers to “compressed analytic data.”
- Decompression may refer to the act of reversing the effects of data compression which restores the data to its original form prior to being compressed. In this manner, the user is able to retrieve the requested data in its original form.
- the present invention is directed to a decompression approach that does not decompress the entire rows of compressed data in a relational database table at a single time. Instead, the present invention is directed to a decompression approach that selectively decompresses column data in relational data tables, such as decompressing the compressed data row by row and then column by column within each row as each row is needed by the relational query processor.
- control block method One such method (“commonly referred to as the “control block method”) used in such a decompression approach involves a decompression program reading information from a data structure, commonly referred to as a “control block,” associated with a particular table of the relational database.
- the control block may store algorithms and parameters used to identify the particular subroutines to call to decompress the data in the table.
- the decompression program may read column by column within a row. After reading a column, the decompression program may read the information in the control block to call the appropriate subroutine to decompress the data for that column. The same process is repeated for the other columns in the row.
- the control block method uses a small amount of code to decompress the compressed data.
- a drawback to using the control block method is an excessive number of computer cycles being used to decompress the compressed data resulting in poor performance for query programs that access large amounts of data.
- i-code method Another method for decompressing compressed data used in the decompression approach discussed above is to create a string of commands, stored in a list (“i-code list”), that perform the same functionality as the parameters in the control block. These string of commands are created for a particular table of the relational database which are used by the decompression program to uncompress the data for each row of the table, row by row and column by column within the row.
- the string of commands may be referred to herein as “i-code” or “p-code,” which are pseudo-code, i.e., not machine executable code.
- the i-code may be built by an “i-code builder” which is executed by an “i-code interpreter.” The i-code interpreter interprets each of the commands.
- the i-code interpreter interprets each command, one at a time, and then executes the code in-line thereby avoiding the subroutine calls.
- many machine cycles are eliminated to uncompress data. It does, however, require more programming effort as an i-code builder and an i-code interpreter have to be built.
- the i-code method does reduce the number of machine cycles used to decompress compressed data, there is still improvement to be made. By further reducing the number of machine cycles used to decompress compressed data, query programs will be able to access large amounts of data more quickly.
- the problems outlined above may at least in part be solved in some embodiments by converting the i-code list associated with a relational database table into a programming language and then compiling the programming language into object code.
- the object code may then be stored in the user's system and executed to decompress the compressed rows of data stored in the relational database table.
- the interpretation step (as used in the i-code method) is avoided thereby reducing the number of machine cycles used to decompress the compressed data.
- query programs will be able to access large amounts of data more quickly.
- a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of generating an i-code list from a control block, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores parameters used to decompress compressed data in the relational database table.
- the method may further comprise converting the i-code list associated with the relational database table into a programming language.
- the method may further comprise compiling the programming language into object code.
- the method may further comprise storing the object code in a module stored in an executable library in a user's system enabling the object code to be reused for all subsequent query accesses.
- a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of compiling a programming code for the relational database table on a load machine if there is a compiler installed on the load machine that is compatible with a compiler installed on a user's machine, where an i-code list associated with the relational database table is converted into the programming code.
- the method may further comprise compiling the programming code for the relational database table on the user's machine if there is not a compiler installed on the load machine that is compatible with the compiler installed on the user's machine and if the compiler installed on the user's machine is compatible with the programming code.
- the method may further comprise installing on the user's machine a first package, where the first package comprises compressed data for the relational database table.
- the first package may further comprise a control block for the relational database table, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores algorithms and parameters used to decompress compressed data in the relational database table.
- the first package may further comprise the i-code list associated with the relational database table; the programming code; and the compiled programming code.
- a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of executing an i-code interpreter to execute an i-code list associated with the relational database table, where the i-code list is generated from a control block, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores parameters used to decompress compressed data in the relational database table, where the i-code interpreter is executed to execute the i-code list if there is not a compiled programming code installed on a user's machine, where the compiled programming code is converted from the i-code list.
- the method may further comprise calling an operating system to load the compiled programming code if the compiled programming code is installed on the user's machine.
- FIG. 1 is a hardware configuration of a computer system in accordance with an embodiment of the present invention
- FIG. 2 is a flowchart of a method for decompressing read-only analytic data in a relational database table using the compiled method in accordance with an embodiment of the present invention
- FIG. 3 is a flowchart of a method for installing a package on a user's machine which includes the necessary resources to decompress the compressed data in a relational database table in accordance with an embodiment of the present invention
- FIG. 4 is a flowchart of a method for performing the uncompression of the compressed data in a relational database table in accordance with an embodiment of the present invention.
- the present invention comprises a method, computer program product and system for minimizing system resources used to decompress read-only compressed analytic data in a relational database table.
- an i-code list associated with a relational database table is converted into a programming language.
- the programming language is compiled into object code and stored in a module in the user's system.
- the object code may be called by all subsequent query processing with a pointer designating the particular row in the database containing the compressed data to be decompressed.
- the compressed data designated by the pointer may then be decompressed upon execution of the object code.
- the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data.
- query programs will be able to access large amounts of data more quickly.
- FIG. 1 Computer System
- FIG. 1 illustrates a typical hardware configuration of computer system 100 which is representative of a hardware environment for practicing the present invention.
- computer system 100 may represent a computer system, referred to herein as the “user's machine,” or may represent a computer system, referred to herein as the “load machine.”
- Load machine may refer to a computer system that loads or installs software onto “user's machine.”
- computer system 100 may have a processor 110 coupled to various other components by system bus 112 .
- An operating system 140 may run on processor 110 and provide control and coordinate the functions of the various components of FIG. 1 .
- An application 150 in accordance with the principles of the present invention may run in conjunction with operating system 140 and provide calls to operating system 140 where the calls implement the various functions or services to be performed by application 150 .
- Application 150 may include, for example, an application for minimizing system resources used to decompress read-only compressed analytic data in a relational database table as described below in association with FIGS. 2-4 .
- application 150 of either user's machine 100 or load machine 100 may include software to perform the “compiled method” as discussed below in connection with steps 201 - 204 of FIG.
- application 150 of user's machine 100 may include software (“uncompression software”) configured to perform steps 205 - 206 of FIG. 2 . Further application 150 of user's machine 100 may include the uncompression software configured to perform the uncompression of the compressed data in a relational database table as discussed further below in connection with FIG. 4 . Further, application 150 of user's machine 100 may include software for performing the “package install process” as discussed further below in connection with FIG. 3 .
- ROM 116 may be coupled to system bus 112 and include a basic input/output system (“BIOS”) that controls certain basic functions of computer system 100 .
- BIOS basic input/output system
- RAM 114 and disk adapter 118 may also be coupled to system bus 112 .
- software components including operating system 140 and application 150 may be loaded into RAM 114 which may be computer system's 100 main memory for execution.
- Disk adapter 118 may be an integrated drive electronics (“IDE”) adapter that communicates with a disk unit 120 , e.g., disk drive. It is noted that the software mentioned above may reside in either disk unit 120 or in application 150 .
- IDE integrated drive electronics
- computer system 100 may further comprise a communications adapter 134 coupled to bus 112 .
- Communications adapter 134 may interconnect bus 112 with an outside network, e.g., Local Area Network (LAN), Wide Area Network (WAN), enabling computer system 100 to communicate with other such systems.
- I/O devices may also be connected to system bus 112 via a user interface adapter 122 and a display adapter 136 .
- Keyboard 124 , mouse 126 and speaker 130 may all be interconnected to bus 112 through user interface adapter 122 .
- Data may be inputted to computer system 100 through any of these devices.
- a display monitor 138 may be connected to system bus 112 by display adapter 136 . In this manner, a user is capable of inputting to computer system 100 through keyboard 124 or mouse 126 and receiving output from computer system 100 via display 1238 or speaker 130 .
- Implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product.
- sets of instructions for executing the method or methods may be resident in the random access memory 114 of one or more computer systems configured generally as described above.
- the set of instructions may be stored as a computer program product in another computer memory, for example, in disk unit 120 .
- the computer program product may also be stored at another computer and transmitted when desired to the user's workstation by a network or by an external network such as the Internet.
- the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical or some other physical change.
- FIG. 2 is a flowchart of a method for decompressing read-only analytic data in a relational database table using a method referred to herein as the “compiled method.”
- FIG. 3 is a flowchart of a method for installing a package on user's machine 100 which includes the necessary resources to decompress the compressed data in a relational database table.
- FIG. 4 is a flowchart of a method for performing the uncompression of the compressed data in a relational database table.
- FIG. 2 Method for Decompressing Read-Only Analytic Data in a Relational Database Table Using the Compiled Method
- FIG. 2 is a flowchart of a method 200 , referred to herein as the “compiled method,” for decompressing read-only analytic data in a relational database table in accordance with an embodiment of the present invention.
- control block may refer to a data structure that stores information regarding the compression algorithms used to compress the analytic data in the relational database table as well as includes parameters used to decompress the compressed data in the relational database table. Additional details regarding the control block are disclosed in U.S. patent application Ser. No. ______ filed on ______, entitled “Selecting Various Algorithms to Compress Columns of Analytic Data in a Read-Only Relational Database in a Manner that Allows Decompression of the Compressed Data Using Minimal System Resources,” Attorney Docket No.
- the i-code list may refer to a list of commands or a string of commands (referred to herein as “i-code”) that are used by a decompression or uncompression program to uncompress the data for each row of the table, row by row and column by column within the row.
- the control block and the generated i-code list may reside in disk unit 120 .
- the control block and the generated i-code list may reside in a library (stored in RAM 114 ) in system 100 .
- step 202 application 150 (running on user's machine 100 in one embodiment or running on load machine 100 in another embodiment) converts the i-code list associated with a relational database table into a programming language, e.g., C programming language.
- step 203 application 150 compiles the programming language into object code, i.e., machine code.
- step 204 application 150 stores the object code in a module, which is stored in a executable library in user's system 100 , thereby enabling the object code to be reused for all subsequent query accesses.
- the module resides in RAM 114 .
- application 150 resides in user's machine 100 and executes all of the procedures of method 200 .
- application 150 resides in a separate machine, referred to herein as the “load machine” 100 , and executes only the i-code generation, c-code generation and c-code compile steps (steps 201 - 204 ).
- uncompression program 150 of user's machine 100 calls the module which stores the object code with a pointer to the compressed row of data. That is, uncompression program 150 of user's machine 100 calls the module that stores the object code, where the call includes a pointer to the compressed row of data to be decompressed.
- uncompression program 150 of user's machine 100 decompresses the compressed row of data (compressed row of data that was identified by the pointer) using the stored object code.
- uncompression program 150 simply issues calls to the module as uncompression program 150 decompresses each row in the relational database table, column by column, without interpreting commands as in the i-code method.
- the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data.
- query programs will be able to access large amounts of data more quickly.
- method 200 may include other and/or additional steps that, for clarity, are not depicted. It is further noted that method 200 may be executed in a different order presented and that the order presented in the discussion of FIG. 2 is illustrative. It is further noted that certain steps in method 200 may be executed in a substantially simultaneous manner.
- the amount of system resources used in decompressing read-only analytic data in a relational database table may also be reduced by installing a package on user's machine 100 , where the package includes the necessary resources to decompress the compressed data in the relational database table, as discussed below in association with FIG. 3 .
- the package is a data object generated on load machine 100 that is move to user's machine 100 for installation.
- FIG. 3 Method for Installing a Package on a User's Machine which Includes the Necessary Resources to Decompress the Compressed Data in a Relational Database Table
- FIG. 3 is a flowchart of a method 300 for installing a package on a user's machine 100 ( FIG. 1 ), which includes the necessary resources to decompress the compressed data in a relational database table, in accordance with an embodiment of the present invention.
- step 301 application 150 of user's system 100 determines if there is a compiler (e.g., C compiler) installed on load machine 100 (e.g., computer system operating with UnixTM operating system) that is compatible with the compiler (e.g., C compiler) installed on user's machine 100 (e.g., computer system operating with WindowsTM operating system).
- Load machine 100 may refer to a computer system that loads or installs software onto user's machine 100 .
- User's machine 100 may refer to a computer system where an uncompression program operating on user's machine 100 decompresses the compressed data from the relational database table.
- step 302 application 150 compiles the programming code for the relational database table on load machine 100 . That is, if there is a compiler in load machine 100 that is compatible with the compiler in user's machine 100 , then application 150 compiles the programming code which is converted from an i-code list as discussed above in step 202 of FIG. 2 . The programming code is compiled on load machine 100 using the compiler that is compatible with the compiler on user's machine 100 .
- step 303 application 150 moves the install package to user's machine 100 .
- step 304 application 150 installs the package in files on user's machine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; i-code list for the relational database table; programming code for the relational database table; and the compiled programming code for the relational database table.
- step 305 application 150 installs the compiled code in an executable program module (e.g., dynamic load library such as in WindowsTM operating system).
- an executable program module e.g., dynamic load library such as in WindowsTM operating system.
- uncompression program 150 simply issues calls to the compiled programming code (as discussed above in step 205 of method 200 ) as uncompression program 150 decompresses each row in the relational database table, column by column, and then proceeds to the next row.
- the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly.
- step 306 application 150 moves the install package to user's machine 100 .
- step 307 application 150 determines if there is a compiler installed on user's machine 100 that is compatible with the programming code. For example, if the programming code is written in C, then, application 150 may determine if there is a C compiler installed on user's machine 100 .
- step 308 application 150 compiles the programming code for the relational database table on user's machine 100 . That is, if there is a compiler in user's machine 100 that is compatible with the programming code, then application 150 compiles the programming code which is converted from an i-code list as discussed above in step 202 of FIG. 2 .
- step 309 application 150 installs the package in files on user's machine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; i-code list for the relational database table; programming code for the relational database table; and the compiled programming code for the relational database table.
- step 310 application 150 installs the compiled code in an executable program module (e.g., dynamic load library such as in WindowsTM operating system).
- an executable program module e.g., dynamic load library such as in WindowsTM operating system.
- uncompression program 150 simply issues calls to the compiled programming code (as discussed above in step 205 of method 200 ) as uncompression program 150 decompresses each row in the relational database table, column by column, and then proceeds to the next row.
- the source code for decompressing the compressed data in the relational database table stored as object code in user's machine 100 , the number of machine cycles used to decompress the compressed data is further reduced in relation to the methods discussed in the Background Information section. As a result, query programs will be able to access large amounts of data more quickly.
- step 311 application 150 installs a package in files (e.g., stored on disk unit 120 ) on user's machine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; and the i-code list for the relational database table.
- a package in files e.g., stored on disk unit 120
- the package includes the following: compressed data for the relational database table; control block for the relational database table; and the i-code list for the relational database table.
- an i-code interpreter stored on user's machine 100 can decompress the compressed data in the relational database table by executing the i-code list (string of commands) as the uncompression program decompresses the compressed data for each row of the relational database table, row by row and column by column within the row.
- method 300 may include other and/or additional steps that, for clarity, are not depicted. It is further noted that method 300 may be executed in a different order presented and that the order presented in the discussion of FIG. 3 is illustrative. It is further noted that certain steps in method 300 may be executed in a substantially simultaneous manner.
- the uncompression program may perform the decompression of the compressed data in the relational database table in connection with the installed package (discussed above in connection with FIG. 3 ) as discussed below in connection with FIG. 4 .
- FIG. 4 Method for Performing the Uncompression of the Compressed Data in a Relational Database Table
- FIG. 4 is a flowchart of a method 400 for performing the uncompression of the compressed data in a relational database table in accordance with an embodiment of the present invention.
- uncompression program 150 determines if there exists an installed compiled programming code in user's machine 100 that is associated with a relational database table.
- An installed compiled programming code may be installed on user's machine 100 as indicated in steps 303 or 306 of method 300 .
- uncompression program 150 executes the i-code interpreter component to execute the i-code list.
- the package installed on user's machine 100 may not include compiled programming code but instead include an i-code list as indicated in step 307 .
- the package may not include compiled programming code if there is not a compiler installed on user's machine 100 that is compatible with the programming code.
- uncompression program 150 may execute the i-code list by executing the i-code interpreter which may be part of uncompression program 150 .
- the i-code interpreter may reside in disk unit 120 .
- uncompression program 150 determines if there is an override request included in the query request.
- An override request may refer to a request to not execute the compiled programming code but instead execute either the i-code list or implement the control block method, as discussed above, such as for testing purposes. That is, an override request may refer to a request to either execute the i-code list or implement the control block method, as discussed above, as a fallback or diagnostic mode of processing.
- uncompression program 150 calls the compiled programming code for each row in the relational database table that needs to be uncompressed, row by row. In this manner, as explained above, the compressed data in the relational database table becomes decompressed as needed.
- uncompression program 150 either executes the i-code method or the control block method discussed above in the Background Information section.
- the package installed on user's machine 100 includes both the control block for the relational database table as well as the i-code list for the relational database table as discussed above in connection with steps 303 , 306 and 307 in method 300 .
- method 400 may include other and/or additional steps that, for clarity, are not depicted. It is further noted that method 400 may be executed in a different order presented and that the order presented in the discussion of FIG. 4 is illustrative. It is further noted that certain steps in method 400 may be executed in a substantially simultaneous manner.
Abstract
A method, computer program product and system for minimizing system resources used to decompress read-only compressed analytic data in a relational database table. An i-code list associated with a relational database table is converted into a programming language. The programming language is compiled in object code and stored in a module in the user's system. The object code is called with a pointer designating the particular row in the database containing the compressed data to be decompressed. The compressed data designated by the pointer is decompressed upon execution of the object code. By having the source code for decompressing the compressed data stored as object code in the user's system, the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly.
Description
- This application is related to the following commonly owned copending U.S. patent application:
- Provisional Application Ser. No. 60/668,322, “Method for Creating and Executing Compiled Access Methods for Relational Data Tables and Indexes that Achieves High Performance Access Against Compressed Data and Indexes,” filed Apr. 4, 2005, and claims the benefit of its earlier filing date under 35 U.S.C. §119(e).
- The present invention relates to the field of data compression and decompression for databases, and more particularly to minimizing system resources used to decompress read-only compressed analytic data in a relational database table.
- A database may refer to a collection of related records that is created and managed by what is commonly referred to as a database management system. One type of database is a “relational database.” A relational database may refer to a database that maintains a set of separate, related files or tables, but combines data elements from the tables for queries and reports when required.
- The present invention is directed to a relational database that stores a particular type of data, referred to herein as “analytic data.” Analytic data may refer to data that is analyzed. For example, stock transaction data may be analyzed for trends such as the age group of the individuals engaged in stock transactions. In another example, insurance data may be analyzed to determine whether it is profitable to maintain particular individuals as customers. In another example, data may be analyzed for fraud.
- Often the analytic data stored in a relational database is “compressed” in order to maximize the amount of data stored in a given amount of disk space. Data compression may refer to the process of encoding information using fewer bits than an unencoded representation (original format of the data) would use through use of specific encoding schemes. For example, an article could be encoded with fewer bits if we accept the convention that the word “compression” be encoded as “comp.” Once the analytic data is compressed, the compressed analytic data may be “read-only.” Read-only may refer to data that will not change after it is compressed. It is noted that when “compressed data” is used herein that “compressed data” refers to “compressed analytic data.”
- When a user desires to access the compressed data in the relational database, the compressed data needs to be “decompressed” in order to reverse the effects of data compression. Decompression may refer to the act of reversing the effects of data compression which restores the data to its original form prior to being compressed. In this manner, the user is able to retrieve the requested data in its original form.
- The present invention is directed to a decompression approach that does not decompress the entire rows of compressed data in a relational database table at a single time. Instead, the present invention is directed to a decompression approach that selectively decompresses column data in relational data tables, such as decompressing the compressed data row by row and then column by column within each row as each row is needed by the relational query processor.
- One such method (“commonly referred to as the “control block method”) used in such a decompression approach involves a decompression program reading information from a data structure, commonly referred to as a “control block,” associated with a particular table of the relational database. The control block may store algorithms and parameters used to identify the particular subroutines to call to decompress the data in the table. The decompression program may read column by column within a row. After reading a column, the decompression program may read the information in the control block to call the appropriate subroutine to decompress the data for that column. The same process is repeated for the other columns in the row. The control block method uses a small amount of code to decompress the compressed data. However, a drawback to using the control block method is an excessive number of computer cycles being used to decompress the compressed data resulting in poor performance for query programs that access large amounts of data.
- Another method (“i-code method”) for decompressing compressed data used in the decompression approach discussed above is to create a string of commands, stored in a list (“i-code list”), that perform the same functionality as the parameters in the control block. These string of commands are created for a particular table of the relational database which are used by the decompression program to uncompress the data for each row of the table, row by row and column by column within the row. The string of commands may be referred to herein as “i-code” or “p-code,” which are pseudo-code, i.e., not machine executable code. The i-code may be built by an “i-code builder” which is executed by an “i-code interpreter.” The i-code interpreter interprets each of the commands. That is, the i-code interpreter interprets each command, one at a time, and then executes the code in-line thereby avoiding the subroutine calls. In comparison to the control block method, many machine cycles are eliminated to uncompress data. It does, however, require more programming effort as an i-code builder and an i-code interpreter have to be built. Further, while the i-code method does reduce the number of machine cycles used to decompress compressed data, there is still improvement to be made. By further reducing the number of machine cycles used to decompress compressed data, query programs will be able to access large amounts of data more quickly.
- Therefore, there is a need in the art for further reducing the system resources (e.g., machine cycles) used to decompress read-only analytic data in a relational database table.
- The problems outlined above may at least in part be solved in some embodiments by converting the i-code list associated with a relational database table into a programming language and then compiling the programming language into object code. The object code may then be stored in the user's system and executed to decompress the compressed rows of data stored in the relational database table. By having the source code for decompressing the compressed data in the relational database table stored as object code in the user's system, the interpretation step (as used in the i-code method) is avoided thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly.
- In one embodiment of the present invention, a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of generating an i-code list from a control block, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores parameters used to decompress compressed data in the relational database table. The method may further comprise converting the i-code list associated with the relational database table into a programming language. The method may further comprise compiling the programming language into object code. The method may further comprise storing the object code in a module stored in an executable library in a user's system enabling the object code to be reused for all subsequent query accesses.
- In another embodiment of the present invention, a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of compiling a programming code for the relational database table on a load machine if there is a compiler installed on the load machine that is compatible with a compiler installed on a user's machine, where an i-code list associated with the relational database table is converted into the programming code. The method may further comprise compiling the programming code for the relational database table on the user's machine if there is not a compiler installed on the load machine that is compatible with the compiler installed on the user's machine and if the compiler installed on the user's machine is compatible with the programming code. The method may further comprise installing on the user's machine a first package, where the first package comprises compressed data for the relational database table. The first package may further comprise a control block for the relational database table, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores algorithms and parameters used to decompress compressed data in the relational database table. The first package may further comprise the i-code list associated with the relational database table; the programming code; and the compiled programming code.
- In another embodiment of the present invention, a method for minimizing system resources used to decompress read-only compressed analytic data in a relational database table may comprise the step of executing an i-code interpreter to execute an i-code list associated with the relational database table, where the i-code list is generated from a control block, where the control block stores information regarding compression algorithms used to compress data in the relational database table, where the control block further stores parameters used to decompress compressed data in the relational database table, where the i-code interpreter is executed to execute the i-code list if there is not a compiled programming code installed on a user's machine, where the compiled programming code is converted from the i-code list. The method may further comprise calling an operating system to load the compiled programming code if the compiled programming code is installed on the user's machine.
- The foregoing has outlined rather generally the features and technical advantages of one or more embodiments of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which may form the subject of the claims of the invention.
- A better understanding of the present invention can be obtained when the following detailed description is considered in conjunction with the following drawings, in which:
-
FIG. 1 is a hardware configuration of a computer system in accordance with an embodiment of the present invention; -
FIG. 2 is a flowchart of a method for decompressing read-only analytic data in a relational database table using the compiled method in accordance with an embodiment of the present invention; -
FIG. 3 is a flowchart of a method for installing a package on a user's machine which includes the necessary resources to decompress the compressed data in a relational database table in accordance with an embodiment of the present invention; and -
FIG. 4 is a flowchart of a method for performing the uncompression of the compressed data in a relational database table in accordance with an embodiment of the present invention. - The present invention comprises a method, computer program product and system for minimizing system resources used to decompress read-only compressed analytic data in a relational database table. In one embodiment of the present invention, an i-code list associated with a relational database table is converted into a programming language. During an install procedure, the programming language is compiled into object code and stored in a module in the user's system. The object code may be called by all subsequent query processing with a pointer designating the particular row in the database containing the compressed data to be decompressed. The compressed data designated by the pointer may then be decompressed upon execution of the object code. By having the source code for decompressing the compressed data in the relational database table stored as object code in the user's system, the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly.
- In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail. For the most part, details considering timing considerations and the like have been omitted inasmuch as such details are not necessary to obtain a complete understanding of the present invention and are within the skills of persons of ordinary skill in the relevant art.
-
FIG. 1 illustrates a typical hardware configuration ofcomputer system 100 which is representative of a hardware environment for practicing the present invention. In particular,computer system 100 may represent a computer system, referred to herein as the “user's machine,” or may represent a computer system, referred to herein as the “load machine.” “Load machine” may refer to a computer system that loads or installs software onto “user's machine.” - Referring to
FIG. 1 ,computer system 100 may have aprocessor 110 coupled to various other components bysystem bus 112. Anoperating system 140 may run onprocessor 110 and provide control and coordinate the functions of the various components ofFIG. 1 . Anapplication 150 in accordance with the principles of the present invention may run in conjunction withoperating system 140 and provide calls tooperating system 140 where the calls implement the various functions or services to be performed byapplication 150.Application 150 may include, for example, an application for minimizing system resources used to decompress read-only compressed analytic data in a relational database table as described below in association withFIGS. 2-4 . In particular,application 150 of either user'smachine 100 orload machine 100 may include software to perform the “compiled method” as discussed below in connection with steps 201-204 ofFIG. 2 . Further,application 150 of user'smachine 100 may include software (“uncompression software”) configured to perform steps 205-206 ofFIG. 2 .Further application 150 of user'smachine 100 may include the uncompression software configured to perform the uncompression of the compressed data in a relational database table as discussed further below in connection withFIG. 4 . Further,application 150 of user'smachine 100 may include software for performing the “package install process” as discussed further below in connection withFIG. 3 . - Referring to
FIG. 1 , Read-Only Memory (ROM) 116 may be coupled tosystem bus 112 and include a basic input/output system (“BIOS”) that controls certain basic functions ofcomputer system 100. Random access memory (RAM) 114 anddisk adapter 118 may also be coupled tosystem bus 112. It should be noted that software components includingoperating system 140 andapplication 150 may be loaded intoRAM 114 which may be computer system's 100 main memory for execution.Disk adapter 118 may be an integrated drive electronics (“IDE”) adapter that communicates with adisk unit 120, e.g., disk drive. It is noted that the software mentioned above may reside in eitherdisk unit 120 or inapplication 150. - Referring to
FIG. 1 ,computer system 100 may further comprise acommunications adapter 134 coupled tobus 112.Communications adapter 134 may interconnectbus 112 with an outside network, e.g., Local Area Network (LAN), Wide Area Network (WAN), enablingcomputer system 100 to communicate with other such systems. I/O devices may also be connected tosystem bus 112 via auser interface adapter 122 and adisplay adapter 136.Keyboard 124,mouse 126 andspeaker 130 may all be interconnected tobus 112 throughuser interface adapter 122. Data may be inputted tocomputer system 100 through any of these devices. Adisplay monitor 138 may be connected tosystem bus 112 bydisplay adapter 136. In this manner, a user is capable of inputting tocomputer system 100 throughkeyboard 124 ormouse 126 and receiving output fromcomputer system 100 via display 1238 orspeaker 130. - Implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product. According to the computer system implementations, sets of instructions for executing the method or methods may be resident in the
random access memory 114 of one or more computer systems configured generally as described above. Until required bycomputer system 100, the set of instructions may be stored as a computer program product in another computer memory, for example, indisk unit 120. Furthermore, the computer program product may also be stored at another computer and transmitted when desired to the user's workstation by a network or by an external network such as the Internet. One skilled in the art would appreciate that the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical or some other physical change. - As stated in the Background Information section, methods used in selectively decompressing column data in relational data tables, such as decompressing the compressed data row by row and then column by column within each row, use an excessive number of computer cycles to decompress the compressed data resulting in poor performance for query programs that access large amounts of data. By reducing the number of machine cycles used to decompress compressed data, query programs will be able to access large amounts of data more quickly. Therefore, there is a need in the art for further reducing the system resources (e.g., machine cycles) used to decompress read-only analytic data in a relational database table.
- Decompressing read-only analytic data in a relational database table using minimal system resource may be accomplished using the methods/processes discussed below in association with
FIGS. 2-4 .FIG. 2 is a flowchart of a method for decompressing read-only analytic data in a relational database table using a method referred to herein as the “compiled method.”FIG. 3 is a flowchart of a method for installing a package on user'smachine 100 which includes the necessary resources to decompress the compressed data in a relational database table.FIG. 4 is a flowchart of a method for performing the uncompression of the compressed data in a relational database table. -
FIG. 2 is a flowchart of amethod 200, referred to herein as the “compiled method,” for decompressing read-only analytic data in a relational database table in accordance with an embodiment of the present invention. - Referring to
FIG. 2 , in connection withFIG. 1 , instep 201,application 150 of either user'smachine 100 orload machine 100 generates an i-code list from a control block. A control block may refer to a data structure that stores information regarding the compression algorithms used to compress the analytic data in the relational database table as well as includes parameters used to decompress the compressed data in the relational database table. Additional details regarding the control block are disclosed in U.S. patent application Ser. No. ______ filed on ______, entitled “Selecting Various Algorithms to Compress Columns of Analytic Data in a Read-Only Relational Database in a Manner that Allows Decompression of the Compressed Data Using Minimal System Resources,” Attorney Docket No. 45334-P002US, which is hereby incorporated herein by reference in its entirety. The i-code list may refer to a list of commands or a string of commands (referred to herein as “i-code”) that are used by a decompression or uncompression program to uncompress the data for each row of the table, row by row and column by column within the row. In one embodiment, the control block and the generated i-code list may reside indisk unit 120. In another embodiment, the control block and the generated i-code list may reside in a library (stored in RAM 114) insystem 100. - In
step 202, application 150 (running on user'smachine 100 in one embodiment or running onload machine 100 in another embodiment) converts the i-code list associated with a relational database table into a programming language, e.g., C programming language. Instep 203,application 150 compiles the programming language into object code, i.e., machine code. - In
step 204,application 150 stores the object code in a module, which is stored in a executable library in user'ssystem 100, thereby enabling the object code to be reused for all subsequent query accesses. In one embodiment, the module resides inRAM 114. - In one embodiment,
application 150 resides in user'smachine 100 and executes all of the procedures ofmethod 200. In another embodiment,application 150 resides in a separate machine, referred to herein as the “load machine” 100, and executes only the i-code generation, c-code generation and c-code compile steps (steps 201-204). - In
step 205,uncompression program 150 of user'smachine 100 calls the module which stores the object code with a pointer to the compressed row of data. That is,uncompression program 150 of user'smachine 100 calls the module that stores the object code, where the call includes a pointer to the compressed row of data to be decompressed. - In
step 206,uncompression program 150 of user'smachine 100 decompresses the compressed row of data (compressed row of data that was identified by the pointer) using the stored object code. - In this manner,
uncompression program 150 simply issues calls to the module asuncompression program 150 decompresses each row in the relational database table, column by column, without interpreting commands as in the i-code method. By having the source code for decompressing the compressed data in the relational database table stored as object code in the user's machine, the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly. - It is noted that
method 200 may include other and/or additional steps that, for clarity, are not depicted. It is further noted thatmethod 200 may be executed in a different order presented and that the order presented in the discussion ofFIG. 2 is illustrative. It is further noted that certain steps inmethod 200 may be executed in a substantially simultaneous manner. - The amount of system resources used in decompressing read-only analytic data in a relational database table may also be reduced by installing a package on user's
machine 100, where the package includes the necessary resources to decompress the compressed data in the relational database table, as discussed below in association withFIG. 3 . The package is a data object generated onload machine 100 that is move to user'smachine 100 for installation. - FIG. 3—Method for Installing a Package on a User's Machine which Includes the Necessary Resources to Decompress the Compressed Data in a Relational Database Table
-
FIG. 3 is a flowchart of amethod 300 for installing a package on a user's machine 100 (FIG. 1 ), which includes the necessary resources to decompress the compressed data in a relational database table, in accordance with an embodiment of the present invention. - Referring to
FIG. 3 , in connection withFIG. 1 , instep 301,application 150 of user'ssystem 100 determines if there is a compiler (e.g., C compiler) installed on load machine 100 (e.g., computer system operating with Unix™ operating system) that is compatible with the compiler (e.g., C compiler) installed on user's machine 100 (e.g., computer system operating with Windows™ operating system).Load machine 100 may refer to a computer system that loads or installs software onto user'smachine 100. User'smachine 100 may refer to a computer system where an uncompression program operating on user'smachine 100 decompresses the compressed data from the relational database table. - If there is a compiler in
load machine 100 that is compatible with the compiler in user'smachine 100, then, instep 302,application 150 compiles the programming code for the relational database table onload machine 100. That is, if there is a compiler inload machine 100 that is compatible with the compiler in user'smachine 100, thenapplication 150 compiles the programming code which is converted from an i-code list as discussed above instep 202 ofFIG. 2 . The programming code is compiled onload machine 100 using the compiler that is compatible with the compiler on user'smachine 100. - In
step 303,application 150 moves the install package to user'smachine 100. - In
step 304,application 150 installs the package in files on user'smachine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; i-code list for the relational database table; programming code for the relational database table; and the compiled programming code for the relational database table. - In
step 305,application 150 installs the compiled code in an executable program module (e.g., dynamic load library such as in Windows™ operating system). By installing such a package on user'smachine 100,uncompression program 150 simply issues calls to the compiled programming code (as discussed above instep 205 of method 200) asuncompression program 150 decompresses each row in the relational database table, column by column, and then proceeds to the next row. By having the source code for decompressing the compressed data in the relational database table stored as object code in user'smachine 100, the interpretation step (as used in the i-code method) is avoiding thereby reducing the number of machine cycles used to decompress the compressed data. As a result, query programs will be able to access large amounts of data more quickly. - If, however, there is not a compiler in
load machine 100 that is compatible with the compiler in user'smachine 100, then, instep 306,application 150 moves the install package to user'smachine 100. - In
step 307,application 150 determines if there is a compiler installed on user'smachine 100 that is compatible with the programming code. For example, if the programming code is written in C, then,application 150 may determine if there is a C compiler installed on user'smachine 100. - If there is a compiler in user's
machine 100 that is compatible with the programming code, then, instep 308,application 150 compiles the programming code for the relational database table on user'smachine 100. That is, if there is a compiler in user'smachine 100 that is compatible with the programming code, thenapplication 150 compiles the programming code which is converted from an i-code list as discussed above instep 202 ofFIG. 2 . - In
step 309,application 150 installs the package in files on user'smachine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; i-code list for the relational database table; programming code for the relational database table; and the compiled programming code for the relational database table. - In
step 310,application 150 installs the compiled code in an executable program module (e.g., dynamic load library such as in Windows™ operating system). By installing such a package on user'smachine 100,uncompression program 150 simply issues calls to the compiled programming code (as discussed above instep 205 of method 200) asuncompression program 150 decompresses each row in the relational database table, column by column, and then proceeds to the next row. By having the source code for decompressing the compressed data in the relational database table stored as object code in user'smachine 100, the number of machine cycles used to decompress the compressed data is further reduced in relation to the methods discussed in the Background Information section. As a result, query programs will be able to access large amounts of data more quickly. - If, however, there is not a compiler in user's
machine 100 that is compatible with the programming code, then, instep 311,application 150 installs a package in files (e.g., stored on disk unit 120) on user'smachine 100 where the package includes the following: compressed data for the relational database table; control block for the relational database table; and the i-code list for the relational database table. In this manner, an i-code interpreter stored on user's machine 100 (such as on disk unit 120) can decompress the compressed data in the relational database table by executing the i-code list (string of commands) as the uncompression program decompresses the compressed data for each row of the relational database table, row by row and column by column within the row. - It is noted that
method 300 may include other and/or additional steps that, for clarity, are not depicted. It is further noted thatmethod 300 may be executed in a different order presented and that the order presented in the discussion ofFIG. 3 is illustrative. It is further noted that certain steps inmethod 300 may be executed in a substantially simultaneous manner. - The uncompression program may perform the decompression of the compressed data in the relational database table in connection with the installed package (discussed above in connection with
FIG. 3 ) as discussed below in connection withFIG. 4 . -
FIG. 4 is a flowchart of amethod 400 for performing the uncompression of the compressed data in a relational database table in accordance with an embodiment of the present invention. - Referring to
FIG. 4 , in conjunction withFIGS. 1-3 , instep 401,uncompression program 150 determines if there exists an installed compiled programming code in user'smachine 100 that is associated with a relational database table. An installed compiled programming code may be installed on user'smachine 100 as indicated insteps method 300. - If there does not exist an installed compiled programming code in user's
machine 100 that is associated with a relational database table, then, instep 402,uncompression program 150 executes the i-code interpreter component to execute the i-code list. As discussed inmethod 300, the package installed on user'smachine 100 may not include compiled programming code but instead include an i-code list as indicated instep 307. The package may not include compiled programming code if there is not a compiler installed on user'smachine 100 that is compatible with the programming code. As a result,uncompression program 150 may execute the i-code list by executing the i-code interpreter which may be part ofuncompression program 150. In one embodiment, the i-code interpreter may reside indisk unit 120. - If, however, there does exist an installed compiled programming code in user's
machine 100 that is associated with a relational database table, then, instep 403,uncompression program 150 determines if there is an override request included in the query request. An override request may refer to a request to not execute the compiled programming code but instead execute either the i-code list or implement the control block method, as discussed above, such as for testing purposes. That is, an override request may refer to a request to either execute the i-code list or implement the control block method, as discussed above, as a fallback or diagnostic mode of processing. - If there is not an override request, then, in
step 404,uncompression program 150 calls the compiled programming code for each row in the relational database table that needs to be uncompressed, row by row. In this manner, as explained above, the compressed data in the relational database table becomes decompressed as needed. - If, however, there is an override request, then, in
step 405,uncompression program 150 either executes the i-code method or the control block method discussed above in the Background Information section. The package installed on user'smachine 100 includes both the control block for the relational database table as well as the i-code list for the relational database table as discussed above in connection withsteps method 300. - It is noted that
method 400 may include other and/or additional steps that, for clarity, are not depicted. It is further noted thatmethod 400 may be executed in a different order presented and that the order presented in the discussion ofFIG. 4 is illustrative. It is further noted that certain steps inmethod 400 may be executed in a substantially simultaneous manner. - Although the method, computer program product and system are described in connection with several embodiments, it is not intended to be limited to the specific forms set forth herein, but on the contrary, it is intended to cover such alternatives, modifications and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims. It is noted that the headings are used only for organizational purposes and not meant to limit the scope of the description or claims.
Claims (7)
1-24. (canceled)
25. A method for minimizing system resources used to decompress read-only compressed analytic data comprising the steps of:
executing an i-code interpreter to execute an i-code list associated with said relational database table, wherein said i-code list is generated from a control block, wherein said control block stores information regarding compression algorithms used to compress data in said relational database table, wherein said control block further stores parameters used to decompress compressed data in said relational database table, wherein said i-code interpreter is executed to execute said i-code list if there is not a compiled programming code installed on a user's machine, wherein said compiled programming code is converted from said i-code list; and
calling said compiled programming code for each row in said relational database table that needs to be uncompressed.
26. The method as recited in claim 25 further comprising the step of:
executing one of said i-code list and said control block if a user of said user's machine requests to execute one of said i-code list and said control block.
27. A computer program product embodied in a computer readable medium for minimizing system resources used to decompress read-only compressed analytic data comprising the programming steps of:
executing an i-code interpreter to execute an i-code list associated with said relational database table, wherein said i-code list is generated from a control block, wherein said control block stores information regarding compression algorithms used to compress data in said relational database table, wherein said control block further stores parameters used to decompress compressed data in said relational database table, wherein said i-code interpreter is executed to execute said i-code list if there is not a compiled programming code installed on a user's machine, wherein said compiled programming code is converted from said i-code list; and
calling said compiled programming code for each row in said relational database table that needs to be uncompressed.
28. The computer program product as recited in claim 27 further comprising the programming step of:
executing one of said i-code list and said control block if a user of said user's machine requests to execute one of said i-code list and said control block.
29. A system, comprising:
a memory unit for minimizing system resources used to decompress read-only compressed analytic data; and
a processor coupled to said memory unit, wherein said processor, responsive to said computer program, comprises:
circuitry for executing an i-code interpreter to execute an i-code list associated with said relational database table, wherein said i-code list is generated from a control block, wherein said control block stores information regarding compression algorithms used to compress data in said relational database table, wherein said control block further stores parameters used to decompress compressed data in said relational database table, wherein said i-code interpreter is executed to execute said i-code list if there is not a compiled programming code installed on said system, wherein said compiled programming code is converted from said i-code list; and
circuitry for calling said compiled programming code for each row in said relational database table that needs to be uncompressed.
30. The system as recited in claim 29 , wherein said processor further comprises:
circuitry for executing one of said i-code list and said control block if a user of said system requests to execute one of said i-code list and said control block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/875,376 US20100332462A1 (en) | 2005-04-04 | 2010-09-03 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66832205P | 2005-04-04 | 2005-04-04 | |
US11/395,003 US7818728B1 (en) | 2005-04-04 | 2006-03-31 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
US12/875,376 US20100332462A1 (en) | 2005-04-04 | 2010-09-03 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/395,003 Division US7818728B1 (en) | 2005-04-04 | 2006-03-31 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100332462A1 true US20100332462A1 (en) | 2010-12-30 |
Family
ID=42941341
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/395,003 Expired - Fee Related US7818728B1 (en) | 2005-04-04 | 2006-03-31 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
US12/875,376 Abandoned US20100332462A1 (en) | 2005-04-04 | 2010-09-03 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
US12/875,367 Abandoned US20100325096A1 (en) | 2005-04-04 | 2010-09-03 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/395,003 Expired - Fee Related US7818728B1 (en) | 2005-04-04 | 2006-03-31 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/875,367 Abandoned US20100325096A1 (en) | 2005-04-04 | 2010-09-03 | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table |
Country Status (1)
Country | Link |
---|---|
US (3) | US7818728B1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626725B2 (en) * | 2008-07-31 | 2014-01-07 | Microsoft Corporation | Efficient large-scale processing of column based data encoded structures |
US9767145B2 (en) | 2014-10-10 | 2017-09-19 | Salesforce.Com, Inc. | Visual data analysis with animated informational morphing replay |
US9449188B2 (en) | 2014-10-10 | 2016-09-20 | Salesforce.Com, Inc. | Integration user for analytical access to read only data stores generated from transactional systems |
US10049141B2 (en) | 2014-10-10 | 2018-08-14 | salesforce.com,inc. | Declarative specification of visualization queries, display formats and bindings |
US9600548B2 (en) * | 2014-10-10 | 2017-03-21 | Salesforce.Com | Row level security integration of analytical data store with cloud architecture |
US10101889B2 (en) | 2014-10-10 | 2018-10-16 | Salesforce.Com, Inc. | Dashboard builder with live data updating without exiting an edit mode |
US10115213B2 (en) | 2015-09-15 | 2018-10-30 | Salesforce, Inc. | Recursive cell-based hierarchy for data visualizations |
US10089368B2 (en) | 2015-09-18 | 2018-10-02 | Salesforce, Inc. | Systems and methods for making visual data representations actionable |
US10713376B2 (en) | 2016-04-14 | 2020-07-14 | Salesforce.Com, Inc. | Fine grain security for analytic data sets |
US10311047B2 (en) | 2016-10-19 | 2019-06-04 | Salesforce.Com, Inc. | Streamlined creation and updating of OLAP analytic databases |
US10642841B2 (en) * | 2016-11-17 | 2020-05-05 | Sap Se | Document store utilizing partial object compression |
US20230067182A1 (en) * | 2019-11-29 | 2023-03-02 | Boe Technology Group Co., Ltd. | Data Processing Device and Method, and Computer Readable Storage Medium |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4905146A (en) * | 1988-05-24 | 1990-02-27 | International Business Machines Corporation | Explicit specification of valid compound document data stream structure and content |
US5546575A (en) * | 1994-05-23 | 1996-08-13 | Basil E. Potter & Associates, Inc. | Encoding method for compressing a tabular database by selecting effective compression routines for each field and structure of partitions of equal sized records |
US5794229A (en) * | 1993-04-16 | 1998-08-11 | Sybase, Inc. | Database system with methodology for storing a database table by vertically partitioning all columns of the table |
US5870036A (en) * | 1995-02-24 | 1999-02-09 | International Business Machines Corporation | Adaptive multiple dictionary data compression |
US20010047394A1 (en) * | 1999-09-10 | 2001-11-29 | Kloba David D. | System, method, and computer program product for executing scripts on mobile devices |
US6341288B1 (en) * | 1998-07-29 | 2002-01-22 | Sybase, Inc. | Database system with methodology for accessing a database from portable devices |
US6460046B1 (en) * | 1999-06-01 | 2002-10-01 | Navigation Technologies Corp. | Method and system for forming, storing and using sets of data values |
US6493728B1 (en) * | 1999-06-22 | 2002-12-10 | Microsoft Corporation | Data compression for records of multidimensional database |
US20030090397A1 (en) * | 2001-11-14 | 2003-05-15 | Rasmussen Brent D. | Data compression/decompression system |
US20030142960A1 (en) * | 2000-12-07 | 2003-07-31 | Teppei Yokota | Reproduction apparatus and reproducing method |
US20040221021A1 (en) * | 2003-04-30 | 2004-11-04 | Domer Jason A. | High performance managed runtime environment application manager equipped to manage natively targeted applications |
US20050192998A1 (en) * | 2004-02-26 | 2005-09-01 | Jens-Peter Dittrich | Automatic reduction of table memory footprint using column cardinality information |
US20060026582A1 (en) * | 2004-07-28 | 2006-02-02 | Jean-Francois Collard | Method and system for optional code scheduling |
US7024414B2 (en) * | 2001-08-06 | 2006-04-04 | Sensage, Inc. | Storage of row-column data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7779020B2 (en) * | 2002-03-01 | 2010-08-17 | International Business Machines Corporation | Small-footprint applicative query interpreter method, system and program product |
US6073129A (en) * | 1997-12-29 | 2000-06-06 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a database management system through a central cache mechanism |
-
2006
- 2006-03-31 US US11/395,003 patent/US7818728B1/en not_active Expired - Fee Related
-
2010
- 2010-09-03 US US12/875,376 patent/US20100332462A1/en not_active Abandoned
- 2010-09-03 US US12/875,367 patent/US20100325096A1/en not_active Abandoned
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4905146A (en) * | 1988-05-24 | 1990-02-27 | International Business Machines Corporation | Explicit specification of valid compound document data stream structure and content |
US5794229A (en) * | 1993-04-16 | 1998-08-11 | Sybase, Inc. | Database system with methodology for storing a database table by vertically partitioning all columns of the table |
US5546575A (en) * | 1994-05-23 | 1996-08-13 | Basil E. Potter & Associates, Inc. | Encoding method for compressing a tabular database by selecting effective compression routines for each field and structure of partitions of equal sized records |
US5870036A (en) * | 1995-02-24 | 1999-02-09 | International Business Machines Corporation | Adaptive multiple dictionary data compression |
US6341288B1 (en) * | 1998-07-29 | 2002-01-22 | Sybase, Inc. | Database system with methodology for accessing a database from portable devices |
US6460046B1 (en) * | 1999-06-01 | 2002-10-01 | Navigation Technologies Corp. | Method and system for forming, storing and using sets of data values |
US6493728B1 (en) * | 1999-06-22 | 2002-12-10 | Microsoft Corporation | Data compression for records of multidimensional database |
US20010047394A1 (en) * | 1999-09-10 | 2001-11-29 | Kloba David D. | System, method, and computer program product for executing scripts on mobile devices |
US20030142960A1 (en) * | 2000-12-07 | 2003-07-31 | Teppei Yokota | Reproduction apparatus and reproducing method |
US7024414B2 (en) * | 2001-08-06 | 2006-04-04 | Sensage, Inc. | Storage of row-column data |
US20030090397A1 (en) * | 2001-11-14 | 2003-05-15 | Rasmussen Brent D. | Data compression/decompression system |
US20040221021A1 (en) * | 2003-04-30 | 2004-11-04 | Domer Jason A. | High performance managed runtime environment application manager equipped to manage natively targeted applications |
US20050192998A1 (en) * | 2004-02-26 | 2005-09-01 | Jens-Peter Dittrich | Automatic reduction of table memory footprint using column cardinality information |
US20060026582A1 (en) * | 2004-07-28 | 2006-02-02 | Jean-Francois Collard | Method and system for optional code scheduling |
Also Published As
Publication number | Publication date |
---|---|
US20100325096A1 (en) | 2010-12-23 |
US7818728B1 (en) | 2010-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7818728B1 (en) | Maximizing system resources used to decompress read-only compressed analytic data in a relational database table | |
US8392382B2 (en) | On-line transaction processing (OLTP) compression and re-compression of database data | |
US7324985B2 (en) | Methods and systems for database statement execution plan optimization | |
US6219660B1 (en) | Access path selection for SQL with variables in a RDBMS | |
US7080062B1 (en) | Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries | |
US8566810B2 (en) | Using database knowledge to optimize a computer program | |
JP2768433B2 (en) | Physical database design system | |
US6978261B2 (en) | Using database management system's infrastructure to invoke a stored procedure for creating and preparing a database application | |
US20060041599A1 (en) | Database management system and method for query process for the same | |
US6748585B2 (en) | Computer programming language pronouns | |
JP2002538546A (en) | ABAP Code Converter Specifications | |
US20060248521A1 (en) | Application conversion of source data | |
US20030172076A1 (en) | Ide integration with JDBC | |
US6192358B1 (en) | Multiple-stage evaluation of user-defined predicates | |
US7007037B2 (en) | Opaque types | |
US20070220478A1 (en) | Connecting alternative development environment to interpretive runtime engine | |
US6286015B1 (en) | Opaque types | |
US8041726B2 (en) | System for executing a query having multiple distinct key columns | |
JPH11134368A (en) | Language management program interface | |
CN111984728A (en) | Heterogeneous database data synchronization method, device, medium and electronic equipment | |
US5995960A (en) | Method and system for improving efficiency of programs utilizing databases by exeuting scenarios based on recalled processed information | |
US7974968B2 (en) | Direct call threaded code | |
KR20170080789A (en) | A data processing system using scripts by using commercial interpreter | |
US7155432B2 (en) | Method and system decoding user defined functions | |
US7228308B2 (en) | Method and system for direct linkage of a relational database table for data preparation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |