|
|
|
|
|
by cbsmith
3929 days ago
|
|
> scylla for instance does not leave the cache to the OS. It has its own caches for everything Uh-huh... that's all pretty common for databases. Cassandra would fit that description. > Never blocks on IO or page faults because all IO bypasses the kernel. That just seems nonsensical. Sometimes, you are waiting for IO. That's just reality. It is conceivable you bypass the kernel for I/O, but that creates a lot of complexity and limitations. Near as I can tell though, they do talk to the kernel for IO. |
|
Scylla never touches the page cache. All IO in seastar is direct IO and then scylla caches everything itself. We always know when the disk access is going to happen. The OS paging mechanism does not do a thing.
As for waiting for IO, of course IO does not complete immediately. But you can either block and wait for it, as Cassandra does (it doesn't even have the option not to in the case of the mmaped regions) or you can do something fully async like seastar that guarantees you never block waiting for IO.