public void WillNotShowValueFromLaterSnapshot() { var storageState = new StorageState("test", new StorageOptions()); using (var memtable = new MemTable(storageState)) { memtable.Add(2, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 }))); Stream stream; Assert.False(memtable.TryGet("test", 1, out stream)); } }
public void DeletesWillHideValues() { var storageState = new StorageState("test", new StorageOptions()); using (var memtable = new MemTable(storageState)) { memtable.Add(2, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 }))); memtable.Add(3, ItemType.Deletion, "test", null); Stream stream; Assert.True(memtable.TryGet("test", 5, out stream)); Assert.Null(stream); } }
public void CanAddAndGetUsingLaterSnapshot() { var storageState = new StorageState("test", new StorageOptions()); using (var memtable = new MemTable(storageState)) { memtable.Add(1, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 }))); Stream stream; Assert.True(memtable.TryGet("test", 2, out stream)); using (stream) { Assert.Equal(1, stream.ReadByte()); Assert.Equal(2, stream.ReadByte()); Assert.Equal(3, stream.ReadByte()); } } }
internal void Prepare(MemTable memTable) { foreach (var operation in _operations) { operation.Handle = memTable.Write(operation.Value); if (DontDisposeStreamsAfterWrite) continue; operation.Value.Dispose(); } }