RE: Looking more like - ...Silversurfer...
posted on
Apr 27, 2006 07:56AM
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=/netahtml/search-bool.html&r=29&f=G&l=50&co1=AND&d=ptxt&s1=5787445&OS=5787445&RS=5787445
Gil...
``SUMMARY OF THE INVENTION
This problem is overcome by the present invention which provides a method of data management for writing a logical data record held in volatile memory of a data processing system as a set of keyed physical records in non-volatile memory, the maximum length of said physical records being shorter than said logical data record, comprising the steps of: notionally dividing said logical record into a plurality of contiguous data portions each of which will fit into a physical record; writing a first physical record key adjacent a first data portion at one end of said logical record in said volatile memory; initially copying said first data portion together with said first key to a first physical record of non-volatile memory; overwriting part of said first data portion in volatile memory with a second physical record key for a second data portion adjacent to said first data portion in said volatile memory; and subsequently copying said second data portion together with said second key to a second physical record of non-volatile memory.
By overwriting portions of the original record in main memory with the appropriate key, the next physical record for storage can be assembled in situ without the need for an intermediate buffer.
The physical record data set may be created and managed by any appropriate file or database manager, not only VSAM, and the memory medium on which it is stored can be any appropriate medium, not only disk storage, for example tape storage or non-volatile semiconductor memory.
Preferably, the dividing step comprises determining the length of the logical record and computing the number of physical records sufficient to contain the logical record data.
The preferred method also comprises generating a unique key sequence number for each physical record and repeating said overwriting and subsequent copying steps for physical record keys containing next sequential key sequence numbers and logical record portions until all of said logical record has been stored in physical records of said key sequential data set. Although it is most convenient to allocate key numbers sequentially, this is not absolutely necessary as long as each physical record has a unique key.
It is further preferred that the length of the logical record is stored with said physical record data set.
Preferably, the length of the logical record is written into a header of each physical record which also contains the key but, in theory, it need be stored only once.
If the logical record has a main key, it is preferable that this is written into each of said physical record keys. However, the invention is not limited to keyed long records.
If the logical record does have a main key, it should preferably be a header in terms of main memory storage address though, in theory, the invention could be made to work with a different key position by stripping the key out and moving it to one end of the record in a so-called single-swap operation.
Also the physical record keys should preferably be written as headers before their respective logical record data portions, the key sequence numbers then being assigned in reverse order.
To prevent overwriting by another multi-tasking process, in the above preferred header arrangement the lowest sequence number physical record should be locked until all of the physical records making up the logical record have been written. This avoids inconsistent record contents or process dead-locks.
It is also possible to negate the key sequence numbers prior to them being written, which can be advantageous with particular file management methods.
A logical record written by the above method is preferably reassembled from the physical record data set by copying said second physical record into an assigned area of volatile memory and copying said first physical record into an adjacent portion of said assigned area such that its data portion overwrites the key portion of said copied first physical record in volatile storage.
This is preferably achieved by reading the stored length of the logical record, assigning an appropriately sized area of main memory to receive the logical record; copying the last written physical record into one end of said area; and copying in reverse order to the writing process the subsequent physical records into successive portions of the assigned area such that the data portions overwrite the previously copied key portions and abut each other so as to reconstitute the logical record.
It is preferable to copy the last written physical record into a temporary buffer in order to determine the stored length of the logical record in advance.
Preferably, the physical record with the lowest sequence number is locked first during reassembly.
If desired, the final key sequence number may then be removed from the reconstituted logical record. Any main key portion associated with the logical record may be retained and, optionally, moved to an original location in the record.
Additionally, the invention also provides a data management system and a computer program each for implementing the method of the invention.``