Claims
- 1. A processing system for use with a database of data records organized into components, said database stored in a memory, comprising:
- a component copier that creates a physical copy of an original component to be affected by an update transaction to be applied to said database and that causes pointers in nodes of said physical copy to point to other nodes in said physical copy;
- a data updater, associated with said component copier, that applies said update transaction to said physical copy to create therefrom a new physical version, said original component remaining unaffected by said update transaction;
- a pointer updater, associated with said data updater, that employs an atomic word write to revise a component pointer, associated with said database, to cause said pointer to point to said new physical version; and
- a physical ager that de-allocates memory space occupied by said original component after there have been applied to said database all transactions having a physical time stamp less than a time stamp associated with said update transaction.
- 2. The processing system as recited in claim 1 wherein said database is organized as a tree.
- 3. The processing system as recited in claim 2 wherein said tree is selected from the group consisting of:
- a B-tree,
- a T-tree, and
- a hash table.
- 4. The processing system as recited in claim 1 wherein said pointer is associated with a parent of said original component.
- 5. The processing system as recited in claim 1 wherein said pointer is located without said original component.
- 6. The processing system as recited in claim 1 wherein a read-only transaction to be applied to said database is precluded from traversing said new physical version until said update transaction is fully executed.
- 7. A method of physically versioning a database of data records organized into components, said database stored in a memory, comprising the steps of:
- creating a physical copy of an original component to be affected by an update transaction to be applied to said database;
- causing pointers in nodes of said physical copy to point to other nodes in said physical copy;
- applying said update transaction to said physical copy to create therefrom a new physical version, said original component remaining unaffected by said update transaction;
- employing an atomic word write to revise a component pointer, associated with said database, to cause said pointer to point to said new physical version; and
- de-allocating space occupied by said original component after there have been applied to said database all transactions having a physical time stamp less than a time stamp associated with said update transaction.
- 8. The method as recited in claim 7 wherein said database is organized as a tree.
- 9. The method as recited in claim 8 wherein said tree is selected from the group consisting of:
- a B-tree,
- a T-tree, and
- a hash table.
- 10. The method as recited in claim 7 wherein said pointer is associated with a parent of said original component.
- 11. The method as recited in claim 7 wherein said pointer is located without said original component.
- 12. The method as recited in claim 7 further comprising the step of precluding a read-only transaction to be applied to said database from traversing said new physical version until said update transaction is fully executed.
- 13. A main memory database system, comprising:
- a database of data records stored in a main memory and organized into a tree of components; and
- a main memory database management system having a transaction processing controller that receives and processes transactions on ones of said data records, said transactions classified either update or read-only, said transaction processing controller including:
- a component copier, associated with said transaction processing controller, that creates a physical copy of an original component to be affected by an update transaction to be applied to said database and that causes pointers in nodes of said physical copy to point to other nodes in said physical copy,
- a data updater, associated with said component copier, that applies said update transaction to said physical copy to create therefrom a new physical version, said original component remaining unaffected by said update transaction,
- a pointer updater that employs an atomic word write to revise a component pointer, associated with said database, to cause said pointer to point to said new physical version, and
- a physical ager that de-allocates memory space occupied by said original component after there have been applied to said database all transactions having a physical time stamp less than a time stamp associated with said update transaction.
- 14. The database system as recited in claim 13 wherein said tree is selected from the group consisting of:
- a B-tree,
- a T-tree, and
- a hash table.
- 15. The database system as recited in claim 13 wherein said pointer is associated with a parent of said original component.
- 16. The database system as recited in claim 13 wherein said pointer is located without said original component.
- 17. The database system as recited in claim 13 wherein a read-only transaction to be applied to said database is precluded from traversing said new physical version until said update transaction is fully executed.
CROSS-REFERENCE TO RELATED APPLICATION
This applications claims the benefit of U.S. Provisional Application Ser. No. 60/056,934, filed on Aug. 25, 1997, and entitled "System and Method for Physically Versioning Data in a Main Memory Database," commonly assigned with the present invention and incorporated herein by reference.
US Referenced Citations (9)
Non-Patent Literature Citations (2)
| Entry |
| Lyon, "Tandem's Remote Data facility", 35th IEEE Compcon, pp. 562-567, 1990. |
| Burkes et al., "Design Approaches for Real-time Transaction Processing Remote Site Recovery", 35th IEEE compcon, pp. 568-572, 1990. |