BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a high level diagram of a FAB mass-storage system according to one embodiment of the present invention.
FIG. 2 shows a high-level diagram of an exemplary FAB brick according to one embodiment of the present invention.
FIGS. 3-4 illustrate the concept of data mirroring.
FIG. 5 shows a high-level diagram depicting erasure coding redundancy.
FIG. 6 shows a 3+1 erasure coding redundancy scheme using the same illustration conventions as used in FIGS. 3 and 4.
FIG. 7 illustrates the hierarchical data units employed in a current FAB implementation that represent one embodiment of the present invention.
FIGS. 8A-D illustrate a hypothetical mapping of logical data units to physical disks of a FAB system that represents one embodiment of the present invention.
FIG. 9 illustrates, using a different illustration convention, the logical data units employed within a FAB system that represent one embodiment of the present invention.
FIG. 10A illustrates the data structure maintained by each brick that describes the overall data state of the FAB system and that represents one embodiment of the present invention.
FIG. 10B illustrates a brick segment address that incorporates a brick role according to one embodiment of the present invention.
FIGS. 11A-H illustrate various different types of configuration changes reflected in the data-description data structure shown in FIG. 10A within a FAB system that represent one embodiment of the present invention.
FIGS. 12-18 illustrate the basic operation of a distributed storage register.
FIG. 19 shows the components used by a process or processing entity Pi that implements, along with a number of other processes and/or processing entities, Pj≠i a distributed storage register.
FIG. 20 illustrates determination of the current value of a distributed storage register by means of a quorum.
FIG. 21 shows pseudocode implementations for the routine handlers and operational routines shown diagrammatically in FIG. 19.
FIG. 22 shows modified pseudocode, similar to the pseudocode provided in FIG. 17, which includes extensions to the storage-register model that handle distribution of segments across bricks according to erasure coding redundancy schemes within a FAB system that represent one embodiment of the present invention.
FIG. 23 illustrates the large dependence on timestamps by the data consistency techniques based on the storage-register model within a FAB system that represent one embodiment of the present invention.
FIG. 24 illustrates hierarchical time-stamp management that represents one embodiment of the present invention.
FIGS. 25-26 provide pseudocode for a further extended storage-register model that includes the concept of quorum-based writes to multiple, active configurations that may be present due to reconfiguration of a distributed segment within a FAB system that represent one embodiment of the present invention.
FIG. 27 shows high-level pseudocode for extension of the storage-register model to the migration level within a FAB system that represents one embodiment of the present invention.
FIG. 28 illustrates the overall hierarchical structure of both control processing and data storage within a FAB system that represents one embodiment of the present invention.