IP Library Granted Patent US 7,016,913
Granted Patent B2
US 7,016,913 · App. 10/103,158 · Granted Mar 21, 2006

Method, system, data structures, and article of manufacture for implementing a persistent object

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,016,913
App. No.
10/103,158
Granted
Mar 21, 2006
Kind
B2
Abstract

Provided are a method, system, data structures and article of manufacture for implementing an array of persistent elements. A class of the array of persistent elements has a constructor. A call is received from an application executing in a runtime environment to the constructor. The constructor is processed to create an empty array of persistent elements. A persistent element is included into the array of persistent elements within the runtime environment by storing persistent data of the added persistent element in a data record and the address of the data record at a corresponding index record.

Claims (131)

1. A method for implementing a vector of persistent objects, comprising:

(i) providing a constructor for a class of the vector of persistent objects;

(ii) in response to receiving a call to the constructor from an application executing within a runtime environment, performing:

(a) processing the constructor; and

(b) creating an empty vector of persistent objects;

(iii) including a persistent object into the vector within the runtime environment;

(iv) in response to including the persistent object into the vector, storing persistent data for the added persistent object into a data record; and

(v) in response to including the persistent object into the vector, storing an address of the data record at a corresponding index record.

2. The method of claim 1 , wherein the class comprises an extension of a Java Vector class.

3. The method of claim 1 , wherein the persistent objects comprise an object oriented database and wherein the database is manipulated by method calls on the persistent objects, wherein the method calls retain the persistent objects in a persistent state.

4. The method of claim 1 , further comprising:

storing the data record in a data file;

storing the index record in an index file, wherein the data file stores a plurality of data records, and wherein the index file stores a plurality of index records.

5. The method of claim 4 , wherein the address of the data record is an offset into the data file, wherein the offset is calculated from a starting address of the data file.

6. The method of claim 4 , wherein the data file and the index file are stored within a single entity.

7. The method of claim 4 , further comprising:

receiving a request for accessing one persistent object in the vector in the runtime environment;

locating an index record corresponding to the requested one persistent object from within the index file;

locating from the index record corresponding to the requested one persistent object, a corresponding address of the data record holding the persistent data of the requested one persistent object; and

providing access to the persistent data of the requested one persistent object from the located index record.

8. The method of claim 4 , further comprising:

receiving an instruction to add a new persistent object to the vector in the runtime environment appending bytes to the index file to include a new address of the persistent data for the new persistent object;

appending bytes to the index file to include a new address object of the persistent data for the new persistent object;

storing in the appended bytes to the index file the new address obtained by incrementing a last data record address; and

appending the persistent data for the new persistent object to a new data record following the last data record in the data file.

9. The method of claim 4 , further comprising:

receiving an instruction for removing one persistent object of the vector in the runtime environment;

adjusting contents of the index file to delete a stored address for persistent data corresponding to the one persistent object to remove; and

marking persistent data for the one persistent object to remove in the data file as not in use.

10. The method of claim 4 , further comprising:

receiving an instruction to update a new object in the runtime environment; storing at a first address in the data file persistent data for the new object; and updating the index file to store the first address.

11. The method of claim 4 , further comprising:

receiving an instruction to insert a new persistent object at a location in the vector in the runtime environment;

increasing a size of the index file;

shifting contents in the index file for all objects indexed to indices higher than the index record corresponding to the location in the vector;

storing persistent data of the new persistent object at a first data record; and

updating a first index record corresponding to the location in the vector with the address of the first data record.

12. A system for implementing a vector of persistent objects, comprising:

(i) a runtime environment;

(ii) means for providing a constructor for a class of the vector of persistent objects;

(iii) in response to receiving a call to the constructor from an application executing within the runtime environment, means for performing:

(a) processing the constructor; and

(b) creating an empty vector of persistent objects; and

(iv) means for including a persistent object into the vector within the runtime environment;

(v) means for storing persistent data for the added persistent object into a data record in response to including the persistent object into the vector; and

(vi) means for storing an address of the data record at a corresponding index record in response to including the persistent object into the vector.

13. The system of claim 12 , further comprising:

means for storing the data record in a data file;

means for storing the index record in an index file, wherein the data file stores a plurality of data records, and wherein the index file stores a plurality of index records.

14. The system of claim 13 , further comprising:

means for receiving a request for accessing one persistent object in the vector in the runtime environment;

means for locating an index record corresponding to the requested one persistent object from within the index file;

means for locating from the index record corresponding to the requested one persistent object, a corresponding address of the data record holding the persistent data of the requested one persistent object; and

means for providing access to the persistent data of the requested one persistent object from the located index record.

15. The system of claim 13 , further comprising:

means for receiving an instruction to add a new persistent object to the vector in the runtime environment;

means for appending bytes to the index file to include a new address of the persistent data for the new persistent object;

means for storing in the appended bytes to the index file the new address obtained by incrementing a last data record address; and

means for appending the persistent data for the new persistent object to a new data record following the last data record in the data file.

16. The system of claim 13 , further comprising:

means for receiving an instruction for removing one persistent object of the vector in the runtime environment;

means for adjusting contents of the index file to delete a stored address for persistent data corresponding to the one persistent object to remove; and

means for marking persistent data for the one persistent object to remove in the data file as not in use.

17. The system of claim 13 , further comprising:

means for receiving an instruction to update a new object in the runtime environment;

means for storing at a first address in the data file persistent data for the new object; and

means for updating the index file to store the first address.

18. The system of claim 13 , further comprising:

means for receiving an instruction to insert a new persistent object at a location in the vector in the runtime environment;

means for increasing a size of the index file;

means for shifting contents in the index file for all objects indexed to indices higher than the index record corresponding to the location in the vector;

means for storing persistent data of the new persistent object at a first data record; and

means for updating a first index record corresponding to the location in the vector with the address of the first data record.

19. A system for implementing a vector of persistent objects, comprising:

(i) a processor;

(ii) a computer readable medium accessible to the processor; and

(iii) a program logic including code capable of causing the processor to perform:

(i) providing a constructor for a class of the vector of persistent objects;

(ii) in response to receiving a call to the constructor from an application executing within a runtime environment, performing:

(a) processing the constructor; and

(b) creating an empty vector of persistent objects; and

(iv) including a persistent object into the vector of persistent objects within the runtime environment by:

(a) storing persistent data for the added persistent object into a data record, wherein the data record is stored within the computer readable medium; and

(b) storing an address of the data record at a corresponding index record, wherein the index record is stored within the computer readable medium.

20. The system of claim 19 , further comprising:

a data file stored within the computer readable medium, wherein the data file stores the data record; and

an index file within the computer readable medium wherein the index file stores the index record, and wherein the data file stores a plurality of data records, and wherein the index file stores a plurality of index records.

21. A computer readable medium including data structures for implementing an vector of persistent objects, comprising:

(i) a constructor for a class of the vector of persistent objects;

(ii) an empty vector of persistent objects, wherein in response to receiving a call to the constructor from an application executing within a runtime environment the constructor is processed and the empty vector of persistent objects created;

(iii) a data record, wherein a persistent object is included into the vector of persistent objects within the runtime environment by storing persistent data for the added persistent object into the data record; and

(iv) a corresponding index record, wherein the address of the data record is stored at the corresponding index record.

22. An article of manufacture including code for implementing a vector of persistent objects, wherein the code is capable of causing operations comprising:

(i) providing a constructor for a class of the vector of persistent objects;

(ii) in response to receiving a call to the constructor from an application executing within a runtime environment, performing:

(a) processing the constructor; and

(b) creating an empty vector of persistent objects;

(iii) including a persistent object into the vector within the runtime environment;

(iv) in response to including the persistent object into the vector, storing persistent data for the added persistent object into a data record; and

(v) in response to including the persistent object into the vector, storing an address of the data record at a corresponding index record.

23. The article of manufacture of claim 22 , wherein the class comprises an extension of a Java Vector class.

24. The article of manufacture of claim 22 , wherein the persistent objects comprise an object oriented database and wherein the database is manipulated by method calls on the persistent objects, wherein the method calls retain the persistent objects in a persistent state.

25. The article of manufacture of claim 22 , further comprising:

storing the data record in a data file;

storing the index record in an index file, wherein the data file stores a plurality of data records, and wherein the index file stores a plurality of index records.

26. The article of manufacture of claim 25 , wherein the address of the data record is an offset into the data file, wherein the offset is calculated from a starting address of the data file.

27. The article of manufacture of claim 25 , wherein the data file and the index file are stored within a single entity.

28. The article of manufacture of claim 25 , further comprising:

receiving a request for accessing one persistent object in the vector in the runtime environment;

locating an index record corresponding to the requested one persistent object from within the index file;

locating from the index record corresponding to the requested one persistent object, a corresponding address of the data record holding the persistent data of the requested one persistent object; and

providing access to the persistent data of the requested one persistent object from the located index record.

29. The article of manufacture of claim 25 , further comprising:

receiving an instruction to add a new persistent object to the vector in the runtime environment;

appending bytes to the index file to include a new address of the persistent data for the new persistent object;

storing in the appended bytes to the index file the new address obtained by incrementing a last data record address; and

appending the persistent data for the new persistent object to a new data record following the last data record in the data file.

30. The article of manufacture of claim 25 , further comprising:

receiving an instruction for removing one persistent object of the vector in the runtime environment;

adjusting contents of the index file to delete a stored address for persistent data corresponding to the one persistent object to remove; and

marking persistent data for the one persistent object to remove in the data file as not in use.

31. The article of manufacture of claim 25 , further comprising:

receiving an instruction to update a new object in the runtime environment;

storing at a first address in the data file persistent data for the new object; and

updating the index file to store the first address.

32. The article of manufacture of claim 25 , further comprising:

receiving an instruction to insert a new persistent object at a location in the away vector in the runtime environment;

increasing a size of the index file;

shifting contents in the index file for all objects indexed to indices higher than the index record corresponding to the location in the vector;

storing persistent data of the new persistent object at a first data record; and

updating a first index record corresponding to the location in the vector with the address of the first data record.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2002
From: LEONG, TERENCE; TAYLOR, JULIAN S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012734/0971 →