Our semantic disk based approach is one of few different ways of implementing D-GRAID, each with its own trade-offs. Similar to modern processors that innovate beneath unchanged instruction sets, a semantic disk level implementation facilitates ease of deployment and inter-operability with unchanged client infrastructure, perhaps making it more pragmatic. The cost of this approach, however, is the complexity in rediscovering semantic knowledge and being tolerant to inaccuracies.
An alternative approach is to change the interface between file systems and storage, to convey richer information across both layers. For instance, the storage system could expose failure boundaries to the file system [9], and then the file system could explicitly allocate blocks in a fault-isolated manner. Alternatively, the file system could tag each write with a logical fault-container ID, which can then be used by the storage system to implement fault-isolated data placement. These techniques, while being intrusive on existing infrastructure and software base, are conceivably less complex than our approach.
Object-based storage [16] is one such new interface being considered, which makes the file boundaries more visible at the storage layer. However, even with an object-based interface, semantically-smart technology might still be relevant to discover relationships across objects; for instance inferring that a directory object points to a set of file objects which need to collocated.
Semicolons | Total | |
D-GRAID Generic | ||
Setup + fault-isolated placement | 1726 | 3557 |
Physical block allocation | 322 | 678 |
Access driven diffusion | 108 | 238 |
Mirroring + live block recovery | 248 | 511 |
Internal memory management | 182 | 406 |
Hashtable/Avl tree | 724 | 1706 |
File System Specific | ||
SDS Inferencing: ext2 | 1252 | 2836 |
SDS Inferencing: VFAT | 630 | 1132 |
Total | 5192 | 11604 |