3 4
Third, this approach is not transparent to existing com- FIGS. 7-10 are flowcharts representing the operation of
puter systems. Existing computer systems expect to com- the present invention, municate with a single sequential log. This is not the case
with this approach, which requires each computer system to BEST MODE FOR CARRYING OUT THE
operate with its own sequential log. Thus, this approach 5 INVENTION
requires changes in existing computer systems. r,,, . . . ,. . , . . , ,
n 1 he present invention is directed to a system and method
Fourth, this approach does not support a single database. for enabling multiple computer systems to share a singie
This is the case, since the data records are distributed among sequential log. since only a single sequentiai iog is required,
all of the individual sequential logs (such as logs 310 and ±e present invention is less complex, easier to implement
314 in FIG. 3). As a result, each computer system does not 10 and ... and less expensive than other approaches for
have real-time access to all of the data records. This char- sharing a sequentiai log among multiple computer systems
acteristic has many negative implications. (such as that shown in FIQ 3A and FIQ 3B)
Consider the first computer system 302 in FIG. 3. This According to the present invention, from the perspective
first computer system 302 does not have real-time access to f me uter temS; data records are sequentially stored
the data records in the second log 314. Suppose that data ^ ±e ntial j in order of irreSpective of the
record C represents a deposit by a bank customer, and data ... of sucfa ... Eacfa uter tem can access
record D represents a withdraw by the same bank customer. ^ of ±e d^ ... ^ ±e ntial h m real.time.
Since it does not have real-time access to the data records in ...
the second log 314, the first computer system 302 has no The Prfent invention is transparent to existing computer knowledge of the deposit (data record C). Consequently, the 20 systeJms (such as those shown ln F}GS- 1 and 2\ In other first computer system 302 may deny the withdraw (data ^°rds' exlstlng computer systems do not need to be modirecord D) for lack of sufficient funds. Thus, this approach fied to °Perate wlth the sequential log of the present invenmay result in improper operation. tlon'
Thus, what is required is an improved system and method The Present invention is well suited for use with appli
for enabling multiple computer systems to share a sequential 25 catlons where data records must be stored in the order in
jog which they are created (i.e., journal-type data records). Such
applications include (but are not limited to) financial insti
DISCLOSURE OF INVENTION tutions (such as banks and loan companies), insurance
Briefly stated, the present invention is directed to an companies, package delivery services, food delivery
improved system and method for enabling multiple com- 30 services, etc. In these applications, the sequential log is
puter systems to share a sequential log. The present inven- preferably implemented as a hierarchical database, although
tion includes a database system comprising a sequential log. tms ls not required.
The database system receives data records generated by An approach for implementing the present invention that
multiple computer systems, and stores such data records in was contemplated by the inventors is shown in FIG. 4.
the sequential log. The database system periodically reor- 35 According to this approach, all computer systems (such as a
ganizes the data records in the sequential log such that the first computer system 402 and a second computer system
data records are stored in sequential physical memory loca- 406) have access to a single shared memory 404. The
tions of the sequential log by order of their creation. computer systems 402, 406 store data records in the shared
According to the present invention, the data records memory 404 as they are created. When the shared memory include date/time creation stamps indicating the respective 404 becomes full, its contents are written to the first availdates and times at which the data records were created. The able (free) physical block in the sequential log 408. database system utilizes the date/time creation stamps to In the example of FIG. 4, the first computer system 402 reorganize the data records in the sequential log. In has created data record D, and has stored it in the shared particular, the database system extracts data records from the 4J memory 404. The second computer system 406 has created sequential log, sorts the extracted data records by their data record E, and has stored it in the shared memory 404. date/time creation stamps, and stores the sorted data records Suppose that the second computer system 406 then crein an archive storage device (such as the sequential log). ates data record F, and stores it in the shared memory 404,
Further features and advantages of the present invention, such that the shared memory 404 becomes full. The contents
as well as the structure and operation of various embodi- 50 of the shared memory 404 are then stored in physical block
ments of the present invention, are described in detail below 410B (indicated by line 412), which is the first available
with reference to the accompanying drawings. In the (free) physical block in the sequential log 408.
drawings, like reference numbers indicate identical or func- This approach allows multiple computer systems to
tionally similar elements. access a single sequential log, and data records are sequen
BRIEF DESCRIPTION OF DRAWINGS 55 tiallv stored in the sequential log in order of creation,
irrespective of the source of such creation. Also, each
The present invention will be described with reference to computer system can access all of the data records in the
the accompanying drawings, wherein: sequential log in real-time.
FIGS. 1-3 illustrate conventional sequential logs; However, this approach is not ideal for a number of
FIG. 4 illustrates an environment wherein multiple com- 60 reasons. First, this approach is not entirely transparent to
puter systems share a single sequential log according to a existing computer systems, since they must be modified to
first embodiment of the present invention; st0re their data records in the shared memory 404, rather
FIG. 5 illustrates an environment wherein multiple com- than an internal buffer. Second, this approach is subject to
puter systems share a single sequential log according to a race condition problems. For example, if the first computer
second embodiment of the present invention; 65 system 402 creates a record M at the same time that the
FIG. 6 is a block diagram of a computer used in the second computer system 406 creates a record N, then record
environment of FIG. 5; and M will be stored in the shared memory 404 before record N