IP Library Granted Patent US 8,856,092
Granted Patent B2
US 8,856,092 · App. 13/546,121 · Granted Oct 7, 2014

Systems and methods for managing databases

Inventors: Joachim Wester (Vaxholm, SE); Erik Ohlsson (Asarp, SE); Per Samuelsson (Stockholm, SE); Peter Idestam-Almquist (Gustavsberg, SE)
Assignee: Starcounter AB
G06F17/30607G06F17/30377
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 8,856,092
App. No.
13/546,121
Granted
Oct 7, 2014
Kind
B2
Abstract

Systems and methods for managing databases are disclosed. One system includes a processor-addressable physical memory and a processor in communication with the processor-addressable physical memory and configured to execute an environment and to allocate an environment memory to the environment. In such a system, the environment is configured to maintain a database of objects in a database memory within the environment memory. An application executes in an application memory within the environment memory, and upon instantiation of a database object, the application environment allocates memory in the database for the database object, the database providing master storage for the database object. Upon an instruction to obtain the database object from said application, the environment provides to the application a reference to the database object; and upon an access operation on the database object by the application, provides to the application direct access to data of said database object.

Claims (71)

1. A system comprising:

a processor-addressable physical memory; and

a processor in communication with said processor-addressable physical memory and configured to execute an application operating environment and to allocate an operating environment memory to said application operating environment, said operating environment memory corresponding to a physical memory and said application operating environment configured to:

maintain a database configured to store one or more objects in a database image memory within said operating environment memory, the database image memory process-isolated from applications executed by the application operating environment;

execute a first application in a first application memory within said operating environment memory, said first application memory process-isolated from said database image memory;

upon instantiation of a database object by the first application, allocate memory in said database image memory for said database object, said database in said database image memory providing master storage for said database object;

upon an instruction to obtain said database object by code of said first application, provide to said first application a reference to said database object;

upon an access operation on an instance attribute or method of said database object by said first application, provide to said first application a processor-addressable memory address in said database image memory and provide direct access by said first application to data of said database object using said processor-addressable memory address;

provide said processor-addressable memory address to a first code segment in a first transactional scope, said first code segment configured to directly access and update said instance attribute of said database object using said processor-addressable memory address;

provide said updated instance attribute to said first code segment in said first transactional scope after said update;

commit said updated instance attribute responsive to said first code segment closing said first transactional scope

provide an unmodified value of said instance attribute to said second code segment in a second transactional scope in said application operating environment before said commit; and

provide said updated value of said instance attribute to a third code segment in a third transactional scope in said application operating environment, said third transactional scope initiated after said commit.

2. The system of claim 1 , wherein said application operating environment is further configured to:

upon an instantiation of a first non-database object by said first application, allocate memory in said first application memory for said first non-database object; and

upon an access operation on an instance attribute of said first non-database object by said first application, provide to said first application direct access to data of said non-database object at a second processor-addressable memory address in said first application memory.

3. The system of claim 1 , wherein said application operating environment is further configured to:

upon an instruction to obtain said database object by code of a second application, provide to said second application said reference to said database object, said second application configured to execute in a second application memory within said operating environment memory, said second application memory process-isolated from said first application memory and said database image memory; and

upon an access operation on an instance attribute of said database object by said second application, provide to said second application said processor-addressable memory address in said database image memory and provide direct access to data of said database object at said processor-addressable memory address in said database image memory.

4. The system of claim 1 , wherein said first code segment and said second code segment execute substantially simultaneously.

5. The system of claim 1 , wherein said first application comprises said first code segment and said second application comprises said second code segment.

6. The system of claim 1 , wherein said instruction to obtain said database object comprises only native programming language operators.

7. The system of claim 6 , wherein said instruction to obtain said database object further comprises a standard structure query language request.

8. The system of claim 1 , wherein said application operating environment is further configured to:

delete an object in said database in response to a request from an application,

provide an invalid address to subsequent requests for said object, and

return an error in response to subsequent attempts to access said object.

9. The system of claim 1 , further comprising a non-processor-addressable memory controller in communication with a non-processor-addressable physical memory and said processor-addressable physical memory, and wherein said application operating environment is further configured to:

store a starting operating environment logical memory address and an ending operating environment logical memory address corresponding to one or more of said one or more objects in said database;

transmit a signal to said non-processor-addressable memory controller, said signal configured to cause said non-processor-addressable memory controller to store the values stored from said starting operating environment logical memory address to said ending operating environment logical memory address at sequential non-processor-addressable memory locations in said non-processor-addressable physical memory.

10. The system of claim 9 , wherein said non-processor-addressable memory controller is configured to access said processor-addressable physical memory by direct memory access.

11. A non-transitory computer-readable medium comprising processor executable or interpretable instructions in the form of program code, the program code configured to cause a processor to execute a method comprising:

maintaining a database configured to store one or more objects in a database image memory within an operating environment memory;

upon selection of a first application, executing the first application in a first application memory within said operating environment memory, said first application memory process-isolated from said database image memory;

upon instantiation of a database object by a first application, allocating memory in said database image memory for said database object, said database in said database image memory providing master storage for said database object, said first application configured to execute in a first application memory within said operating environment memory, said first application memory process-isolated from said database image memory;

upon an instruction to obtain said database object by code of said first application, providing to said first application a reference to said database object;

upon an access operation on an instance attribute or method of said database object by said first application, providing to said first application a processor-addressable memory address in said database image memory and providing direct access by said first application to data of said database object using said processor-addressable memory address;

providing said processor-addressable memory address to a first code segment in a first transactional scope, said first code segment configured to directly access and update said instance attribute of said database object using said processor-addressable memory address;

providing said updated instance attribute to said first code segment in said first transactional scope after said update;

committing said updated instance attribute responsive to said first code segment closing said first transactional scope

providing an unmodified value of said instance attribute to said second code segment in a second transactional scope in said application operating environment before said commit; and

providing said updated value of said instance attribute to a third code segment in a third transactional scope in said application operating environment, said third transactional scope initiated after said commit.

12. The non-transitory computer-readable medium of claim 11 , further comprising:

upon an instruction to obtain said database object by code of a second application, providing to said second application said reference to said database object, said second application configured to execute in a second application memory within said operating environment memory, said second application memory process-isolated from said first application memory and said database image memory; and

upon an access operation on an instance attribute of said database object by said second application, providing to said second application said processor-addressable memory address in said database image memory and provide direct access to data of said database object at said processor-addressable memory address in said database image memory.

13. The non-transitory computer-readable medium of claim 11 , wherein said application operating environment is further configured to:

upon an instantiation of a first non-database object by said first application, allocating memory in said first application memory for said first non-database object; and

upon an access operation on an instance attribute of said first non-database object by said first application, providing to said first application direct access to data of said non-database object at a second processor-addressable memory address in said first application memory.

14. The non-transitory computer-readable medium of claim 11 , wherein said first code segment and said second code segment execute substantially simultaneously.

15. The non-transitory computer-readable medium of claim 11 , wherein said first application comprises said first code segment and said second application comprises said second code segment.

16. The non-transitory computer-readable medium of claim 11 , wherein said instruction to obtain said database object comprises only native programming language operators.

17. The non-transitory computer-readable medium of claim 16 , wherein said instruction to obtain said database object further comprises a standard structure query language request.

18. The non-transitory computer-readable medium of claim 11 , further comprising:

deleting an object in said database in response to a request from an application,

providing an invalid address to subsequent requests for said object, and

returning an error in response to subsequent attempts to access said object.

19. The non-transitory computer-readable medium of claim 11 , further comprising:

storing a starting operating environment logical memory address and an ending operating environment logical memory address corresponding to one or more of said one or more objects in said database;

transmitting a signal to a non-processor-addressable memory controller, said signal configured to cause said non-processor-addressable memory controller to store the values stored from said starting operating environment logical memory address to said ending operating environment logical memory address at sequential non-processor-addressable memory locations in said non-processor-addressable physical memory.

20. The non-transitory computer-readable medium of claim 19 , wherein said non-processor-addressable memory controller is configured to access said processor-addressable physical memory by direct memory access.

21. A method comprising:

maintaining a database configured to store one or more objects in a database image memory within an operating environment memory;

executing a first application in a first application memory within said operating environment memory, said first application memory process-isolated from said database image memory;

upon instantiation of a database object by the first application, allocating memory in said database image memory for said database object, said database in said database image memory providing master storage for said database object;

upon an instruction to obtain said database object by code of said first application, providing to said first application a reference to said database object; and

upon an access operation on an instance attribute or method of said database object by said first application, providing to said first application a processor-addressable memory address in said database image memory and providing direct access by said first application to data of said database object using said processor-addressable memory address;

providing said processor-addressable memory address to a first code segment in a first transactional scope, said first code segment configured to directly access and update said instance attribute of said database object using said processor-addressable memory address;

providing said updated instance attribute to said first code segment in said first transactional scope after said update;

committing said updated instance attribute responsive to said first code segment closing said first transactional scope

providing an unmodified value of said instance attribute to said second code segment in a second transactional scope in said application operating environment before said commit; and

providing said updated value of said instance attribute to a third code segment in a third transactional scope in said application operating environment, said third transactional scope initiated after said commit.

Assignments (3)
SECURITY INTEREST Recorded Nov 22, 2019
From: STARCOUNTER AB
To: TULEKASTELLET AB
Reel/Frame 051087/0496 →
SECURITY INTEREST Recorded Nov 22, 2019
From: STARCOUNTER AB
To: TIISMANN INVEST AB; JANSON, GÖRAN
Reel/Frame 051087/0529 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2012
From: WESTER, JOACHIM; IDESTAM-ALMQUIST, PETER; OHLSSON, ERIK; SAMUELSSON, PER
To: STARCOUNTER AB
Reel/Frame 028561/0471 →
Continuity (2)
Continuation 12571521 · Oct 1, 2009
Related Publication 20120278278A1 · Nov 1, 2012