Log based data architecture for a transactional message queuing system
First Claim
1. A message queuing system, comprising:
- means for transmitting a transactional message having an associated message queue including the state of the queue, message queue data and log records; and
, means at a recipient site for storing said transactional message on a single disk in a single file utilizing a combined on-disk file structure for said message queue data and said log records.
2 Assignments
0 Petitions
Accused Products
Abstract
A message queuing system is provided that saves and stores messages and their state in an efficient single file on a single disk to enable rapid recovery from server failures. The single disk, single file storage system into which messages and their states are stored eliminates writes to three different disks, the data disk, the index structure disk and the log disk. The single disk, single file storage is made possible by clustering all information together in a contiguous space on the same disk. The result is that all writes are contained in one sweeping motion of the write head in which the write head moves only in one direction and only once to find the area where it needs to start writing messages and their states are stored. In order to keep track of the clustered information, a unique Queue Entry Map Table is used which includes control information, message blocks and log records in conjunction with single file disk storage that allows the write head never to have to back-up to traverse saved data when writing new records. The system also permits locating damaged files without the requirement of scanning entire log files.
198 Citations
9 Claims
-
1. A message queuing system, comprising:
-
means for transmitting a transactional message having an associated message queue including the state of the queue, message queue data and log records; and
,means at a recipient site for storing said transactional message on a single disk in a single file utilizing a combined on-disk file structure for said message queue data and said log records. - View Dependent Claims (2, 3, 4, 5, 6, 7)
a most recent queue entry management table placed on said disk at a preselected location, said table having a control information block, at least one message block and at least one log record.
-
-
4. The system of claim 3, wherein said preselected location corresponds to a fixed offset from the beginning of said file, thus to permit rapid identification of a most recent state of the message queue data.
-
5. The system of claim 4, further comprising:
means at said recipient site for recovering said message queue upon interruption of transmitting said transactional message responsive to the most recent queue entry management table prior to said control information, whereby a last valid information received and stored is located from said control information contained in said most recent queue entry management table.
-
6. The system of claim 5, wherein said file is divided into sectors, and wherein said offset places said most recent queue entry management table at the beginning of a sector such that said table constitutes a checkpoint for the location of a sector having valid information, whereby the last valid information prior to said interruption may be rapidly located through the identification of the sector containing said most recent table.
-
7. The system of claim 2, wherein a most recent queue entry management table is stored in contiguous blocks.
-
8. A single electronic message queue file, comprising:
-
a first control block;
a second control block;
a first plurality of contiguous data blocks disposed between the first and the second control blocks;
a second plurality of contiguous data blocks disposed between the first and the second control blocks; and
a plurality of contiguous log record blocks having information associated with a change made to one of the first and the second plurality of contiguous data blocks, and disposed between the first and the second plurality of contiguous data blocks. - View Dependent Claims (9)
-
Specification