IP Library › Granted Patent US 10,242,409
Granted Patent B2
US 10,242,409 · App. 14/251,520 · Granted Mar 26, 2019

Data transaction acceleration using multiple data structure types

Inventors: Abhijit Dhakephalkar (Hyderabad, IN); David Haimes (Belmont, CA); Arunesh C. Banerjee (Fremont, CA); Zeesha Currimbhoy (Mountain View, CA); Robert Zwiebach (San Mateo, CA); Rondy Ng (Redwood Shores, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06Q40/12G06Q20/204G06Q40/02
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 10,242,409
App. No.
14/251,520
Granted
Mar 26, 2019
Kind
B2
Abstract

A method of accelerating execution of a transactions includes storing financial ledgers in a relational database, prepopulating a multidimensional data cube using the relational database, executing the transactions using the data cube by querying the data cube for aggregated balances to generate result values, generating accounting journal entries that update each account in the ledgers affected by the transactions using the result values from the data cube, posting the accounting journal entries to the financial ledgers in the relational database, repopulating the data cube with the changes resulting from the posted journal entries, and updating the aggregated balances of the data cube.

Claims (83)

1. A method of accelerating execution of a batch of transactions using two different data structures, the method comprising:

storing, by a computer system, one or more financial ledgers in a relational database system;

prepopulating, by a computer system, a multidimensional data cube using data from the one or more financial ledgers in the relational database system, wherein the multidimensional data cube comprises aggregated balances used by the batch of transactions;

receiving, by the computer system, the batch of transactions;

executing, by the computer system, the batch of transactions using data in the multidimensional data cube, wherein:

the multidimensional data cube is queried for the aggregated balances; and

the batch of transactions are executed using the queried aggregated balances of the multidimensional data cube to generate result values for each account affected by the batch of transactions;

generating, by the computer system, one or more accounting journal entries that update each account in the one or more ledgers affected by the batch of transactions using the result values from the multidimensional data cube;

posting, by the computer system, the one or more accounting journal entries to the one or more financial ledgers in the relational database system;

repopulating, by the computer system, the multidimensional data cube with changes resulting from the one or more accounting journal entries being posted to the one or more financial ledgers in the relational database system; and

updating, by the computer system, the aggregated balances of the multidimensional data cube.

2. The method of claim 1 further comprising:

receiving a point-of-view comprising information about the batch of transactions;

preparing a plurality of sequential interfaces, wherein each interface is configured to receive a portion of the batch of transactions;

determining that a first portion of the batch of transactions is defined by the point-of-view;

preventing a first interface in the plurality of sequential interfaces from being presented;

presenting the remaining interfaces in the plurality of sequential interfaces; and

receiving the remaining portions of the batch of transactions from the remaining interfaces in the plurality of sequential interfaces.

3. The method of claim 1 , wherein the batch of transactions comprises a transfer formula.

4. The method of claim 1 , wherein the batch of transactions comprises a allocation scenario.

5. The method of claim 1 , further comprising receiving a run-time-prompt variable definition that specifies a portion of the batch of transactions that should be received at run time.

6. The method of claim 5 , further comprising:

receiving, prior to executing the batch of transactions, a value for the run-time-prompt variable; and

using the value of the run-time prompt variable to execute the batch of transactions.

7. The method of claim 1 , further comprising:

generating a transaction scenario in the multidimensional data cube, wherein the transaction scenario is stored in a dedicated dimension in the multidimensional data cube; and

clearing data from the transaction scenario from the multidimensional data cube prior to posting the one or more journal entries.

8. The method of claim 7 , further comprising:

generating the one or more accounting journal entries by importing data from the transaction scenario using a general ledger interface of the relational database.

9. A non-transitory, computer-readable storage medium comprising a set of instructions which, when executed by one or more processors, causes the one or more processors to perform operations including:

storing one or more financial ledgers in a relational database system;

prepopulating a multidimensional data cube using data from the one or more financial ledgers in the relational database system, wherein the multidimensional data cube comprises aggregated balances used by a batch of transactions;

receiving the batch of transactions;

executing the batch of transactions using data in the multidimensional data cube, wherein:

the multidimensional data cube is queried for the aggregated balances; and

the batch of transactions are executed using the queried aggregated balances of the multidimensional data cube to generate result values for each account affected by the batch of transactions;

generating one or more accounting journal entries that update each account in the one or more ledgers affected by the batch of transactions using the result values from the multidimensional data cube;

posting the one or more accounting journal entries to the one or more financial ledgers in the relational database system;

repopulating the multidimensional data cube with changes resulting from the one or more accounting journal entries being posted to the one or more financial ledgers in the relational database system; and

updating the aggregated balances of the multidimensional data cube.

10. The storage medium of claim 9 , wherein the set of instructions cause the one or more processors to perform further operations including:

receiving a point-of-view comprising information about the batch of transactions;

preparing a plurality of sequential interfaces, wherein each interface is configured to receive a portion of the batch of transactions;

determining that a first portion of the batch of transactions is defined by the point-of-view;

preventing a first interface in the plurality of sequential interfaces from being presented;

presenting the remaining interfaces in the plurality of sequential interfaces; and

receiving the remaining portions of the batch of transactions from the remaining interfaces in the plurality of sequential interfaces.

11. The storage medium of claim 9 , wherein the batch of transactions comprises a transfer formula.

12. The storage medium of claim 9 , wherein the batch of transactions comprises a allocation scenario.

13. The storage medium of claim 9 , wherein the set of instructions cause the one or more processors to perform further operations including:

receiving a run-time-prompt variable definition that specifies a portion of the batch of transactions that should be received at run time.

14. The storage medium of claim 13 , wherein the set of instructions cause the one or more processors to perform further operations including:

receiving, prior to executing the batch of transactions, a value for the run-time-prompt variable; and

using the value of the run-time prompt variable to execute the batch of transactions.

15. The storage medium of claim 9 , wherein the set of instructions cause the one or more processors to perform further operations including:

generating a transaction scenario in the multidimensional data cube, wherein the transaction scenario is stored in a dedicated dimension in the multidimensional data cube; and

clearing data from the transaction scenario from the multidimensional data cube prior to posting the one or more journal entries.

16. A system comprising:

one or more processors; and

a non-transitory memory comprising a set of instructions which, when executed by the one or more processors, cause the one or more processors to perform operations including:

storing one or more financial ledgers in a relational database system;

prepopulating a multidimensional data cube using data from the one or more financial ledgers in the relational database system, wherein the multidimensional data cube comprises aggregated balances used by a batch of transactions;

receiving the batch of transactions;

executing the batch of transactions using data in the multidimensional data cube, wherein:

the multidimensional data cube is queried for the aggregated balances; and

the batch of transactions are executed using the queried aggregated balances of the multidimensional data cube to generate result values for each account affected by the batch of transactions;

generating one or more accounting journal entries that update each account in the one or more ledgers affected by the batch of transactions using the result values from the multidimensional data cube;

posting the one or more accounting journal entries to the one or more financial ledgers in the relational database system;

repopulating the multidimensional data cube with changes resulting from the one or more accounting journal entries being posted to the one or more financial ledgers in the relational database system; and

updating the aggregated balances of the multidimensional data cube.

17. The system of claim 16 , wherein the set of instructions cause the one or more processors to perform further operations including:

receiving a point-of-view comprising information about the batch of transactions;

preparing a plurality of sequential interfaces, wherein each interface is configured to receive a portion of the batch of transactions;

determining that a first portion of the batch of transactions is defined by the point-of-view;

preventing a first interface in the plurality of sequential interfaces from being presented;

presenting the remaining interfaces in the plurality of sequential interfaces; and

receiving the remaining portions of the batch of transactions from the remaining interfaces in the plurality of sequential interfaces.

18. The system of claim 16 , wherein the batch of transactions comprises a transfer formula.

19. The system of claim 16 , wherein the set of instructions cause the one or more processors to perform further operations including:

receiving a run-time-prompt variable definition that specifies a portion of the batch of transactions that should be received at run time.

20. The system of claim 16 , wherein the set of instructions cause the one or more processors to perform further operations including:

generating a transaction scenario in the multidimensional data cube, wherein the transaction scenario is stored in a dedicated dimension in the multidimensional data cube; and

clearing data from the transaction scenario from the multidimensional data cube prior to posting the one or more journal entries.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ZIP CODE PREVIOUSLY RECORDED AT REEL: 039124 FRAME: 0691. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 13, 2016
From: DHAKEPHALKAR, ABHIJIT; HAIMES, DAVID; BANERJEE, ARUNESH C.; CURRIMBHOY, ZEESHA; ZWIEBACH, ROBERT; NG, RONDY
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 039336/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2016
From: DHAKEPHALKAR, ABHIJIT; HAIMES, DAVID; BANERJEE, ARUNESH C.; CURRIMBHOY, ZEESHA; ZWIEBACH, ROBERT; NG, RONDY
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 039124/0691 →
Continuity (3)
Continuation 13458421 · Apr 27, 2012
Provisional Application 61539083 · Sep 26, 2011
Related Publication 20140222632A1 · Aug 7, 2014