-
Notifications
You must be signed in to change notification settings - Fork 2
Pipeline keydir #4
Description
The goal here is to pipeline put/alter in the keydir. alters and puts can run without waiting for the IO to complete, since each alter only needs to have the result of the previous alter visible to it. To implement this, we must have a "future file", which is an in-memory copy of the latest uncommitted puts and alters. Then, all gets will actually ready from the future file. When IO operations complete, they will delete the data from the future file so that reads will proceed normally to the main keydir chm. There's a potential slowdown case here, in that most reads will first miss in reading from the future file; however, given that those reads need to do IO anyway, maybe it doesn't matter, or maybe the reads can be done in parallel if it is a performance issue.