New Data Management
There are two new technologies in the wild that warp what was once thought of as “the magnetic disk”:
- SSD (Solid State Disk) usually uses floating capacitors to store bits for a long time.
Writing those bits is slightly damaging and the number of times you can write them is limited.
You might say that writing such a block of storage will eventually “wear it out”.
Such blocks are also much bigger than a page.
Reading them is much faster than reading disks and there are no read limits.
NVRAM is a more recent and expensive variant whose reading has performance comparable with DRAM.
- The “Shingled disk” puts the data tracks much closer together on a real disk to achieve higher areal density but writing a track ruins the next few tracks.
Clever writing algorithms can pack several times as much data onto a disk than conventional means.
The loss is that the data cannot be selectively rewritten without rewriting many other pages.
This requires new data management.
I think there are no modest Keykos kernel changes that can transparently exploit these new media.
Here are some visible proposals:
I think the correct thing to do is to expose the medium to code outside page kernel.
A medium savvy segment keeper can take a command “lease” which would make the segment RO and transfer data to the new medium.
Perhaps a consortium of such keepers could synchronize these events for greater economy.
Such a segment can be sold back and eventually the real space would be reclaimed for a subsequent tenant.
Such keepers are stingy regarding the lease command.
A parameter is an expected duration.
Long term leases are cheaper.
They might charge something like meter time, but not meter time.
Both technologies include conventional storage areas which are writable in page size blocks as that seems necessary to exploit the advantages of the large block stuff.
The kernel could deliver access to RO pages backed by this medium.
Something like a space bank might deal in space on such media, with concomitant kernel support.
This is additional complexity.
New kernel code is in everyone’s TCB.
Any customer of the new keepers would need to trust the keepers to keep their clients apart.
See AHCI,
too