I'm reading "Decibel: Isolation and Sharing in Disaggregated Rack-Scale Storage" (PDF). On page 6, the author illustrates the concept of "Extended Logical Block"), which is similar to "Data Integrity Field" provided by SCSI devices.
I directly quote the text here:
Several enterprise SCMs support storing per-block metadata alongside data blocks and updating the metadata atomically with writes to the data. The block and metadata regions together are called extended logical blocks (shown in Figure 5). Block metadata corresponds to the Data Integrity Field (DIF) provided by SCSI devices and is intended for use by the storage system. Decibel utilizes this region to store a CRC32-checksum of every block.
Block checksums are self-referential integrity checks that protect against data corruption, but offer no guarantees about metadata integrity, as V2P entries pointing to stale or incorrect data blocks are not detected. Metadata integrity can be ensured either by storing checksums with the metadata or by storing back-pointers alongside the data. To avoid updating the mappings on every write, Decibel stores back-pointers in the metadata region of a block. As the data, checksum, and backpointer are updated atomically, Decibel overwrites blocks in-place and still remains crash consistent.
How is that possible? I mean most flash devices provide 4KB atomic write. Is that metadata field belong to next block?(if yes, how it is atomic?) Is that kind of additional storage provided by device just for metadata (which is atomically updated alongside with data block)? Is it excluded from total device size?