IP Library Granted Patent US 7,272,609
Granted Patent B1
US 7,272,609 · App. 10/756,641 · Granted Sep 18, 2007

In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,272,609
App. No.
10/756,641
Granted
Sep 18, 2007
Kind
B1
Abstract

A solution may be provided in which a cache may assign a version to each object that it caches. The version may be saved in a database along with the object. Each time the business logic accesses the cache for a dependent object, such as a read from the bit mask field of the new parent member, the version of the object checked in the cache and its identification may be saved on a dependency list. Once changes to the object are performed, the business logic may issue a commit command. The cache may then verify that the version of each object on the dependency list matches the version that is in the database. If an object on the dependency list either does not exist in the database, or exists with another version, then the transaction may be canceled.

Claims (34)

1. A method for editing hierarchical data, the method comprising:

receiving a command to access a first member of a data hierarchy containing multiple members;

accessing the first member in a local memory, the local memory periodically updated with changes from the database;

caching the first member in a cache the cache assigning a version to each cached object;

determining that the first member has a dependency with one or more other members of the data hierarchy, the first member having a dependency with the one or more other members of the data hierarchy if the first member cannot be modified without modifying or reading the state of the one or more other members of the data hierarchy;

saving the dependency by adding a current version of the first member and a member identification corresponding to the first member to a dependency list, the dependency list indicating the determined dependency, wherein saving the dependency further includes adding an object identification referenced by the command to the dependency list:

returning the first member and verifying a change made to the first member;

receiving a command to commit changes to the first member;

receiving a command to save changes to the first member;

adding information regarding the first member to a save list;

using the dependency to determine if a version of the first member stored in a database matches the version of the first member returned; and

returning an error to a user if the version of the first member stored in the database does not match a version of the hierarchical data returned.

2. The method of claim 1 , further comprising:

determining if said command to access the first member is a tracking command by looking for a tracking flag in a parameter of said command.

3. The method of claim 2 , wherein said tracking flag is set if the first member is dependent on previously accessed member of the data hierarchy in a same transaction.

4. The method of claim 1 , further comprising recording changes to the first member in the database for access by other caches.

5. An apparatus for editing hierarchical data, the apparatus rising:

a local memory, a program controlling a cache, the program including:

means for receiving a command to access a first member of a data hierarchy containing multiple members of the data item having the hierarchical data;

means for accessing the first member in a local memory, the local memory periodically undated with changes from the database;

means for caching the first member and assigning a version to each cached object;

means for determining that the first member has a dependency with one or more other members of the data hierarchy, the first member having a dependency with the one or more other members of the data hierarchy if the first member cannot be modified without modifying or reading the state of the one or more other members of the data hierarchy;

means for saving the dependency by adding a current version of the first member and a member identification corresponding to the first member to a dependency list, the dependency list indicating the determined dependency, wherein saving the dependency further includes adding an object identification referenced by the command to the dependency list;

means for returning the first member and verifying a change made to the first member;

means for receiving a command to commit changes to the first member;

means for receiving a command to save chances to the first member;

means for adding information regarding the first member to a save list;

means for using the dependency to determine if a version of the first member stored in a database matches the version of the first member returned; and

means for returning an error to a user if the version of the first member stored in the database does not match a version of the hierarchical data returned.

6. The apparatus of claim 5 , further comprising:

means for determining if said command to access the first member is a tracking command by looking for a tracking flag in a parameter of said command.

7. The apparatus of claim 6 , further comprising means for tracking flag is set if the first member is dependent on previously accessed member of the data hierarchy in a same transaction.

8. The apparatus of claim 5 , further comprising:

means for recording changes to the first member in the database for access by other caches.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: HYPERION SOLUTIONS CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025986/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2011
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025747/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2004
From: BAKEY, SHAUN
To: HYPERION SOLUTIONS CORPORATION
Reel/Frame 014903/0076 →