Technical Field
This disclosure relates generally to data processing, and more specifically, to forward-only paged data storage management.
Description of Related Art
The approaches described in this section could be pursued but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Data processing speeds in computer systems are constantly increasing to meet the growing demands for new computing resources. However, there is also a strong demand for increasing the storage and memory addressing speeds to take full advantage of modern computer systems.
Today, many computer systems utilize various types of memory, such as a hard disk drive (HDD), solid state drive (SSD), random-access memory (RAM), and read-only memory (ROM). Unfortunately, some forms of memory often have a slower response time than any other components of a computing system. Thus, if a computing system utilizes a high performance processing unit, the overall performance may not be too high as the memory addressing speeds remain comparatively low. The reason for this is often not inherent limitations of the memory hardware, but rather the ways the data is written and read from the memory.
Certain data structures are can be used to organize data in memory units. These data structures may allow managing large amounts of data, such as, for example, large databases or internet indexing services. Some data structures may be better suited to certain applications. Some data structures are highly specialized and tailored to specific tasks.
Writing and reading data often involves a pointer. The pointer may be a virtual representation of a physical location in the memory space to which the data needs to be written or from which the data needs to be read. Traditionally, memory structures provide for a single pointer such that either a writing operation or a reading operation can be performed at one time. When the data needs to be read from the memory or written to the memory, the pointer may be virtually associated with a specific memory space or page to facilitate operations in accordance with software application requests.
Unfortunately, there are a number of limitations associated with the aforementioned approach. First of all, the routine dedicated to performing the writing procedures locates a free page which may be used to store the data. This process may be rather time-consuming in terms of both time spent on identifying free spaces and time spent on moving the pointer to such free spaces to perform the writing operations. Furthermore, storage techniques may involve finding pages, in close proximity to each other, to store data consecutively. In light of this, some data management schemes utilize rewriting procedures for rewriting portions of the data from one location to another such that all of the data is located together. This procedure is oftentimes not only time-consuming, but may also cause errors or result in a data loss.
Another disadvantage of present-day memory structures relates to the problem of storing large data objects on multiple disk drives (e.g., a redundant array of independent disks (RAID)). Data objects can be distributed across multiple disk drives via “RAID levels,” depending on the level of redundancy and performance required. Accordingly, in some circumstances, data objects can be split into a plurality of parts, each of which may be stored individually on the same or different disks. This approach leads to the increase of time necessary for data addressing since paged memory is implemented in such a way that only one pointer can be addressed to a single memory page at the same time. It means a single medium cannot provide parallelism in accessing multiple data objects or their parts.
Hence, there is still a need for improvements in memory-management schemes to increase the data writing and reading speeds and integrity of stored data.