WO2002015054A2 - Database systems, methods and computer program products including reconfigurable dynamic time window management - Google Patents

Database systems, methods and computer program products including reconfigurable dynamic time window management Download PDF

Info

Publication number
WO2002015054A2
WO2002015054A2 PCT/US2001/041487 US0141487W WO0215054A2 WO 2002015054 A2 WO2002015054 A2 WO 2002015054A2 US 0141487 W US0141487 W US 0141487W WO 0215054 A2 WO0215054 A2 WO 0215054A2
Authority
WO
WIPO (PCT)
Prior art keywords
time intervals
partitions
expiration
management system
database
Prior art date
Application number
PCT/US2001/041487
Other languages
French (fr)
Other versions
WO2002015054A3 (en
Inventor
Lin Yu
Ashraf Elswify
Henry Scanzano
Guoqiang Liu
Original Assignee
Trendium, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Trendium, Inc. filed Critical Trendium, Inc.
Priority to AU2001285385A priority Critical patent/AU2001285385A1/en
Publication of WO2002015054A2 publication Critical patent/WO2002015054A2/en
Publication of WO2002015054A3 publication Critical patent/WO2002015054A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Definitions

  • This invention relates to data processing systems, methods and computer program products, and more particularly to database systems, methods and computer program products.
  • Partitioning is described in the above-cited Oracle8i Concepts publication at Chapter 11, entitled Partitioned Tables and Indexes. Partitioning also is described in the above-cited Or acle8i Administrator's Guide at Chapter 13, entitled Managing Partitioned Tables and Indexes. As described therein, partitioning can address the problem of supporting very large tables and indexes by allowing the tables to be decomposed into smaller and more manageable pieces called partitions. Partitioned tables or indexes can be divided into a number of pieces, called subpartitions, which have the same logical attributes. For example, all partitions (or subpartitions) in a table share the same column and constraint definitions, and all partitions (or subpartitions) in an index share the same index option. Each partition (or subpartition) is stored in a separate segment, and can have different physical attributes. The design and implementation of database partitioning is well known to those having skill in the art and need not be described in further detail herein.
  • the reconfigurable dynamic time window manager also is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions, to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals, and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
  • the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
  • Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, a transmission media such as those supporting the Internet or an intranet and/or magnetic storage devices.
  • Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as JAVA ® , Smalltalk or C++.
  • the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as "C", or in various other programming languages.
  • Software embodiments of the present invention do not depend on implementation with a particular programming language. Portions of the program code may execute entirely on one or more data processing systems.
  • the time intervals are a day
  • the second plurality is seven
  • the dynamic time window manager 150 automatically controls the database management system to create the first plurality of partitions immediately prior to midnight, for storing therein temporal data for a next day, and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
  • FLOWJD in the partition criteria.
  • a value also may be prefixed to FLOW D that can be either a column or a prefix value to FLOWJD as part of the key. This can make FLOWJDATA records more evenly distributed within a B-tree (as opposed to sequential distribution) and can result in better space utilization and consequently better overall performance.
  • FIG. 5 is a block diagram of a time window tw( 7, 4). As shown in Figure 5, this time window is dynamic in the sense that subpartition management can be performed while the database is operational. Also, changes in n and/or m can be handled. For example, if the time window is to include fourteen days data (total 56 subpartitions) instead of seven days data (total 28 subpartitions), tw may be reconfigured on the fly as: tw( 7, 4) -> tw(14, 4), while the database remains operational.
  • Reconfigurable dynamic time window management systems, methods and/or computer program products according to embodiments of the invention can provide improved performance, manageability, availability, configurability, flexibility, scaleability, and/or maintainability. Some of these potential benefits may be related since the reasons for them may be related.
  • subpartition management operations e.g., archiving data, adding new partitions and dropping old subpartitions
  • data thus always can be available as long as the system is available.
  • time window reconfiguration operations the database can remain operational, which may be an important requirement, for example, for Internet service providers which desire to provide services 24 hours a day, 365 days a year.
  • Non-B-tree based database systems also may be used. In the latter case, the data manageability and availability, system configurability, flexibility, scaleability and maintainability may be retained.

Abstract

The database systems, method and computer program product include a database that stores temporal data, a database management system that partitions the database of temporal data into a first plurality of partitions for each of a second plurality of time intervals, and a dynamic time window manager for the database management system. The dynamic time window manager for the database management system is configured to automatically control the database management system, to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval. The dynamic time window manager also is configured to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals. A reconfigurable time window manager also may be provided that is responsive to input of a desired number of partitions and/or a desired number of time intervals, to automatically control the database management system to maintain the desired number of partitions and/or the desired number of time intervals as the temporal data is accumulated. The reconfigurable dynamic time window manager may be configured to automatically control the database management system, to create at least one partition prior to expiration of one of the time intervals, for storing therein temporal data for an immediately succeeding time interval.

Description

DATABASE SYSTEMS, METHODS AND COMPUTER PROGRAM PRODUCTS INCLUDING RECONFIGURABLE DYNAMIC TIME WINDOW
MANAGEMENT Field of the Invention
This invention relates to data processing systems, methods and computer program products, and more particularly to database systems, methods and computer program products.
Background of the Invention
Database systems, methods and computer program products are widely used for information management. More specifically, database systems, methods and computer program products may be used to reliably manage a large amount of data in a multi-user environment, so that many users can concurrently access the same data.
Database systems, methods and computer program products generally include a database that actually stores the data, a database management system and one or more applications that interface with the database management system to provide, for example, user interfaces and other applications. One widely available database system is the Oracle8i database system that is marketed by Oracle Corporation and that is described, for example, in publications entitled Oracleδi Concepts, Release 8.1.5, February 1999, Part No. A67781-01, 1999, and Oracle8i Administrator's Guide, Release 8.1.5, February 1999, Part A67772-01,
1999. The disclosures of both of these publications are hereby incorporated herein by reference in their entirety. The design and operation of database systems, methods and computer program products are well known to those having skill in the art, and need not be described further herein.
One application of very large database systems is to store and manage temporal data, i.e., data that is collected over time. Temporal data also may be referred to as "historical" data that describes the business transactions of an enterprise over intervals of time. For example, in Internet-related applications, a mechanism, referred to as "flow", may be used to establish connection-oriented end-to-end Internet service that behaves as if the two ends are physically connected. As an example, in ATM technology, flow can be in the form of a Virtual Circuit (VC). Flow also can be in the form of Private Virtual Path (PVP). Flow data may be collected for each time interval, the duration of which may be set based upon service provider and/or customer desires. Typical flow durations are fifteen minutes, 10 minutes or five minutes; however, other durations may be used. Fifteen-minute time intervals will be used herein for calculation purposes. Each flow record may have a time stamp marking its collection time interval. Thus, the flow data is temporal in nature. The importance and relevance of a flow record may diminish as it ages, and it may be moved from on-line storage to off-line storage (i.e., archived), and eventually can be permanently purged from the system according to a predefined timetable. A large database may be used to store the flow data. For example, up to 125,000 flows may be handled at any given time. As such, the database may need to be able to insert up to 125,000 flow records for each 15-minute time interval. Since there are 96 such intervals within a 24-hour period, there may be up to 12,000,000 flow records per day. Seven days collection of data may be kept on-line for up to 84,000,000 flow records. Moreover, it may be desired to handle up to 500,000 or more virtual circuits at any given time, so that the database may become even larger. This may cause the performance of the database to degrade.
In order to reduce the database size for better performance, the database may be divided into logical tables. For example, seven logical tables may be provided, one for the data for each of seven days of the week. Unfortunately, each of the seven tables still may be too large, and it may be difficult to manage data in seven separate logical tables. Moreover, it may be difficult to implement a B-tree efficiently in a large number of logical tables. The B-tree is described, for example, in a publication by Comer entitled 77ze Ubiquitous B-Tree, Computing Surveys, Vol. 11, No. 2, June 1979, pp. 121-137. As described therein, the B-tree has become a de facto standard for file organization. When using a B-tree, and a stream of records to be inserted has keys in ascending order, the insertion point in the B-tree generally is at the very right side. This may require splitting the internal nodes of the B-tree more frequently than necessary, which may consume excessive processing time and space. Excessive page fragmentation and poor space utilization also may be caused, which may make the database size much larger than necessary.
Another solution for managing very large database systems is partitioning of database tables. As a recent example, British Telecom has used the Oracle database technology to create an integrated customer information database. The overall size of the database is 3.5 terabytes, but 1.4 terabytes or 20 billion rows of customer transaction data resides in just one table. Oracle's partitioning technology is used to help manage each week's data in this huge repository. See http://success.oracle.com/success demo- wwwprd/plsq/oaw_display.show?i customer id=598&i story id=l 127.
Partitioning is described in the above-cited Oracle8i Concepts publication at Chapter 11, entitled Partitioned Tables and Indexes. Partitioning also is described in the above-cited Or acle8i Administrator's Guide at Chapter 13, entitled Managing Partitioned Tables and Indexes. As described therein, partitioning can address the problem of supporting very large tables and indexes by allowing the tables to be decomposed into smaller and more manageable pieces called partitions. Partitioned tables or indexes can be divided into a number of pieces, called subpartitions, which have the same logical attributes. For example, all partitions (or subpartitions) in a table share the same column and constraint definitions, and all partitions (or subpartitions) in an index share the same index option. Each partition (or subpartition) is stored in a separate segment, and can have different physical attributes. The design and implementation of database partitioning is well known to those having skill in the art and need not be described in further detail herein.
A potential advantage of partitioning is that changes to implement partitioning in a database can be done at a schema level, without requiring a rewrite of the application code. Thus, partitions of tables can be made transparent to applications. For normal query processing, the database management system can insulate the application from the fact that a table is partitioned. Querying applications need only be aware that a table is a logical set of organized data with the same data types and semantics, and need not be concerned with the characteristics of the physical representation of partitioned tables in the database management system.
Chapter 11 of the above-cited Oracle8i Concepts publication, entitled
Partitioned Tables and Indexes, describes how partitioning may be used in Very
Large DataBases (VLDBs) that contain hundreds of gigabytes or even a few terabytes of data. As described therein, historical databases are the most common type of decision support systems that use very large databases. Historical tables describe the business transactions of an enterprise over a recent time interval such as the last 24 months. As described at Page 11-6, the time interval reflected in a historical table is a rolling window, so periodically the DataBase Administrator (DBA) deletes the set of rows describing the oldest transactions and allocates space for the set of rows describing new transactions. For example, at the close of business on April 30, 1997, the DBA deletes the rows (and all supporting index entries) that describe May 1995 transactions, and allocates space for May 1997 transactions. As also noted at Page 11-6, the vast majority of data in a historical very large database is stored in few very large historical tables that present special problems due to their size and the requirement to smoothly roll out data and roll in new data.
The Oracle8i Administrator's Guide, Chapter 13, entitled Managing Partitioned Tables and Indexes, cited above, describes, at pages 13-20 and 13-21, how a database administrator can move a time window in a historical table. A specific example is provided along with Structured Query Language (SQL) code that allows the database administrator to perform the following manual operations on October 31, 1994:
1. Back up the data for the oldest time interval; 2. Drop the partition for the oldest time interval;
3. Add a partition to the most recent time interval; and
4. Drop and re-create the global indexes.
However, these operations appear to rely on the database administrator performing a given sequence of manual operations at specific time periods.
Summary of the Invention Embodiments of the present invention provide database systems, methods and/or computer program products that include a database that stores temporal data, a database management system that partitions the database of temporal data into a first plurality of partitions for each ofa second plurality of time intervals, and a dynamic time window manager for the database management system. The dynamic time window manager for the database management system is configured to automatically control the database management system, to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval. The dynamic time window manager also is configured to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals. Accordingly, a dynamic time window may be automatically managed, without the need for database administrator intervention.
According to other embodiments, the time intervals are a day, the second plurality is seven and the dynamic time window manager automatically controls the database management system to create the first plurality of partitions immediately prior to midnight, for storing therein temporal data for a next day, and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight. According to other embodiments, the dynamic time window manager also automatically controls the database management system to access the first plurality of partitions for each of the second plurality of time intervals as a single logical table. According to other embodiments of the invention, a reconfigurable time window manager is provided that is responsive to input of a desired number of partitions and/or a desired number of time intervals, to automatically control the database management system to maintain the desired number of partitions and/or the desired number of time intervals as the temporal data is accumulated. The reconfigurable dynamic time window manager may be configured to automatically control the database management system to create at least one partition prior to expiration of one of the time intervals, for storing therein temporal data for an immediately succeeding time interval. The reconfigurable dynamic time window manager also may be configured to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals, so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
According to yet other embodiments, the reconfigurable dynamic time window manager is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals, to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals, until the first plurality of partitions times one plus the third plurality of time intervals is present, and to delete the first plurality of partitions that correspond to an oldest plurality of the second plurality of time intervals thereafter. The reconfigurable dynamic time window manager also is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals, to automatically control the database system to create the first plurality of partitions prior to expiration of one of the time intervals, and to delete the second plurality minus the fourth plurality of partitions that correspond to the oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
According to still other embodiments, the reconfigurable dynamic time window manager also is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions, to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals, and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals. The reconfigurable dynamic time window manager also is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions, to automatically control the database management system, to create the sixth plurality of partitions prior to expiration of one of the time intervals, and to delete the first plurality of partitions that correspond to an oldest of the second plurality of time intervals after expiration of the one of the time intervals.
It will be understood that embodiments of the present invention may be provided as methods, systems and/or computer program products that are applications or modules that execute on and interface with a database management system. Alternatively, systems, methods and/or computer program products according to embodiments of the present invention may be a module that is integrated into a database management system. Systems, methods and/or computer program products according to embodiments of the present invention may execute in a main frame environment, and/or in a client/server environment and/or in distributed database environment. Finally, although systems, methods and/or computer program products according to embodiments of the invention are described herein primarily with regard to Oracle database systems, they may be used with any other database system that stores temporal data, including Sybase, marketed by Sybase, Inc.; Informix, marketed by Informix Software, Inc.; Ingres marketed by Computer Associates International, Inc. and DB2, marketed by IBM Corporation. Improved performance, manageability, availability, configurability, flexibility, scaleability and/or maintainability thereby may be provided. Brief Description of the Drawings
Figures 1A and IB are block diagrams of database systems, methods and computer program products according to embodiments of the present invention. Figure 2 is a flowchart of operations performed by embodiments of reconfigurable dynamic time window manager systems, methods and computer program products of Figure IB.
Figures 3-4 are block diagrams of static partitions of a database. Figure 5 is a block diagram of reconfigurable time window partitioning of databases according to embodiments of the present invention.
Figure 6 is a flowchart of operations that are performed for reconfigurable dynamic time window management systems, methods and computer program products according to embodiments of the present invention.
Figure 7 is a flowchart illustrating operations to determine a number of subpartitions to be dropped in Figure 6.
Detailed Description of Preferred Embodiments
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout. As also will be appreciated by one of skill in the art, the present invention may be embodied as methods, data processing systems, and/or computer program products. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment running on general purpose hardware or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, a transmission media such as those supporting the Internet or an intranet and/or magnetic storage devices. Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as JAVA®, Smalltalk or C++. The computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as "C", or in various other programming languages. Software embodiments of the present invention do not depend on implementation with a particular programming language. Portions of the program code may execute entirely on one or more data processing systems.
Referring now to Figure 1 A, a block diagram of database systems, methods and computer program products according to embodiments of the present invention now will be described. As shown in Figure 1 A, database systems, methods and computer program products 100 according to embodiments of the present invention include a database 110 that stores temporal data and a database management system 120 that includes a partitioning module or subsystem 130 that partitions the database of temporal data into a first plurality of partitions (also referred to as subpartitions) for each of a second plurality of time intervals. One or more other applications 140 may interface with the database management system 120, for example to support user queries. Elements 110, 120, 130 and 140 may be embodied as part of an Oracle database management system and/or other database management system, and need not be described in further detail herein. These elements may be embodied in a lumped system, a distributed system and/or a client server system, and may be directly connected to one another or may be connected via a network including public and/or private, local and/or wide area networks such as the Internet.
Still referring to Figure 1 A, a dynamic time window manager 150 also is provided. According to embodiments of the invention, the dynamic time window manager 150 is configured to automatically control the database management system 120 to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval. The dynamic time window manager 150 also is configured to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals. In some embodiments, the time intervals are a day, the second plurality is seven, and the dynamic time window manager 150 automatically controls the database management system to create the first plurality of partitions immediately prior to midnight, for storing therein temporal data for a next day, and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
Figure IB is a block diagram of other systems, methods and computer program products 100' according to other embodiments of the invention. In these embodiments of the invention, a reconfigurable dynamic time window manager 150' is provided. The reconfigurable dynamic time window manager 150' can provide the functionality that was described above for the dynamic time window manager 150, and also is responsive to user input of a desired number of partitions and/or a desired number of time intervals, to automatically control the database management system 120 to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated. Accordingly, under user control, the number of partitions per time interval can be increased or decreased and the desired number of time intervals in the window also can be increased or decreased. The reconfigurable dynamic time window manager 150' automatically controls the database management system 120 to implement the desired increase or decrease in the number of partitions and/or the desired increase or decrease in the number of time intervals, without the need for the database administrator to generate and/or periodically execute an application program.
Figure 2 is a flowchart of operations performed by embodiments of reconfigurable dynamic time window manager systems, methods and computer program products 150' of Figure IB. As shown in Figure 2 at Block 210, new partitions are automatically added prior to expiration of one of the time intervals. Thus, when a new time interval begins, new partitions already are present for storing the temporal data. At Block 220, old partitions are automatically deleted after expiration of the time intervals, so that the oldest partitions are automatically deleted. Referring now to Block 230, if a reconfiguration command is received, then the partitions are reconfigured at Block 240. The reconfiguration command may be in the form of tw(n,m), where tw indicates the reconfiguration command, n is the number of time intervals, such as days, and m is the number of partitions into which each time interval is to be partitioned. Accordingly, either or both of the variables n or m may be changed. It will be understood that for the dynamic time window manager 150 of
Figure 1 A, blocks 230 and 240 may be omitted.
As will be described in detail below, when a command is received to increase the second plurality of time intervals to a third plurality of time intervals, the database management system 120 is controlled to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals, until the first plurality of partitions times one plus the third plurality of time intervals is present. Thereafter, the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals is deleted. Moreover, when a command is received to decrease the second plurality of time intervals to a fourth plurality of time intervals, the database management system 120 is automatically controlled to create the first plurality of partitions prior to expiration of one of the time intervals, and to delete the second plurality minus the fourth plurality of partitions that correspond to the oldest ones of the second plurality of time intervals after expiration of the one of the time intervals. Also, in response to a command to increase the first plurality of partitions to a fifth plurality of partitions, the database management system 120 is automatically controlled to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals. Finally, when a command is received to decrease the first plurality of partitions to a sixth plurality of partitions, the database management system 120 is automatically controlled to create the sixth plurality of partitions prior to expiration of one of the time intervals, and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
Thus, the reconfigurable dynamic time window manager 150' is responsive to user input of a desired number of partitions and/or a desired number of time intervals, to automatically control the database management system 120, to maintain the desired number of partitions and/or the desired number of time intervals as the temporal data is accumulated.
Additional embodiments of database systems, methods and computer program products according to the invention now will be described. For ease of explanation, Oracle databases and flow data that were described above will be used. However, it will be understood that partitioning may be used with other database systems, methods and computer program products and/or other temporal data as well. A static partition scheme first will be described. Dynamic time window managers 150 according to embodiments of the present invention then will be described. Reconfigurable dynamic time window managers 150' according to embodiments of the present invention then will be described.
Partitioning An Oracle Database System A partitioned table is divided into a number of smaller pieces called partitions or subpartitions. A subpartition of a table also can be called a sub-table. Range partition and hash partition will be described. Each subpartition can be renamed and truncated. The tablespace for a subpartition also may be selected.
Range partition maps data records based on ranges of column values. Range partition may be defined by the partitioning specification for a table, and by the partitioning specifications for each individual subpartition. The only maintenance operation that may be needed on range partitions is merging partitions. Merging may be needed only when archiving the data.
To partition tables, a partition criterion may be desired. For example, one way to range-partition FLOW_DATA is to add an integer column for the range partition, where the value range of the integer column need not be large. Three or four decimal digits may suffice. The values may be generated by application programs that load flow records into the database. This technique may use additional storage cost, albeit very small percentage wise. Another way is to use the FLOW_ID by talcing the remainder of FLOW_ID divided by a pre-determined integer, say, z, i.e., a record r with FLOW_IDr is put into partition (FLOW_IDr modz). Note this range partition criterion can ensure that the data for each flow is stored in the same subpartition. Since the most frequently requested query is about the data for a given FLOW_ID, the database management system may need to only search one subpartition instead of multiple partitions. This can reduce the amount of search effort.
For the example 15-minute-interval 100,000 flow record insertion, a four- way partition for each of the seven FLOW_DATA tables can be used. Based on experimental results, Oracle can perform reasonably well for the first six hours of data processed in a 24-hour period, i.e. about 2.5 million flows. A four-way partition scheme can store data into each subpartition in an amount that is equivalent to six- hours of data before partition. Hence, for 100,000 flows per 15-minute time interval, a four- way partition can maintain that level of performance. When deriving the number of partitions for a configurable partitioned database system, the total number of flows and a subpartition size limit of 2.5 million flows can determine the number of partitions. Note that the figure 2.5 million may be different on other systems.
To partition the FLOW_DATA table, all partitions may be placed into the same tablespace (an Oracle terminology for file space allocated to tables) or placed into separate tablespaces. Although it is not necessary to keep each table partition in a separate tablespace, it may be advantageous to do so. Storing partitions in separate tablespaces can reduce the possibility of data corruption in multiple partitions, allow independent back up and recovery for each partition, allow control of the mapping of partitions to disk drives (which may be important for balancing I/O load) and can improve manageability, availability and performance.
Another potential advantage of putting subpartitions into separate tablespaces is that, should the tablespaces be allocated on different disk units, the partitions may reside on separate disk units that are controlled by different disk controllers. Consequently, there may be an additional level of parallelism while performing I/O operations.
Below is a sample SQL script that can be used as a basis in creating range partitions for the table FLOW_DATA:
DROP TABLE FLOW_DATA ;
CREATE TABLE FLOWJDATA ( FLOW D NUMBER/ 10) NOT NULL,
COLLECTION JDATEJTIME NUMBER(10) NOT NULL, HEALTH NUMBER(l),
TRAFFIC_CONTRACT_STATUS NUMBER(l), PCR_STATUS NUMBER(l), •
TRANSMITTED_CELLS NUMBER(10), MISS INSERTED CELLS NUMBER(10) )
TABLESPACE ATMVIEW PCTUSED 65 PCTFREE 10
STORAGE( INITIAL 209715200 NEXT 314572800 PCTINCREASE 0 )
PARALLEL( DEGREE 1 INSTANCES 1 )
PARTITION BY RANGE ( FLOWJD MOD 4 )
( PARTITION FLOW_DATA_0 VALUES LESS THAN ( 1 ) TABLESPACE FLOW_TS0, PARTITION FLOW_DATA_l VALUES LESS THAN ( 2 ) TABLESPACE
FLOW TS1, PARTITION FLOW_DATA_2 VALUES LESS THAN ( 3 ) TABLESPACE
FLOW_TS2, PARTITION FLOW_DATA_3 VALUES LESS THAN ( 4 ) TABLESPACE FLOW TS3
) ; Hash partitioning can control the physical placement of data across a fixed number of partitions. Rows are mapped into partitions based on a hash value of the partitioning key. Hash partitioning can be highly tunable. Based on the same reasoning for range partition, the hashed values of FLOWJGDs may be used as the hash criterion. Under this criterion, all flows having the same FLOWJLDs can be hashed into the same sub-table.
The following is a sample SQL script to hash partition table FLOW_DATA:
DROP TABLE FLO W_DATA ;
CREATE TABLE FLOW_DATA ( FLOWJD NUMBERQO) NOT NULL,
COLLECTION JDATEJITME NUMBER(10) NOT NULL, HEALTH NUMBER(1),
TRAFFIC ONTRACTJ^TATUS NUMBER(1),
PCR_STATUS NUMBER(1),
TRANSMITTED ELLS NUMBER(10),
MISSJNSERTEDJ ELLS NUMBER(10) )
TABLESPACE ATMVIEW PCTUSED 65 PCTFREE 10
STORAGE( INITIAL 209715200 NEXT 314572800 PCTINCREASE 0 )
PARALLEL( DEGREE 4 INSTANCES 1 ) PARTITION BY HASH ( FLOWJD )
PARTITIONS 4 ;
Alternatively, the hash partition clause may be specified as:
PARTITION BY HASH ( FLOWJD )
PARTITIONS 4
STORE IN ( FLOWJTSO, FLOWJTS1, FLOW TS2, FLOW TS3 ) ;
Or as:
PARTITION BY HASH ( FLOWJD )
PARTITIONS 4
( PARTITION FLOWJDATA J) TABLESPACE FLOWJTSO, PARTITION FLOWJDATAJ TABLESPACE FLOW_TSl,
PARTITION FLOWJDATAJ2 TABLESPACE FLOW_TS2, PARTITION FLOW DATA 3 TABLESPACE FLOW_TS3
) ; As before, FLOWJTSO, FLOWJTS1, FLOWJTS2, and FLOWJTS4 are names of tablespaces. The latter hash partition clause syntax provides a mapping mechanism between tablespace names and subpartition names.
For temporal data, there may be a need to periodically truncate some of the tables. Hence when partitioning these tables, there may be a need to periodically truncate the subpartitions. Truncating a subpartition, such as FLOW_DATA_l, can be performed as follows:
ALTER TABLE FLOWJ)ATA TRUNCATE PARTITION FLOWJDATAJ ;
There also may be a need to periodically add some new subpartitions to temporal data. Adding a subpartition such as FLOW_DATA_5, to FLOWJD ATA table that is assumed to have been range partitioned can be performed as follows:
ALTER TABLE FLOWJDATA
ADD PARTITION FLOW_DATA_5 VALUES LESS THAN ( 5 ) TABLESPACE
FLOWJTS5 ;
There also may be a need to periodically drop some existing subpartitions from temporal data. Dropping a subpartition such as FLOWJD AT A_0, from FLOWJDATA can be performed as follows:
ALTER TABLE FLOWJDATA DROP PARTITION FLOWJDATA J ;
A subpartition of a table can be moved by the following example:
ALTER TABLE FLOWJDATA RENAME SUBPARTITION FLOWJDATA J TO FLOW_DATA_x;
A subpartition of a table can be moved to a different tablespace by the following example:
ALTER TABLE FLOWJDATA MOVE PARTITION FLOWJDATAJ TABLESPACE FLOWJDATA_TS_x NOLOGGING ;
Either a local index or a global index can be used for partitioned tables. Local partitioned indexes can be easier to manage and can offer greater availability, because actions that make one subpartition's data invalid or unavailable may not affect the rest, increasing the overall availability of the data. In contrast, global partitioned indexes may be harder to manage and may not offer as great availability gains. Management of global indexes generally is performed manually and any operations such as dropping, truncating, exchanging, or splitting any subpartitions may make all of the indexes unusable, as any index can now have invalid data. While some availability gains may be obtained over non-partitioned indexes, should one subpartition become unavailable it may affect access to other subpartitions. For the description that follows, local indexes will be assumed. Local indexes can be created for the partitioned FLO JDATA table by the following command:
CREATE INDEX FLOWJDATA JCD ON FLOWJDATA ( FLOWJD ) LOCAL;
In Oracle, the datafiles for each table and each partition is mapped to a tablespace, either explicitly or implicitly. It was shown above how to explicitly associate a subpartition to a tablespace. To create a new tablespace, the SQL statement CREATE TABLESPACE can be used. One may need the CREATE TABLESPACE system privilege to create a tablespace. As an example, the tablespace FLOWJD AT A_TS is created, with the following characteristics: The data of the new tablespace is contained in a single datafile, 500M in size. The default storage parameters for any segments created in this tablespace are explicitly set. After the tablespace is created, it is left offline. The following statement creates a tablespace FLOWJDATAJTS:
CREATE TABLESPACE FLOWJDATAJTS DATAFILE 'flowdatafflerj' SIZE 500M DEFAULT STORAGE ( INITIAL 100M NEXT 100M
MINEXTENTS 2 MAXEXTENTS 50 PCTINCREASE 0) OFFLINE;
If one does not fully specify filenames when creating tablespaces, the corresponding datafiles are created in the ORACLL HOME/dbs directory. Static Partitions
As was described above, seven logical tables may be used to implement the table FLOWJDATA, one for each of the week days. All of the seven tables are managed by an application module. In order to keep each B-tree size small and allow better performance, each of the seven FLOWJDATA tables may be partitioned into four subpartitions. An application module, referred to as a "Repository", manages the seven tables, while the Oracle DBMS manages the 28 partitions. A block diagram of the partitioned FLOWJDATA table is depicted in Figure 3.
The performance with regard to the FLOWJDATA table may be improved and/or the complexity may be reduced by merging the seven logical tables into one, and partitioning that one logical table into 28 sub-tables. In particular, a new column may be added that represents the weekdays, for example column WEEKDAY. The value of WEEKDAY can be computed using standard datetime C/C++ functions on timestamps. The table then is partitioned by the combined FLOWJD and WEEKDAY values, to obtain a total of 28 partitions. Any of the sub-tables can be truncated. With this partition scheme, from the Repository (application) module point of view, FLOWJDATA is the only table, instead of seven, to be managed, just like any of the other tables. The Oracle DBMS manages all of the 28 sub-tables. The Repository should periodically truncate some of the sub-tables. But truncation may need to be performed anyway should the FLOWJDATA be represented by seven separate logical tables.
Besides reduced management complexity, there also may be an added benefit in query executions. In particular, with seven separate logical tables, to query a particular flow, the application has to decide which of the seven logical tables from which to query. Moreover, with only one logical table to deal with, the task can be much simpler. Finally, with seven separate logical tables, the records of some flows are present across multiple logical flow tables. Thus, for certain frequently used queries, joins between these tables may be needed to find matching flows. With the single-table scheme, since all of the flows are in the same logical table, join operations may not need to be performed.
Figure 4 depicts a static partition scheme based on Date and FLOWJD over seven Logical FLOWJDATA Tables. Below is a sample SQL script that can be used as a basis in creating range partitions for the table FLOWJDATA where the partition criterion is over WEEKDAY and FLOWJD: DROP TABLE FLOWJDATA ;
CREATE TABLE FLOWJDATA (
FLOWJD NUMBER(IO) NOT NULL,
COLLECTION JDATEJTIME NUMBER(10) NOT NULL, HEALTH NUMBER(1),
TRAFFIC_CONTRACT_STATUS NUMBER(l),
PCRJSTATUS NUMBER(1),
TRANSMITTED ELLS NUMBER(10),
MISS_INSERTED_CELLS NUMBER(IO) )
TABLESPACE ATM VIEW PCTUSED 65 PCTFREE 10
STORAGE( INITIAL 209715200 NEXT 314572800 PCTINCREASE 0 )
PARALLEL( DEGREE 1 INSTANCES 1 ) PARTITION BY RANGE ( WEEKDAY, ( FLOWJD MOD 4) )
( PARTITION FLOWJDATAJ) VALUES LESS THAN ( 1, 1 ) TABLESPACE FLOWJTSO,
PARTITION FLOWJDATAJ VALUES LESS THAN ( 1, 2 ) TABLESPACE FLOWJTS1,
PARTITION FLOWJDATAJ. VALUES LESS THAN ( 1, 3 ) TABLESPACE FLOWJTS2,
PARTITION FLOW_DATA_3 VALUES LESS THAN ( 1, 4 ) TABLESPACE FLOW S3 PARTITION FLOWJDATAJ VALUES LESS THAN ( 2, 1 ) TABLESPACE FLOW S4,
PARTITION FLOW_DATA_5 VALUES LESS THAN ( 2, 2 ) TABLESPACE FLOWJTS5,
PARTITION FLOW_DATA_6 VALUES LESS THAN ( 2, 3 ) TABLESPACE FLOWJTS6,
PARTITION FLOWJDATAJ7 VALUES LESS THAN ( 2, 4 ) TABLESPACE FLOWJTS7, I
PARTITION FLOW_DATA_24 VALUES LESS THAN ( 7, 1 ) TABLESPACE FLOWJTS24,
PARTITION FLOW_DATA_25 VALUES LESS THAN ( 7, 2 ) TABLESPACE FLOWJTS25,
PARTITION FLOW_DATA_26 VALUES LESS THAN ( 7, 3 ) TABLESPACE FLOWJTS26, PARTITION FLO JD AT A_27 VALUES LESS THAN ( 7, 4 ) TABLESPACE FLOWJTS27
) ;
Note that it is optional to specify tablespace for subpartitions.
In the above sample script, the column WEEKDAY is placed ahead of FLOWJLD in the partition criteria, giving WEEKDAY a higher precedence over
FLOWJD in the partition criteria. In order to break the sequential key distribution of FLOW DATA, a value also may be prefixed to FLOW D that can be either a column or a prefix value to FLOWJD as part of the key. This can make FLOWJDATA records more evenly distributed within a B-tree (as opposed to sequential distribution) and can result in better space utilization and consequently better overall performance.
Reconfigurable Dynamic Time Window Management
In dynamic time window management according to embodiments of the present invention, while the database and table remain existent and operational, new subpartitions can be created and added to the time window and existing dated subpartitions can be dropped from the time window while the database system is operational. Moreover, the number of subpartitions may be changed on the fly.
A time window tw(n, m) has two integer parameters n and m, where n is the number of days data to be kept on line in the time window, and m is the number of subpartitions into which each days data is partitioned. The variable n can be used to satisfy system requirements, and the variable m can be used to keep each B-tree of each subpartition within a size limit to maintain good performance. A time window tw(n, m) has total n-m (n times m) subpartitions, where each subpartition may, but need not, be assigned a distinct tablespace. Just before the beginning of each new day, m new subpartitions are created and added to the time window for storing the data collected during that new day. Just after the beginning of each new day, the data in the existing m subpartitions for the day that just falls behind the n-day time window is archived, and their m subpartitions are deleted from the time window. The time window may be regarded as behaving as a "queue", where subpartitions are added to its front end and are deleted from its rear end, and the time window moves along as time progresses.
Figure 5 is a block diagram of a time window tw( 7, 4). As shown in Figure 5, this time window is dynamic in the sense that subpartition management can be performed while the database is operational. Also, changes in n and/or m can be handled. For example, if the time window is to include fourteen days data (total 56 subpartitions) instead of seven days data (total 28 subpartitions), tw may be reconfigured on the fly as: tw( 7, 4) -> tw(14, 4), while the database remains operational.
The new configuration change of tw begins to take effect at the next time interval, such as the next midnight date boundary. Since network service providers may have different resources to meet different needs at different times, this configurability can provide desired flexibility. Also, the system can be scaled by making more (or less) partitions for each day's data, such as 8 partitions or 12 partitions, by changing the value of m. Hence, this configurability can also provide scaleability. Note that none of the subpartition management and time window configuration operations require the database be offline. Thus, dynamic time window management can avoid service disruption. This can support data availability, which can be very important, for example, for Internet service providers that need to be operational 24 hours a day and 7 days a week. A time window also may assign subpartitions to different tablespaces where tablespaces may be assigned to different disk units controlled by separate disk controllers. This may result in increased parallelism and improved performance.
Referring now to Figure 6, other embodiments of reconfigurable dynamic time window management systems, methods and computer program products 150' according to embodiments of the present invention now will be described. Figure 6 assumes that there are n time intervals, such as days, and m partitions, such as four partitions for each time interval. These operations also assume that a time gap value delta is provided. In some embodiments, delta may be in the range of 5-10 minutes. However, other values may be used, depending upon the requirements and/or capacities of the database system.
Referring now to Figure 6, at Block 602 a test is made as to whether there are existing subpartitions. There may be no existing subpartitions when the database system is started or restarted. At Block 604, if there are no existing subpartitions, then m subpartitions are added so that the first time period data may be stored.
Then, referring to Block 606, if a user input is received to reconfigure the time window manager tw, then the value of n is copied into the variable oldn, the value m is copied into the value oioldm, the new value of n is assigned to n, and the new value of m is assigned to m. Operations then proceed until the current time exceeds the time interval minus delta. Since in the present example, the time interval is assumed to be a day, Block 610 tests as to whether the current time is more than midnight minus delta. If yes, then at Block 612, m subpartitions are added for the new day, so that data can be stored in the m subpartitions at the beginning of the immediately succeeding (next) time interval. Then, at Block 614, a test is made as to whether the current time is more than midnight plus delta. If yes, a test is made as to whether there are more than n + 1 time intervals (days) subpartitions. If yes, then operations are performed to determine g, the number of subpartitions to be dropped, at Block 618. Details of these operations will be described in connection with Figure 7. Finally, at Block 620, the earliest days g subpartitions are dropped. If there are still more than n + 1 days of subpartitions, then the operations at Block 616, 618 and 620 are repeatedly performed until there are only 7 + 1 days subpartitions. Then, operations return to Block 606 to await receipt of another reconfiguration command and/or the time midnight minus delta. Referring now to Figure 7, operations for assigning g (Block 618 of Figure 6) now will be described. The operations of Figure 7 assume that the copy operations of Block 608 have been performed so that the current value of n is saved as oldn, the current value of m is saved as oldm, the new value ofn is saved as n, and the new value of 777 is saved as m. At Block 702, a test is made as to whether m = oldm. If this is the case, then the number m is not being changed and at Block 712, the value g (the number of subpartitions to be dropped) is equal to m.
Returning to Block 702, if m is not equal to oldm, then a test is made at Block 704 as to whether n is greater than oldn. If yes, then at Block 706, a test is made as to whether the number of days subpartitions that were dropped since the last reconfiguration is less than oldn. If yes, the value of oldm is assigned to g at Block 714. If no, the value ofm is assigned to g at Block 712. Returning now to Block 704, if n is not greater than oldn, then a test is made at Block 708 as to whether the number of days subpartitions dropped since the last reconfiguration is less than n. If yes, then the value of oldm is assigned to g at Block 714, and if not the value of m is assigned to g at Block 714.
A qualitative description of the operations of Figures 6 and 7 now will be provided. In particular, just after midnight, the reconfigurable dynamic time window manager 150' checks if the number of days subpartitions currently stored in the time window is greater than n + 1. If yes, some partitions are dropped until there are only n + 1 days subpartitions left in the time window. Otherwise, no subpartitions are dropped. In dropping one days subpartitions, exactly how many subpartitions are to be dropped is determined by the value of the variable g. Thus, if n is increased, during the first 7 - oldn of the reconfiguration days, after midnight, no subpartitions are dropped. After that, one days subpartitions are dropped after each midnight until the next reconfiguration. On the other hand, if n is decreased during the first day of reconfiguration, after midnight, the first oldn - n days subpartitions are dropped. After that, one days subpartitions are dropped after each midnight, until the next reconfiguration. To facilitate the subpartition and time window configuration management, a convention for naming tablespaces and subpartitions may be desirable. In designing a naming convention, the names should be meaningful. They should convey temporal information as to the date of the data and provide a clear mapping to the FLOWJDs. The names also should have a clear lexical graphic order that is consistent with date- time line, i.e., its textual values should ascend as date-time advances. Finally, the convention should allow names to be composed on the fly.
Assume that a time window has n-m subpartitions residing in n-m tablespaces. For tablespace names, the following name may be used: FLOW_OATA_TSJ_date]_[segment], and for subpartition names, the following similar name may be used: FLOW_DATA_SP Jdate]Jsegment], where for a given date with year, month, day in integer form, the date field has values in the form of [year] [month] [day], reserving 4 digits for the year field, the month and day fields 2 digits each, and the segment field has values in the range of 0, 1 ,2, ... , m- 1 where the number of digits reserved for this field depends on the magnitude of m. Note that, to make the names consistent, segment should be zero-filled if m > 10.
For example, if each days data is partitioned into 4 subpartitions (m = 4) and June 9, 2000 is the new date for new subpartitions, then the names of the 4 tablespaces are:
FLOWJDATA_TSJ20000609_0,
FLOWJDATAJTS_20000609J,
FLOWJDATAJTS J20000609J2, FLOWJDATAJTSJ20000609J,
and the names of the 4 subpartitions are
FLOWJDATA JSP _20000609_0, FLOWJDATAJSP_20000609_1,
FLOWJDATA_SP_20000609_2,
FLOW_DATA_SPJ20000609_3.
Names conforming to this naming convention, with their sorted order consistent with the date-time order, can be generated by applications in a Unix/C environment. Reconfigurable dynamic time window management systems, methods and/or computer program products according to embodiments of the invention can provide improved performance, manageability, availability, configurability, flexibility, scaleability, and/or maintainability. Some of these potential benefits may be related since the reasons for them may be related.
As to performance, the size of subpartitions may be limited, for example to about 2.5 million (this number is system dependent) flow records, which can prevent the size of the B-tree for each subpartition from becoming too big. Moreover, subpartitions can be allocated on different disk units with different disk controllers. Hence, they may be accessed and manipulated in parallel with increased throughput. With automated subpartition management, existing subpartitions are removed after the end of the time window while new subpartitions are created before the front of the time window. The two operations at the day boundaries need not interfere with each other. Since temporal semantics can be embedded in the names of the subpartitions and tablespaces, the repository can manage to select, archive and dispose the data for a given date. Improved manageability therefore may be provided.
Improved availability also may be provided, since the subpartition management operations (e.g., archiving data, adding new partitions and dropping old subpartitions) can be performed while the database is in operation. Data thus always can be available as long as the system is available. Also, even during time window reconfiguration operations, the database can remain operational, which may be an important requirement, for example, for Internet service providers which desire to provide services 24 hours a day, 365 days a year.
The time window size and the number of subpartitions within each days data can be reconfigured dynamically. This can be important especially when user requirements change. For example, an increased number of days data to be kept on line, or an increased number of flows for customers can result in increased amount of data to be stored and thus can result in the need for more subpartitions for each days data. The reconfiguration can be performed while the database remains operational. Improved configurability therefore may be provided. Flexibility also may be enhanced by meeting various needs of different users at different times.
Also, because of the configurability of the dynamic time window, more flow records can be accumulated on demand by enlarging the value of m to create more daily subpartitions. Scaleability thereby may be provided. Moreover, different needs of different users at different times may be met without the need to resort to programming. Maintainability thereby may be enhanced.
Finally, it will be understood that embodiments of the invention do not require
B-tree based database data structures. Non-B-tree based database systems also may be used. In the latter case, the data manageability and availability, system configurability, flexibility, scaleability and maintainability may be retained.
Moreover, although Oracle databases have been described, other database systems also may be used.
The flowcharts and block diagrams of Figures 1 through 7 illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to embodiments of the invention.
In this regard, each block in the flowcharts or block diagrams can represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.

Claims

What is Claimed is:
1. A database system comprising: a database that stores temporal data; a database management system that partitions the database of temporal data into a first plurality of partitions for each of a second plurality of time intervals; and a dynamic time window manager for the database management system that is configured to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
2. A database system according to Claim 1 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the dynamic time window manager automatically controls the database management system to create the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
3. A database system according to Claim 1 wherein the dynamic time window manager also automatically controls the database management system to access the first plurality of partitions for each of a second plurality of time intervals as a single logical table.
4. A database system according to Claim 1 wherein the dynamic time window manager is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals, to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
5. A database system according to Claim 1 wherein the dynamic time window manager is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals, to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals and to delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
6. A database system according to Claim 1 wherein the dynamic time window manager is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions, to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
7. A database system according to Claim 1 wherein the dynamic time window manager is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions, to automatically control the database management system to create the sixth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
8. A database system comprising: a database that stores temporal data; a database management system that partitions the database of temporal data into a plurality of partitions for each of a plurality of time intervals; and a reconfigurable dynamic time window manager for the database management system that is responsive to user input ofa desired number of partitions and a desired number of time intervals to automatically control the database management system to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
9. A database system according to Claim 8 wherein the reconfigurable dynamic time window manager is configured to automatically control the database management system to create at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
10. A database system according to Claim 8 wherein the reconfigurable dynamic window manager also automatically controls the database management system to access the plurality of partitions for each of the plurality of time intervals as a single logical table.
11. A dynamic time window manager for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a first plurality of partitions for each of a second plurality of time intervals, the dynamic time window manager comprising: a module that is configured to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
12. A dynamic time window manager according to Claim 11 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the module automatically controls the database management system to create the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
13. A dynamic time window manager according to Claim 11 wherein the module also automatically controls the database management system to access the first plurality of partitions for each of a second plurality of time intervals as a single logical table.
14. A dynamic time window manager according to Claim 11 wherein the module is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
15. A dynamic time window manager according to Claim 11 wherein the module is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals and to delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
16. A dynamic time window manager according to Claim 11 wherein the module is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
17. A dynamic time window manager according to Claim 11 wherein the module is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions to automatically control the database management system to create the sixth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
18. A reconfigurable dynamic time window manager for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a plurality of partitions for each of a plurality of time intervals, the reconfigurable dynamic time window manager comprising: a module that is responsive to user input ofa desired number of partitions and a desired number of time intervals to automatically control the database management system to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
19. A reconfigurable dynamic time window manager according to Claim 18 wherein the module is configured to automatically control the database management system to create at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
20. A reconfigurable dynamic time window manager according to Claim 18 wherein the module also automatically controls the database management system to access the plurality of partitions for each of the plurality of time intervals as a single logical table.
21. A database management method comprising : partitioning a database of temporal data into a first plurality of partitions for each ofa second plurality of time intervals; automatically creating the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval; and automatically deleting the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
22. A method according to Claim 21 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the step of automatically creating comprises creating the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and wherein the step of automatically deleting comprises automatically deleting the first plurality of partitions that correspond to an oldest day immediately after midnight.
23. A method according to Claim 21 wherein the partitioning step further comprises accessing the first plurality of partitions for each ofa second plurality of time intervals as a single logical table.
24. A method according to Claim 21 wherein the steps of automatically creating and automatically deleting are responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals, to automatically repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
25. A method according to Claim 21 wherein the steps of automatically creating and automatically deleting are responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals, to automatically create the first plurality of partitions prior to expiration of one of the time intervals and to automatically delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
26. A method according to Claim 21 wherein the steps of automatically creating and automatically deleting are responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions, to automatically create the fifth plurality of partitions prior to expiration of one of the time intervals and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
27. A method according to Claim 21 wherein the steps of automatically creating and automatically deleting are responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions, to automatically create the sixth plurality of partitions prior to expiration of one of the time intervals and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
28. A database management method comprising: partitioning a database of temporal data into a plurality of partitions for each of a plurality of time intervals; and automatically maintaining a desired number of partitions and a desired number of time intervals as the temporal data is accumulated, in response to user input of the desired number of partitions and the desired number of time intervals.
29. A method according to Claim 28 wherein the automatically maintaining step comprises automatically creating at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and automatically deleting at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
30. A method according to Claim 28 wherein the partitioning step further comprises accessing the plurality of partitions for each of the plurality of time intervals as a single logical table.
31. A partitioning method for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a first plurality of partitions for each of a second plurality of time intervals, the partitioning method comprising: automatically controlling the database management system to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
32. A method according to Claim 31 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the automatically controlling step comprises automatically controlling the database management system to create the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
33. A method according to Claim 31 wherein the automatically controlling step further comprises automatically controlling the database management system to access the first plurality of partitions for each of a second plurality of time intervals as a single logical table.
34. A method according to Claim 31 wherein the automatically controlling step is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
35. A method according to Claim 31 wherein the automatically controlling step is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals and to delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
36. A method according to Claim 31 wherein the automatically controlling step is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
37. A method according to Claim 31 wherein the automatically controlling step is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions to automatically control the database management system to create the sixth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
38. A reconfigurable dynamic time window management method for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a plurality of partitions for each of a plurality of time intervals, the reconfigurable dynamic time window management method comprising: automatically controlling the database management system to maintain a desired number of partitions and a desired number of time intervals as the temporal data is accumulated, in response to user input of the desired number of partitions and the desired number of time intervals.
39. A method according to Claim 38 wherein the step of automatically controlling comprises automatically controlling the database management system to create at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
40. A method according to Claim 38 wherein the step of automatically controlling comprises automatically controlling the database management system to access the plurality of partitions for each of the plurality of time intervals as a single logical table.
41. A database computer program product, the computer program product comprising a computer-readable storage medium having computer-readable program code embodied in the medium, the computer-readable program code comprising: computer-readable program code that provides a database that stores temporal data; computer-readable program code that provides a database management system that partitions the database of temporal data into a first plurality of partitions for each ofa second plurality of time intervals; and computer-readable program code that provides a dynamic time window manager for the database management system that is configured to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
42. A computer program product according to Claim 41 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the computer- readable program code that provides a dynamic time window manager automatically controls the database management system to create the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
43. A computer program product according to Claim 41 wherein the computer-readable program code that provides a dynamic time window manager also automatically controls the database management system to access the first plurality of partitions for each ofa second plurality of time intervals as a single logical table.
44. A computer program product according to Claim 41 wherein the computer-readable program code that provides a dynamic time window manager is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals, to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
45. A computer program product according to Claim 41 wherein the computer-readable program code that provides a dynamic time window manager is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals, to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals and to delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
46. A computer program product according to Claim 41 wherein the computer-readable program code that provides a dynamic time window manager is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions, to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
47. A computer program product according to Claim 41 wherein the computer-readable program code that provides a dynamic time window manager is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions, to automatically control the database management system to create the sixth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
48. A database computer program product, the computer program product comprising a computer-readable storage medium having computer-readable program code embodied in the medium, the computer-readable program code comprising: computer-readable program code that provides a database that stores temporal data; computer-readable program code that provides a database management system that partitions the database of temporal data into a plurality of partitions for each of a plurality of time intervals; and computer-readable program code that provides a reconfigurable dynamic time window manager for the database management system that is responsive to user input of a desired number of partitions and a desired number of time intervals to automatically control the database management system to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
49. A computer program product according to Claim 48 wherein the computer-readable program code that provides a reconfigurable dynamic time window manager is configured to automatically control the database management system to create at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
50. A computer program product according to Claim 48 wherein the computer-readable program code that provides a reconfigurable dynamic window manager also automatically controls the database management system to access the plurality of partitions for each of the plurality of time intervals as a single logical table.
51. A dynamic time window manager computer program product for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a first plurality of partitions for each of a second plurality of time intervals, the dynamic time window manager computer program product comprising a computer-readable storage medium having computer-readable program code embodied in the medium, the computer- readable program code comprising: computer-readable program code that is configured to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to automatically delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
52. A computer program product according to Claim 51 wherein the time intervals are a day, wherein the second plurality is seven, and wherein the computer- readable program code automatically controls the database management system to create the first plurality of partitions immediately prior to midnight for storing therein temporal data for a next day and to delete the first plurality of partitions that correspond to an oldest day immediately after midnight.
53. A computer program product according to Claim 51 wherein the computer-readable program code also automatically controls the database management system to access the first plurality of partitions for each of a second plurality of time intervals as a single logical table.
54. A computer program product according to Claim 51 wherein the computer readable program code is responsive to a command to increase the second plurality of time intervals to a third plurality of time intervals to automatically control the database management system to repeatedly create the first plurality of partitions prior to expiration of one of the time intervals until the first plurality of partitions times one plus the third plurality of time intervals is present and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals thereafter.
55. A computer program product according to Claim 51 wherein the computer-readable program code is responsive to a command to decrease the second plurality of time intervals to a fourth plurality of time intervals to automatically control the database management system to create the first plurality of partitions prior to expiration of one of the time intervals and to delete the second plurality minus the fourth plurality of partitions that correspond to oldest ones of the second plurality of time intervals after expiration of the one of the time intervals.
56. A computer program product according to Claim 51 wherein the computer-readable program code is responsive to a command to increase the first plurality of partitions to a fifth plurality of partitions to automatically control the database management system to create the fifth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
57. A computer program product according to Claim 51 wherein the computer-readable program code is responsive to a command to decrease the first plurality of partitions to a sixth plurality of partitions to automatically control the database management system to create the sixth plurality of partitions prior to expiration of one of the time intervals and to delete the first plurality of partitions that correspond to an oldest one of the second plurality of time intervals after expiration of the one of the time intervals.
58. A reconfigurable dynamic time window manager computer program product for a database system that includes a database that stores temporal data and a database management system that partitions the database of temporal data into a plurality of partitions for each of a plurality of time intervals, the reconfigurable dynamic time window manager computer program product comprising a computer- readable storage medium having computer-readable program code embodied in the medium, the computer-readable program code comprising: computer-readable program code that is responsive to user input of a desired number of partitions and a desired number of time intervals to automatically control the database management system to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
59. A computer program product according to Claim 58 wherein the computer-readable program code is configured to automatically control the database management system to create at least one partition prior to expiration of one of the time intervals for storing therein temporal data for an immediately succeeding time interval and to delete at least one partition that corresponds to an oldest one of the time intervals after expiration of the one of the time intervals so as to maintain the desired number of partitions and the desired number of time intervals as the temporal data is accumulated.
60. A computer program product according to Claim 58 wherein the computer-readable program code also automatically controls the database management system to access the plurality of partitions for each of the plurality of time intervals as a single logical table.
PCT/US2001/041487 2000-08-17 2001-07-31 Database systems, methods and computer program products including reconfigurable dynamic time window management WO2002015054A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001285385A AU2001285385A1 (en) 2000-08-17 2001-07-31 Database systems, methods and computer program products including reconfigurable dynamic time window management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64104400A 2000-08-17 2000-08-17
US09/641,044 2000-08-17

Publications (2)

Publication Number Publication Date
WO2002015054A2 true WO2002015054A2 (en) 2002-02-21
WO2002015054A3 WO2002015054A3 (en) 2003-05-08

Family

ID=24570719

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/041487 WO2002015054A2 (en) 2000-08-17 2001-07-31 Database systems, methods and computer program products including reconfigurable dynamic time window management

Country Status (2)

Country Link
AU (1) AU2001285385A1 (en)
WO (1) WO2002015054A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1965319A2 (en) * 2007-02-28 2008-09-03 Acei Ab Transaction processing system and method
US20130268509A1 (en) * 2012-04-04 2013-10-10 Cindy O'neill System and method for storing and retrieving data
US9152664B2 (en) 2007-04-13 2015-10-06 Video B Holdings Limited Partition management system
CN109299115A (en) * 2018-11-30 2019-02-01 北京锐安科技有限公司 A kind of date storage method, device, server and storage medium
CN114238450A (en) * 2022-02-22 2022-03-25 阿里云计算有限公司 Time partitioning method and device
US11314742B2 (en) * 2019-12-26 2022-04-26 Morgan Stanley Services Group Inc. Caching time-sensitive data via sliding window partitions
WO2023069195A1 (en) * 2021-10-20 2023-04-27 Bnsf Railway Company System and method for data pruning via dynamic partition management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006412A1 (en) * 1999-07-15 2001-01-25 American Management Systems, Incorporated System for database creation, maintenance and access using event marking and two-dimensional partitioning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006412A1 (en) * 1999-07-15 2001-01-25 American Management Systems, Incorporated System for database creation, maintenance and access using event marking and two-dimensional partitioning

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BARU C K ET AL: "DB2 PARALLEL EDITION" IBM SYSTEMS JOURNAL, IBM CORP. ARMONK, NEW YORK, US, vol. 34, no. 2, 21 March 1995 (1995-03-21), pages 292-322, XP000526619 ISSN: 0018-8670 *
CHAMBERLIN, DON: "A Complete Guide to DB2 Universal Database" , MORGAN KAUFMANN PUBLISHERS , CA, USA XP002221550 1417 ISBN: 1-55860-482-0 * pages 132-137 page 132, line 1 -page 137, paragraph 2 *
FEE, JOYCE ET AL: "ORACLE8I ADMINISTRATOR'S GUIDE, Chapter 13: Managing Partitioned Tables and Indexes, RELEASE 8.1.5, PART NO. A67772-01" February 1999 (1999-02) , ORACLE CORPORATION , CA, USA XP002221549 * pages i, ii, xi, xii, 269-290, cited in the application page 13-5, last paragraph -page 13-8, last paragraph page 13-20, line 21 -page 13-21, line 22 *
LEVERENZ, L., REHFIELD, D. ET AL: "ORACLE8I CONCEPTS, Chapter 11: Partitioned Tables and Indexes, RELEASE 8.1.5, PART NO. A67781-01" February 1999 (1999-02) , ORACLE CORPORATION , CA, USA XP002221551 * pages i, ii, x, 290-360, cited in the application page 11-6, line 10 - line 42 page 11-10, last paragraph -page 11-24, paragraph 1 page 11-48, last paragraph *
ROTEM D ET AL: "PHYSICAL ORGANIZATION OF TEMPORAL DATA" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON DATA ENGINEERING. LOS ANGELES, FEB. 3 - 5, 1987, WASHINGTON, IEEE COMP. SOC. PRESS, US, vol. CONF. 3, 1 February 1987 (1987-02-01), pages 547-553, XP000757790 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1965319A3 (en) * 2007-02-28 2013-01-23 Acei Ab Transaction processing system and method
EP1965319A2 (en) * 2007-02-28 2008-09-03 Acei Ab Transaction processing system and method
US9152664B2 (en) 2007-04-13 2015-10-06 Video B Holdings Limited Partition management system
US20130268509A1 (en) * 2012-04-04 2013-10-10 Cindy O'neill System and method for storing and retrieving data
US9477706B2 (en) * 2012-04-04 2016-10-25 Viavi Solutions Inc. System and method for storing and retrieving data
CN109299115A (en) * 2018-11-30 2019-02-01 北京锐安科技有限公司 A kind of date storage method, device, server and storage medium
US11314742B2 (en) * 2019-12-26 2022-04-26 Morgan Stanley Services Group Inc. Caching time-sensitive data via sliding window partitions
US11868371B2 (en) 2021-10-20 2024-01-09 Bnsf Railway Company System and method for data pruning via dynamic partition management
WO2023069195A1 (en) * 2021-10-20 2023-04-27 Bnsf Railway Company System and method for data pruning via dynamic partition management
US11907262B2 (en) 2021-10-20 2024-02-20 Bnsf Railway Company System and method for data pruning via dynamic partition management
US11914619B2 (en) 2021-10-20 2024-02-27 Bnsf Railway Company System and method for data pruning via dynamic partition management
US11914618B2 (en) 2021-10-20 2024-02-27 Bnsf Railway Company System and method for data pruning via dynamic partition management
CN114238450A (en) * 2022-02-22 2022-03-25 阿里云计算有限公司 Time partitioning method and device

Also Published As

Publication number Publication date
AU2001285385A1 (en) 2002-02-25
WO2002015054A3 (en) 2003-05-08

Similar Documents

Publication Publication Date Title
US20200301941A1 (en) Large scale unstructured database systems
US5680573A (en) Method of buffering data objects in a database
US8825591B1 (en) Dynamic storage mechanism
US11132341B2 (en) Automated information lifecycle management using low access patterns
US5852818A (en) Non-recursive method for parameter evaluation within an information management system
US7225211B1 (en) Multi-class storage mechanism
US7257690B1 (en) Log-structured temporal shadow store
US6598119B2 (en) Database management system with a multiple-level cache arrangement
US6366901B1 (en) Automatic database statistics maintenance and plan regeneration
US7103740B1 (en) Backup mechanism for a multi-class file system
Gunadhi et al. Efficient indexing methods for temporal relations
US20080059492A1 (en) Systems, methods, and storage structures for cached databases
US6694325B2 (en) Database method implementing attribute refinement model
US6098074A (en) Storage management system with file aggregation
US6012064A (en) Maintaining a random sample of a relation in a database in the presence of updates to the relation
US8543596B1 (en) Assigning blocks of a file of a distributed file system to processing units of a parallel database management system
US20010029502A1 (en) Computer system with a plurality of database management systems
JP2005530242A (en) Storage system having partitioned movable metadata
US20130232175A1 (en) Information retrieval system, registration apparatus for indexes for information retrieval, information retrieval method and program
US20070079086A1 (en) System for archival storage of data
CN101443761A (en) QOS-enabled lifecycle management for file systems
US20120317339A1 (en) System and method for caching data in memory and on disk
CN113515487B (en) Directory query method, computing device and distributed file system
WO2007011576A2 (en) Moving data from file on storage volume to alternate location to free space
US7020656B1 (en) Partition exchange loading technique for fast addition of data to a data warehousing system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69 (1) EPC EPO FORM 1205A DATED 25.07.03

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP