As suggested here, GCHandle.Alloc can be used to pin the key and value bytes during an asynchronous FASTER upsert. This avoids the need to copy the bytes into a pinned Memory<byte> that was added in #362.
The commit also seals the FasterKeyValueStore class, removes the IDisposable implementation and simplifies the implementation of IAsyncDisposable.DisposeAsync. The IDisposable implementation has been removed because of the sync-over-async anti-pattern required to perform a final snapshot checkpoint when disposing of the store.
As suggested here,
GCHandle.Alloc
can be used to pin the key and value bytes during an asynchronous FASTER upsert. This avoids the need to copy the bytes into a pinnedMemory<byte>
that was added in #362.The commit also seals the
FasterKeyValueStore
class, removes theIDisposable
implementation and simplifies the implementation ofIAsyncDisposable.DisposeAsync
. TheIDisposable
implementation has been removed because of the sync-over-async anti-pattern required to perform a final snapshot checkpoint when disposing of the store.