Electrical computers and digital processing systems: memory – Storage accessing and control – Specific memory composition
Reexamination Certificate
2000-05-26
2004-01-13
Sparks, Donald (Department: 2188)
Electrical computers and digital processing systems: memory
Storage accessing and control
Specific memory composition
C707S793000, C707S793000, C707S793000, C707S793000, C707S793000, C707S793000, C707S793000
Reexamination Certificate
active
06678788
ABSTRACT:
FIELD OF THE INVENTION
The present invention pertains to a method and apparatus for storing data in a mass storage system and, in particular, for a method and apparatus for storing data in a mass storage system, and in particular a mass storage system implementing RAID technology, by data type and topological categorization and ordering.
BACKGROUND OF THE INVENTION
A continuing problem in computer systems is in providing secure, fault tolerant resources, such as communications and data storage resources, such that communications between the computer system and clients or users of the computer system are maintained in the event of failure and such that data is not lost and can be recovered or reconstructed without loss in the event of a failure. This problem is particularly severe in networked systems wherein a shared resource, such as a system data storage facility, is typically comprised of one or more system resources, such as file servers, shared among a number of clients and accessed through the system network. A failure in a shared resource, such as in the data storage functions of a file server or in communications between clients of the file server and the client file systems supported by the file server, can result in failure of the entire system. This problem is particularly severe in that the volume of data and communications and the number of data transactions supported by a shared resource such as a file server are significantly greater than within a single client system, resulting in significantly increased complexity in the resource, in the data transactions and in the client/server communications. This increased complexity results in increased probability of failure and increased difficulty in recovering from failures. In addition, the problem is multidimensional in that a failure may occur in any of a number of resource components or related functions, such as in a disk drive, in a control processor, or in the network communications.
Considering networked file server systems as a typical example of a shared system resource of the prior art, the filer server systems of the prior art have adopted a number of methods for achieving fault tolerance in client/server communications and in the file transaction functions of the file server, and for data recovery or reconstruction. These methods are typically based upon redundancy, that is, the provision of duplicate system elements and the replacement of a failed element with a duplicate element or the creation of duplicate copies of information to be used in reconstructing lost information. For example, many systems of the prior art employ multiple, duplicate parallel communications paths or multiple, duplicate parallel processing units, with appropriate switching to switch communications or file transactions from a failed communications path or file processor to an equivalent, parallel path or processor, to enhance the reliability and availability of client/file server communications and client/client file system communications. Yet other methods of the prior art utilize information redundancy to allow the recovery and reconstruction of transactions lost due to failures occurring during execution of the transactions. These methods include caching, transaction logging and mirroring wherein caching is the temporary storage of data in memory in the data flow path to and from the stable storage until the data transaction is committed to stable storage by transfer of the data into stable storage, that is, a disk drive, or read from stable storage and transferred to a recipient. Transaction logging, or journaling, temporarily stores information describing a data transaction, that is, the requested file server operation, until the data transaction is committed to stable storage, that is, completed in the file server, and allows lost data transactions to be re-constructed or re-executed from the stored information. Mirroring, in turn, is often used in conjunction with caching or transaction logging and is essentially the storing of a copy of the contents of a cache or transaction log in, for example, the memory or stable storage space of a separate processor as the cache or transaction log entries are generated in the file processor.
The use of multiple, duplicate parallel communications paths or multiple, duplicate parallel processing units, caching, transaction logging and mirroring, however, are often unsatisfactory because they are often costly in system resources and require complex administrative and synchronization operations and mechanisms to manage the caching, transaction logging and mirroring functions and subsequent transaction recovery operations, and significantly increase the file server latency, that is, the time required to complete a file transaction.
One of the most frequently used methods of the prior art for the preservation and recovery of data and file transactions is RAID technology, which is a family of industry standard methods for distributing redundant data and error correction information across a redundant array of disk drives that essentially operates as a single, very large mass storage device, which is often implemented as a networked file server. RAID technology allows a failed disk drive to be replaced by a redundant drive and allows the data in the failed disk to be reconstructed from the redundant data and error correction information.
The increased power and speed of contemporary networked computer systems, however, has resulted in a corresponding demand for significantly increased mass storage capability because of the increased volumes of data dealt with by the systems and the increased size of the operating system and applications programs executed by such systems. Most mass storage devices, however, are characterized by relatively low data access and transfer rates compared to the computer systems with operate with the data and programs stored therein. As a consequence, and although the mass storage capabilities of host computer systems has been increased significantly, the speed of data read and write access has not increased proportionally. While there have been many attempts in the prior art to solve the problem of data access speed for mass storage systems, they have typically taken the form of increasing the number of disk drives, for example, to store related data items and their associated parity information across several drives in parallel, thereby overlapping the initial data access time to each drive and increasing the efficiency of bus transfers. An extreme manifestation of this approach was found, for example, in the Thinking machines Corporation CM-2 system which operated with 39 bit words, each containing 32 data bits and 7 parity bits, and stored the bits of each word in parallel across 39 disk drives, on bit to each drive.
A more typical method for increasing the speed of data read and write access is “striping”, wherein data and parity information are spread over several disk drives in an pattern referred to as a “stripe” and wherein a “stripe” is the amount of information for which for which a given RAID system generates and stores parity. Because the parity information for a stripe is generated for and from all of the data in a stripe, a stripe is effectively the smallest unit of data storage in a RAID striped system, that is, is stripe is always written as an entity. A RAID 5 system, for example, uses five disk drives and a stripe is comprised of four blocks of information, with one block being stored on each of four of the disk drives and with a fifth block containing parity information for the four information blocks being stored in the fifth disk drive. Striping is customarily employed to increase the speed with which information may be written to or read from the disk drives of a mass storage system as the information is distributed across the disk drives so that reads and writes of segments of information from and to the disk drives can be overlapped. Striping also facilitates the reconstruction of information in the event of a disk drive failure when used w
Davis and Bujold, P.L.L.C.
EMC Corporation
Namazi Meldi
Sparks Donald
LandOfFree
Data type and topological data categorization and ordering... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data type and topological data categorization and ordering..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data type and topological data categorization and ordering... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3213595