IP Library Granted Patent US 7,505,997
Granted Patent B1
US 7,505,997 · App. 10/838,618 · Granted Mar 17, 2009

Methods and apparatus for identifying cached objects with random numbers

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,505,997
App. No.
10/838,618
Granted
Mar 17, 2009
Kind
B1
Abstract

Methods and apparatus for obtaining a value from an associative dictionary are disclosed. Generally, an associative dictionary maps one or more keys to one or more values, enabling retrieval of each of the values using the corresponding one of the keys. The associative dictionary may be implemented using a variety of data structures such as an array or other suitable data structure. A representation structure including a data portion storing a particular data element (e.g., object) is obtained, where the representation structure further includes a reference counter field storing a reference counter indicating a number of wrapper structures referencing the representation structure and an identifier field storing an identifier identifying the data element. The identifier is obtained from the identifier field of the representation structure and provided as a key to the associative dictionary. This enables a value corresponding to the identifier to be obtained from the associative dictionary, thereby enabling the data element to be used as a key to the associative dictionary. In addition, equivalence of two data elements may be ascertained via comparison of the corresponding identifiers.

Claims (27)

1. A method of storing a data element, comprising:

generating a representation structure including a data portion for storing a data element, a reference counter field for storing a reference counter indicating a number of wrapper structures referencing the representation structure, and an identifier field for storing an identifier identifying the data element, wherein the wrapper structure is an object;

storing a data element in the data portion of the representation structure; and

storing an identifier identifying the data element in the identifier field of the representation structure, wherein the identifier is independent of a memory location of the data element.

2. The method as recited in claim 1 , wherein the identifier is not a function of the data element that is stored in the data portion of the representation structure.

3. The method as recited in claim 1 , further comprising:

obtaining and storing the identifier when the data element is at least one of created and stored.

4. The method as recited in claim 1 , wherein the data element is an object, the method further comprising:

instantiating the object; and

generating the identifier identifying the data element.

5. The method as recited in claim 4 , wherein generating is performed when the object is instantiated.

6. The method as recited in claim 5 , wherein the identifier is a random number.

7. The method as recited in claim 1 , wherein the identifier is a random number.

8. A computer-readable medium storing thereon computer-readable instructions for storing a data element, the computer-readable instructions when executed on a computer enables actions comprising:

generating a representation structure including a data portion for storing a data element, a reference counter field for storing a reference counter indicating a number of wrapper structures referencing the representation structure, and an identifier field for storing an identifier identifying the data element, wherein the wrapper structure is an object;

storing a data element in the data portion of the representation structure; and

storing an identifier identifying the data element in the identifier field of the representation structure, wherein the identifier is independent of a memory location of the data element.

9. An apparatus for storing a data element, comprising:

software and hardware means for generating a representation structure including a data portion for storing a data element, a reference counter field for storing a reference counter indicating a number of wrapper structures referencing the representation structure, and an identifier field for storing an identifier identifying the data element, wherein the wrapper structure is an object;

software and hardware means for storing a data element in the data portion of the representation structure; and

software and hardware means for storing an identifier identifying the data element in the identifier field of the representation structure, wherein the identifier is independent of a memory location of the data element.

10. An apparatus for storing a data element, comprising:

a processor; and

a memory, at least one of the processor and the memory being adapted for:

generating a representation structure including a data portion for storing a data element, a reference counter field for storing a reference counter indicating a number of wrapper structures referencing the representation structure, and an identifier field for storing an identifier identifying the data element, wherein the wrapper structure is an object;

storing a data element in the data portion of the representation structure; and

storing an identifier identifying the data element in the identifier field of the representation structure, wherein the identifier is independent of a memory location of the data element.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2004
From: GELFENBAIN, ALEXANDER
To: SUN MICROSYSTEMS, INC.
Reel/Frame 015300/0407 →