You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
The goal here is to pipeline put/alter in the keydir.
alter
s andput
s can run without waiting for the IO to complete, since eachalter
only needs to have the result of the previousalter
visible to it. To implement this, we must have a "future file", which is an in-memory copy of the latest uncommittedput
s andalter
s. Then, allget
s 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.The text was updated successfully, but these errors were encountered: