From c4db89d6641bba6443e1145b747409537447cc4a Mon Sep 17 00:00:00 2001
From: Ted Hart <15467143+TedHartMS@users.noreply.github.com>
Date: Wed, 29 May 2024 15:01:06 -0700
Subject: [PATCH] More cleanup of no-longer-needed code (#423)
* More cleanup of unused code: fields in PendingContext, LatchDestination.CreatePendingContext
* WIP removing SerialNo, ResumeSession, etc.
* A few fixes for serialNo removal from API
* Finish removal of session recovery and related cleanup
* Fix loading of earlier Checkpoints
* 'format' fixes
---
.../Functions/MainStore/CallbackMethods.cs | 5 -
.../Functions/ObjectStore/CallbackMethods.cs | 5 -
.../Storage/Session/MainStore/MainStoreOps.cs | 2 +-
.../cs/benchmark/FixedLenYcsbBenchmark.cs | 20 +-
.../Tsavorite/cs/benchmark/Functions.cs | 6 -
.../cs/benchmark/SpanByteYcsbBenchmark.cs | 20 +-
.../cs/src/core/Allocator/AllocatorScan.cs | 8 +-
.../cs/src/core/Async/DeleteAsync.cs | 8 +-
.../Tsavorite/cs/src/core/Async/RMWAsync.cs | 12 +-
.../Tsavorite/cs/src/core/Async/ReadAsync.cs | 21 +-
.../cs/src/core/Async/UpsertAsync.cs | 8 +-
.../cs/src/core/ClientSession/BasicContext.cs | 252 +++++++--------
.../src/core/ClientSession/ClientSession.cs | 304 ++++++++----------
.../ClientSession/ClientSessionBuilder.cs | 50 ---
.../core/ClientSession/ITsavoriteContext.cs | 189 ++++-------
.../src/core/ClientSession/LockableContext.cs | 276 ++++++++--------
.../ClientSession/LockableUnsafeContext.cs | 268 +++++++--------
.../src/core/ClientSession/UnsafeContext.cs | 268 +++++++--------
.../core/Compaction/ICompactionFunctions.cs | 2 +-
.../core/Compaction/LogCompactionFunctions.cs | 2 -
.../core/Compaction/TsavoriteCompaction.cs | 2 +-
.../cs/src/core/Index/Common/Contexts.cs | 108 +------
.../core/Index/Interfaces/FunctionsBase.cs | 2 -
.../src/core/Index/Interfaces/IFunctions.cs | 10 -
.../Index/Interfaces/ITsavoriteSession.cs | 1 -
.../Index/Interfaces/NullTsavoriteSession.cs | 4 -
.../cs/src/core/Index/Recovery/Recovery.cs | 16 +-
.../HybridLogCheckpointTask.cs | 21 +-
.../Synchronization/TsavoriteStateMachine.cs | 59 ----
.../VersionChangeStateMachine.cs | 7 +-
.../Implementation/ConditionalCopyToTail.cs | 13 +-
.../Implementation/ContinuePending.cs | 8 +-
.../Implementation/EpochOperations.cs | 2 -
.../Implementation/HandleOperationStatus.cs | 1 -
.../Index/Tsavorite/Implementation/Helpers.cs | 1 -
.../Implementation/InternalDelete.cs | 14 +-
.../Tsavorite/Implementation/InternalRMW.cs | 14 +-
.../Tsavorite/Implementation/InternalRead.cs | 22 +-
.../Implementation/InternalUpsert.cs | 12 +-
.../cs/src/core/Index/Tsavorite/Tsavorite.cs | 103 ++----
.../core/Index/Tsavorite/TsavoriteThread.cs | 60 +---
.../src/core/Index/Tsavorite/WriteReason.cs | 2 +-
.../cs/test/AsyncLargeObjectTests.cs | 4 +-
libs/storage/Tsavorite/cs/test/AsyncTests.cs | 152 ---------
.../Tsavorite/cs/test/BasicStorageTests.cs | 6 +-
libs/storage/Tsavorite/cs/test/BasicTests.cs | 153 +++------
.../cs/test/BlittableLogCompactionTests.cs | 26 +-
.../cs/test/BlittableLogScanTests.cs | 4 +-
.../Tsavorite/cs/test/ExpirationTests.cs | 4 +-
.../cs/test/GenericByteArrayTests.cs | 4 +-
.../cs/test/GenericDiskDeleteTests.cs | 36 +--
.../cs/test/GenericLogCompactionTests.cs | 26 +-
.../Tsavorite/cs/test/GenericLogScanTests.cs | 4 +-
.../Tsavorite/cs/test/GenericStringTests.cs | 4 +-
.../Tsavorite/cs/test/LargeObjectTests.cs | 4 +-
.../cs/test/LockableUnsafeContextTests.cs | 6 +-
libs/storage/Tsavorite/cs/test/MiscTests.cs | 14 +-
.../Tsavorite/cs/test/NativeReadCacheTests.cs | 38 +--
.../Tsavorite/cs/test/NeedCopyUpdateTests.cs | 6 +-
.../Tsavorite/cs/test/ObjectReadCacheTests.cs | 26 +-
.../Tsavorite/cs/test/ObjectRecoveryTest.cs | 50 +--
.../Tsavorite/cs/test/ObjectRecoveryTest2.cs | 8 +-
.../Tsavorite/cs/test/ObjectRecoveryTest3.cs | 8 +-
libs/storage/Tsavorite/cs/test/ObjectTests.cs | 22 +-
.../Tsavorite/cs/test/ReadAddressTests.cs | 32 +-
.../Tsavorite/cs/test/RecoverContinueTests.cs | 201 ------------
.../Tsavorite/cs/test/RecoveryChecks.cs | 8 -
.../Tsavorite/cs/test/RecoveryTests.cs | 46 +--
.../storage/Tsavorite/cs/test/SessionTests.cs | 34 +-
.../Tsavorite/cs/test/SharedDirectoryTests.cs | 35 +-
.../Tsavorite/cs/test/SimpleAsyncTests.cs | 12 +-
.../Tsavorite/cs/test/SimpleRecoveryTest.cs | 20 +-
.../Tsavorite/cs/test/SingleWriterTests.cs | 2 +-
.../Tsavorite/cs/test/SpanByteTests.cs | 2 +-
.../cs/test/SpanByteVLVectorTests.cs | 8 +-
.../cs/test/StateMachineBarrierTests.cs | 50 +--
.../Tsavorite/cs/test/StateMachineTests.cs | 145 +--------
.../Tsavorite/cs/test/UnsafeContextTests.cs | 109 +++----
78 files changed, 1113 insertions(+), 2404 deletions(-)
delete mode 100644 libs/storage/Tsavorite/cs/test/AsyncTests.cs
delete mode 100644 libs/storage/Tsavorite/cs/test/RecoverContinueTests.cs
diff --git a/libs/server/Storage/Functions/MainStore/CallbackMethods.cs b/libs/server/Storage/Functions/MainStore/CallbackMethods.cs
index 97afadf492..01b2891531 100644
--- a/libs/server/Storage/Functions/MainStore/CallbackMethods.cs
+++ b/libs/server/Storage/Functions/MainStore/CallbackMethods.cs
@@ -19,10 +19,5 @@ public void ReadCompletionCallback(ref SpanByte key, ref SpanByte input, ref Spa
public void RMWCompletionCallback(ref SpanByte key, ref SpanByte input, ref SpanByteAndMemory output, long ctx, Status status, RecordMetadata recordMetadata)
{
}
-
- ///
- public void CheckpointCompletionCallback(int sessionID, string sessionName, CommitPoint commitPoint)
- {
- }
}
}
\ No newline at end of file
diff --git a/libs/server/Storage/Functions/ObjectStore/CallbackMethods.cs b/libs/server/Storage/Functions/ObjectStore/CallbackMethods.cs
index 6fe8bde205..ce471143f0 100644
--- a/libs/server/Storage/Functions/ObjectStore/CallbackMethods.cs
+++ b/libs/server/Storage/Functions/ObjectStore/CallbackMethods.cs
@@ -19,10 +19,5 @@ public void ReadCompletionCallback(ref byte[] key, ref SpanByte input, ref Garne
public void RMWCompletionCallback(ref byte[] key, ref SpanByte input, ref GarnetObjectStoreOutput output, long ctx, Status status, RecordMetadata recordMetadata)
{
}
-
- ///
- public void CheckpointCompletionCallback(int sessionID, string sessionName, CommitPoint commitPoint)
- {
- }
}
}
\ No newline at end of file
diff --git a/libs/server/Storage/Session/MainStore/MainStoreOps.cs b/libs/server/Storage/Session/MainStore/MainStoreOps.cs
index de79ae37d2..9fd6840967 100644
--- a/libs/server/Storage/Session/MainStore/MainStoreOps.cs
+++ b/libs/server/Storage/Session/MainStore/MainStoreOps.cs
@@ -44,7 +44,7 @@ public unsafe GarnetStatus ReadWithUnsafeContext(ArgSlice key, ref Spa
long ctx = default;
epochChanged = false;
- var status = context.Read(ref _key, ref Unsafe.AsRef(in input), ref output, ctx, 0);
+ var status = context.Read(ref _key, ref Unsafe.AsRef(in input), ref output, ctx);
if (status.IsPending)
{
diff --git a/libs/storage/Tsavorite/cs/benchmark/FixedLenYcsbBenchmark.cs b/libs/storage/Tsavorite/cs/benchmark/FixedLenYcsbBenchmark.cs
index 4059ed8025..115df8cafd 100644
--- a/libs/storage/Tsavorite/cs/benchmark/FixedLenYcsbBenchmark.cs
+++ b/libs/storage/Tsavorite/cs/benchmark/FixedLenYcsbBenchmark.cs
@@ -166,23 +166,23 @@ private void RunYcsbUnsafeContext(int thread_idx)
int r = (int)rng.Generate(100); // rng.Next() is not inclusive of the upper bound so this will be <= 99
if (r < readPercent)
{
- uContext.Read(ref txn_keys_[idx], ref input, ref output, Empty.Default, 1);
+ uContext.Read(ref txn_keys_[idx], ref input, ref output, Empty.Default);
++reads_done;
continue;
}
if (r < upsertPercent)
{
- uContext.Upsert(ref txn_keys_[idx], ref value, Empty.Default, 1);
+ uContext.Upsert(ref txn_keys_[idx], ref value, Empty.Default);
++writes_done;
continue;
}
if (r < rmwPercent)
{
- uContext.RMW(ref txn_keys_[idx], ref input_[idx & 0x7], Empty.Default, 1);
+ uContext.RMW(ref txn_keys_[idx], ref input_[idx & 0x7], Empty.Default);
++writes_done;
continue;
}
- uContext.Delete(ref txn_keys_[idx], Empty.Default, 1);
+ uContext.Delete(ref txn_keys_[idx], Empty.Default);
++deletes_done;
}
@@ -265,23 +265,23 @@ private void RunYcsbSafeContext(int thread_idx)
int r = (int)rng.Generate(100); // rng.Next() is not inclusive of the upper bound so this will be <= 99
if (r < readPercent)
{
- session.Read(ref txn_keys_[idx], ref input, ref output, Empty.Default, 1);
+ session.Read(ref txn_keys_[idx], ref input, ref output, Empty.Default);
++reads_done;
continue;
}
if (r < upsertPercent)
{
- session.Upsert(ref txn_keys_[idx], ref value, Empty.Default, 1);
+ session.Upsert(ref txn_keys_[idx], ref value, Empty.Default);
++writes_done;
continue;
}
if (r < rmwPercent)
{
- session.RMW(ref txn_keys_[idx], ref input_[idx & 0x7], Empty.Default, 1);
+ session.RMW(ref txn_keys_[idx], ref input_[idx & 0x7], Empty.Default);
++writes_done;
continue;
}
- session.Delete(ref txn_keys_[idx], Empty.Default, 1);
+ session.Delete(ref txn_keys_[idx], Empty.Default);
++deletes_done;
}
}
@@ -465,7 +465,7 @@ private void SetupYcsbUnsafeContext(int thread_idx)
}
}
- uContext.Upsert(ref init_keys_[idx], ref value, Empty.Default, 1);
+ uContext.Upsert(ref init_keys_[idx], ref value, Empty.Default);
}
#if DASHBOARD
count += (int)kChunkSize;
@@ -522,7 +522,7 @@ private void SetupYcsbSafeContext(int thread_idx)
}
}
- session.Upsert(ref init_keys_[idx], ref value, Empty.Default, 1);
+ session.Upsert(ref init_keys_[idx], ref value, Empty.Default);
}
}
diff --git a/libs/storage/Tsavorite/cs/benchmark/Functions.cs b/libs/storage/Tsavorite/cs/benchmark/Functions.cs
index ddd2c7a21e..df16f88372 100644
--- a/libs/storage/Tsavorite/cs/benchmark/Functions.cs
+++ b/libs/storage/Tsavorite/cs/benchmark/Functions.cs
@@ -1,7 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-using System.Diagnostics;
using System.Runtime.CompilerServices;
using Tsavorite.core;
@@ -17,11 +16,6 @@ public void ReadCompletionCallback(ref Key key, ref Input input, ref Output outp
{
}
- public void CheckpointCompletionCallback(int sessionID, string sessionName, CommitPoint commitPoint)
- {
- Debug.WriteLine($"Session {sessionID} ({(sessionName ?? "null")}) reports persistence until {commitPoint.UntilSerialNo}");
- }
-
// Read functions
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool SingleReader(ref Key key, ref Input input, ref Value value, ref Output dst, ref ReadInfo readInfo)
diff --git a/libs/storage/Tsavorite/cs/benchmark/SpanByteYcsbBenchmark.cs b/libs/storage/Tsavorite/cs/benchmark/SpanByteYcsbBenchmark.cs
index b8c7c40b2b..9665084c79 100644
--- a/libs/storage/Tsavorite/cs/benchmark/SpanByteYcsbBenchmark.cs
+++ b/libs/storage/Tsavorite/cs/benchmark/SpanByteYcsbBenchmark.cs
@@ -179,23 +179,23 @@ private void RunYcsbUnsafeContext(int thread_idx)
int r = (int)rng.Generate(100); // rng.Next() is not inclusive of the upper bound so this will be <= 99
if (r < readPercent)
{
- uContext.Read(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, ref _output, Empty.Default, 1);
+ uContext.Read(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, ref _output, Empty.Default);
++reads_done;
continue;
}
if (r < upsertPercent)
{
- uContext.Upsert(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _value, Empty.Default, 1);
+ uContext.Upsert(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _value, Empty.Default);
++writes_done;
continue;
}
if (r < rmwPercent)
{
- uContext.RMW(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, Empty.Default, 1);
+ uContext.RMW(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, Empty.Default);
++writes_done;
continue;
}
- uContext.Delete(ref SpanByte.Reinterpret(ref txn_keys_[idx]), Empty.Default, 1);
+ uContext.Delete(ref SpanByte.Reinterpret(ref txn_keys_[idx]), Empty.Default);
++deletes_done;
}
@@ -293,23 +293,23 @@ private void RunYcsbSafeContext(int thread_idx)
int r = (int)rng.Generate(100); // rng.Next() is not inclusive of the upper bound so this will be <= 99
if (r < readPercent)
{
- session.Read(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, ref _output, Empty.Default, 1);
+ session.Read(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, ref _output, Empty.Default);
++reads_done;
continue;
}
if (r < upsertPercent)
{
- session.Upsert(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _value, Empty.Default, 1);
+ session.Upsert(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _value, Empty.Default);
++writes_done;
continue;
}
if (r < rmwPercent)
{
- session.RMW(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, Empty.Default, 1);
+ session.RMW(ref SpanByte.Reinterpret(ref txn_keys_[idx]), ref _input, Empty.Default);
++writes_done;
continue;
}
- session.Delete(ref SpanByte.Reinterpret(ref txn_keys_[idx]), Empty.Default, 1);
+ session.Delete(ref SpanByte.Reinterpret(ref txn_keys_[idx]), Empty.Default);
++deletes_done;
}
@@ -514,7 +514,7 @@ private void SetupYcsbUnsafeContext(int thread_idx)
}
}
- uContext.Upsert(ref SpanByte.Reinterpret(ref init_keys_[idx]), ref _value, Empty.Default, 1);
+ uContext.Upsert(ref SpanByte.Reinterpret(ref init_keys_[idx]), ref _value, Empty.Default);
}
#if DASHBOARD
count += (int)kChunkSize;
@@ -572,7 +572,7 @@ private void SetupYcsbSafeContext(int thread_idx)
}
}
- session.Upsert(ref SpanByte.Reinterpret(ref init_keys_[idx]), ref _value, Empty.Default, 1);
+ session.Upsert(ref SpanByte.Reinterpret(ref init_keys_[idx]), ref _value, Empty.Default);
}
}
diff --git a/libs/storage/Tsavorite/cs/src/core/Allocator/AllocatorScan.cs b/libs/storage/Tsavorite/cs/src/core/Allocator/AllocatorScan.cs
index 4446b53015..84bbd9120d 100644
--- a/libs/storage/Tsavorite/cs/src/core/Allocator/AllocatorScan.cs
+++ b/libs/storage/Tsavorite/cs/src/core/Allocator/AllocatorScan.cs
@@ -280,7 +280,7 @@ internal Status ConditionalScanPush(Ts
if (needIO)
{
// A more recent version of the key was not (yet) found and we need another IO to continue searching.
- internalStatus = PrepareIOForConditionalScan(tsavoriteSession, ref pendingContext, ref key, ref input, ref value, ref output, default, 0L,
+ internalStatus = PrepareIOForConditionalScan(tsavoriteSession, ref pendingContext, ref key, ref input, ref value, ref output, default,
ref stackCtx, minAddress, scanCursorState);
}
else
@@ -308,13 +308,13 @@ internal Status ConditionalScanPush(Ts
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static OperationStatus PrepareIOForConditionalScan(TsavoriteSession tsavoriteSession,
ref TsavoriteKV.PendingContext pendingContext,
- ref Key key, ref Input input, ref Value value, ref Output output, Context userContext, long lsn,
+ ref Key key, ref Input input, ref Value value, ref Output output, Context userContext,
ref OperationStackContext stackCtx, long minAddress, ScanCursorState scanCursorState)
where TsavoriteSession : ITsavoriteSession
{
// WriteReason is not surfaced for this operation, so pick anything.
var status = tsavoriteSession.Store.PrepareIOForConditionalOperation(tsavoriteSession, ref pendingContext, ref key, ref input, ref value, ref output,
- userContext, lsn, ref stackCtx, minAddress, WriteReason.Compaction, OperationType.CONDITIONAL_SCAN_PUSH);
+ userContext, ref stackCtx, minAddress, WriteReason.Compaction, OperationType.CONDITIONAL_SCAN_PUSH);
pendingContext.scanCursorState = scanCursorState;
return status;
}
@@ -345,8 +345,6 @@ public void PostInitialUpdater(ref Key key, ref Input input, ref Value value, re
public void RMWCompletionCallback(ref Key key, ref Input input, ref Output output, Empty ctx, Status status, RecordMetadata recordMetadata) { }
- public void CheckpointCompletionCallback(int sessionID, string sessionName, CommitPoint commitPoint) { }
-
public int GetRMWModifiedValueLength(ref Value value, ref Input input) => 0;
public int GetRMWInitialValueLength(ref Input input) => 0;
diff --git a/libs/storage/Tsavorite/cs/src/core/Async/DeleteAsync.cs b/libs/storage/Tsavorite/cs/src/core/Async/DeleteAsync.cs
index 03f2f437be..9b9eb8a855 100644
--- a/libs/storage/Tsavorite/cs/src/core/Async/DeleteAsync.cs
+++ b/libs/storage/Tsavorite/cs/src/core/Async/DeleteAsync.cs
@@ -32,7 +32,7 @@ public Status DoFastOperation(TsavoriteKV tsavoriteKV, ref PendingCo
var keyHash = deleteOptions.KeyHash ?? tsavoriteKV.comparer.GetHashCode64(ref key);
do
{
- internalStatus = tsavoriteKV.InternalDelete(ref key, keyHash, ref pendingContext.userContext, ref pendingContext, tsavoriteSession, pendingContext.serialNum);
+ internalStatus = tsavoriteKV.InternalDelete(ref key, keyHash, ref pendingContext.userContext, ref pendingContext, tsavoriteSession);
} while (tsavoriteKV.HandleImmediateRetryStatus(internalStatus, tsavoriteSession, ref pendingContext));
output = default;
return TranslateStatus(internalStatus);
@@ -85,7 +85,7 @@ public ValueTask> CompleteAsync(Cancel
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal ValueTask> DeleteAsync(TsavoriteSession tsavoriteSession,
- ref Key key, ref DeleteOptions deleteOptions, Context userContext, long serialNo, CancellationToken token = default)
+ ref Key key, ref DeleteOptions deleteOptions, Context userContext, CancellationToken token = default)
where TsavoriteSession : ITsavoriteSession
{
var pcontext = new PendingContext { IsAsync = true };
@@ -97,7 +97,7 @@ internal ValueTask> DeleteAsync> DeleteAsync= tsavoriteSession.Ctx.serialNum, "Operation serial numbers must be non-decreasing");
- tsavoriteSession.Ctx.serialNum = serialNo;
tsavoriteSession.UnsafeSuspendThread();
}
diff --git a/libs/storage/Tsavorite/cs/src/core/Async/RMWAsync.cs b/libs/storage/Tsavorite/cs/src/core/Async/RMWAsync.cs
index 61c32b345d..b5c925d1c8 100644
--- a/libs/storage/Tsavorite/cs/src/core/Async/RMWAsync.cs
+++ b/libs/storage/Tsavorite/cs/src/core/Async/RMWAsync.cs
@@ -32,7 +32,7 @@ public Status DoFastOperation(TsavoriteKV tsavoriteKV, ref PendingCo
Status status = !diskRequest.IsDefault()
? tsavoriteKV.InternalCompletePendingRequestFromContext(tsavoriteSession, diskRequest, ref pendingContext, out AsyncIOContext newDiskRequest)
: tsavoriteKV.CallInternalRMW(tsavoriteSession, ref pendingContext, ref pendingContext.key.Get(), ref pendingContext.input.Get(), ref pendingContext.output, ref rmwOptions,
- pendingContext.userContext, pendingContext.serialNum, out newDiskRequest);
+ pendingContext.userContext, out newDiskRequest);
output = pendingContext.output;
diskRequest = newDiskRequest;
return status;
@@ -111,7 +111,7 @@ public ValueTask> CompleteAsync(Cancella
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal ValueTask> RmwAsync(TsavoriteSession tsavoriteSession,
- ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context, long serialNo, CancellationToken token = default)
+ ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context, CancellationToken token = default)
where TsavoriteSession : ITsavoriteSession
{
var pcontext = new PendingContext { IsAsync = true };
@@ -121,14 +121,12 @@ internal ValueTask> RmwAsync>(new RmwAsyncResult(status, output, new RecordMetadata(pcontext.recordInfo, pcontext.logicalAddress)));
}
finally
{
- Debug.Assert(serialNo >= tsavoriteSession.Ctx.serialNum, "Operation serial numbers must be non-decreasing");
- tsavoriteSession.Ctx.serialNum = serialNo;
tsavoriteSession.UnsafeSuspendThread();
}
@@ -137,12 +135,12 @@ internal ValueTask> RmwAsync(ITsavoriteSession tsavoriteSession, ref PendingContext pcontext,
- ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context context, long serialNo, out AsyncIOContext diskRequest)
+ ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context context, out AsyncIOContext diskRequest)
{
OperationStatus internalStatus;
var keyHash = rmwOptions.KeyHash ?? comparer.GetHashCode64(ref key);
do
- internalStatus = InternalRMW(ref key, keyHash, ref input, ref output, ref context, ref pcontext, tsavoriteSession, serialNo);
+ internalStatus = InternalRMW(ref key, keyHash, ref input, ref output, ref context, ref pcontext, tsavoriteSession);
while (HandleImmediateRetryStatus(internalStatus, tsavoriteSession, ref pcontext));
return HandleOperationStatus(tsavoriteSession.Ctx, ref pcontext, internalStatus, out diskRequest);
diff --git a/libs/storage/Tsavorite/cs/src/core/Async/ReadAsync.cs b/libs/storage/Tsavorite/cs/src/core/Async/ReadAsync.cs
index 66fb1111a2..606fc8f8a4 100644
--- a/libs/storage/Tsavorite/cs/src/core/Async/ReadAsync.cs
+++ b/libs/storage/Tsavorite/cs/src/core/Async/ReadAsync.cs
@@ -1,7 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Threading;
@@ -34,7 +33,7 @@ public Status DoFastOperation(TsavoriteKV tsavoriteKV, ref PendingCo
Status status = !diskRequest.IsDefault()
? tsavoriteKV.InternalCompletePendingRequestFromContext(tsavoriteSession, diskRequest, ref pendingContext, out var newDiskRequest)
: tsavoriteKV.CallInternalRead(tsavoriteSession, ref pendingContext, readAtAddress, ref pendingContext.key.Get(), ref pendingContext.input.Get(), ref pendingContext.output,
- ref readOptions, pendingContext.userContext, pendingContext.serialNum, out newDiskRequest);
+ ref readOptions, pendingContext.userContext, out newDiskRequest);
output = pendingContext.output;
diskRequest = newDiskRequest;
return status;
@@ -105,7 +104,7 @@ internal ReadAsyncResult(TsavoriteKV tsavoriteKV, ITsavoriteSession<
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal ValueTask> ReadAsync(ITsavoriteSession tsavoriteSession,
- ref Key key, ref Input input, ref ReadOptions readOptions, Context context, long serialNo, CancellationToken token, bool noKey = false)
+ ref Key key, ref Input input, ref ReadOptions readOptions, Context context, CancellationToken token, bool noKey = false)
{
var pcontext = new PendingContext(tsavoriteSession.Ctx.ReadCopyOptions, ref readOptions, isAsync: true, noKey: noKey);
var diskRequest = default(AsyncIOContext);
@@ -114,14 +113,12 @@ internal ValueTask> ReadAsync>(new ReadAsyncResult(status, output, new RecordMetadata(pcontext.recordInfo, pcontext.logicalAddress)));
}
finally
{
- Debug.Assert(serialNo >= tsavoriteSession.Ctx.serialNum, "Operation serial numbers must be non-decreasing");
- tsavoriteSession.Ctx.serialNum = serialNo;
tsavoriteSession.UnsafeSuspendThread();
}
@@ -130,7 +127,7 @@ internal ValueTask> ReadAsync> ReadAtAddressAsync(ITsavoriteSession tsavoriteSession,
- long readAtAddress, ref Key key, ref Input input, ref ReadOptions readOptions, Context context, long serialNo, CancellationToken token, bool noKey = false)
+ long readAtAddress, ref Key key, ref Input input, ref ReadOptions readOptions, Context context, CancellationToken token, bool noKey = false)
{
var pcontext = new PendingContext(tsavoriteSession.Ctx.ReadCopyOptions, ref readOptions, isAsync: true, noKey: noKey);
var diskRequest = default(AsyncIOContext);
@@ -139,14 +136,12 @@ internal ValueTask> ReadAtAddressAsync>(new ReadAsyncResult(status, output, new RecordMetadata(pcontext.recordInfo, pcontext.logicalAddress)));
}
finally
{
- Debug.Assert(serialNo >= tsavoriteSession.Ctx.serialNum, "Operation serial numbers must be non-decreasing");
- tsavoriteSession.Ctx.serialNum = serialNo;
tsavoriteSession.UnsafeSuspendThread();
}
@@ -155,7 +150,7 @@ internal ValueTask> ReadAtAddressAsync(ITsavoriteSession tsavoriteSession,
- ref PendingContext pcontext, long readAtAddress, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context context, long serialNo,
+ ref PendingContext pcontext, long readAtAddress, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context context,
out AsyncIOContext diskRequest)
{
OperationStatus internalStatus;
@@ -163,9 +158,9 @@ private Status CallInternalRead(ITsavoriteSession tsavoriteKV, ref PendingCo
do
{
internalStatus = tsavoriteKV.InternalUpsert(ref key, keyHash, ref pendingContext.input.Get(), ref pendingContext.value.Get(), ref output,
- ref pendingContext.userContext, ref pendingContext, tsavoriteSession, pendingContext.serialNum);
+ ref pendingContext.userContext, ref pendingContext, tsavoriteSession);
} while (tsavoriteKV.HandleImmediateRetryStatus(internalStatus, tsavoriteSession, ref pendingContext));
return TranslateStatus(internalStatus);
}
@@ -110,7 +110,7 @@ public ValueTask> CompleteAsync(Cance
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal ValueTask> UpsertAsync(TsavoriteSession tsavoriteSession,
- ref Key key, ref Input input, ref Value value, ref UpsertOptions upsertOptions, Context userContext, long serialNo, CancellationToken token = default)
+ ref Key key, ref Input input, ref Value value, ref UpsertOptions upsertOptions, Context userContext, CancellationToken token = default)
where TsavoriteSession : ITsavoriteSession
{
var pcontext = new PendingContext { IsAsync = true };
@@ -123,7 +123,7 @@ internal ValueTask> UpsertAsync> UpsertAsync= tsavoriteSession.Ctx.serialNum, "Operation serial numbers must be non-decreasing");
- tsavoriteSession.Ctx.serialNum = serialNo;
tsavoriteSession.UnsafeSuspendThread();
}
diff --git a/libs/storage/Tsavorite/cs/src/core/ClientSession/BasicContext.cs b/libs/storage/Tsavorite/cs/src/core/ClientSession/BasicContext.cs
index 539f66a396..edc34587b7 100644
--- a/libs/storage/Tsavorite/cs/src/core/ClientSession/BasicContext.cs
+++ b/libs/storage/Tsavorite/cs/src/core/ClientSession/BasicContext.cs
@@ -59,318 +59,318 @@ public ValueTask> Co
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Read(ref key, ref input, ref output, userContext, serialNo);
+ public Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default)
+ => clientSession.Read(ref key, ref input, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Read(ref key, ref input, ref output, ref readOptions, userContext, serialNo);
+ public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default)
+ => clientSession.Read(ref key, ref input, ref output, ref readOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, Input input, out Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, input, out output, userContext, serialNo);
+ public Status Read(Key key, Input input, out Output output, Context userContext = default)
+ => clientSession.Read(key, input, out output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, input, out output, ref readOptions, userContext, serialNo);
+ public Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default)
+ => clientSession.Read(key, input, out output, ref readOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Read(ref key, ref output, userContext, serialNo);
+ public Status Read(ref Key key, ref Output output, Context userContext = default)
+ => clientSession.Read(ref key, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Read(ref key, ref output, ref readOptions, userContext, serialNo);
+ public Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default)
+ => clientSession.Read(ref key, ref output, ref readOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, out Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, out output, userContext, serialNo);
+ public Status Read(Key key, out Output output, Context userContext = default)
+ => clientSession.Read(key, out output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, out output, ref readOptions, userContext, serialNo);
+ public Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default)
+ => clientSession.Read(key, out output, ref readOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public (Status status, Output output) Read(Key key, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, userContext, serialNo);
+ public (Status status, Output output) Read(Key key, Context userContext = default)
+ => clientSession.Read(key, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Read(key, ref readOptions, userContext, serialNo);
+ public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default)
+ => clientSession.Read(key, ref readOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.Read(ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, serialNo);
+ public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.Read(ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.ReadAtAddress(address, ref input, ref output, ref readOptions, out recordMetadata, userContext, serialNo);
+ public Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.ReadAtAddress(address, ref input, ref output, ref readOptions, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.ReadAtAddress(address, ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, serialNo);
+ public Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.ReadAtAddress(address, ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => clientSession.ReadAsync(ref key, ref input, userContext, serialNo, cancellationToken);
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, CancellationToken cancellationToken = default)
+ => clientSession.ReadAsync(ref key, ref input, userContext, cancellationToken);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(key, input, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, CancellationToken token = default)
+ => clientSession.ReadAsync(key, input, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(key, input, ref readOptions, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, CancellationToken token = default)
+ => clientSession.ReadAsync(key, input, ref readOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(ref key, userContext, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, CancellationToken token = default)
+ => clientSession.ReadAsync(ref key, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(ref key, ref readOptions, userContext, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.ReadAsync(ref key, ref readOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(key, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, CancellationToken token = default)
+ => clientSession.ReadAsync(key, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.ReadAsync(key, ref readOptions, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, CancellationToken token = default)
+ => clientSession.ReadAsync(key, ref readOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => clientSession.ReadAsync(ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken);
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, CancellationToken cancellationToken = default)
+ => clientSession.ReadAsync(ref key, ref input, ref readOptions, userContext, cancellationToken);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Input input, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => clientSession.ReadAtAddressAsync(address, ref input, ref readOptions, userContext, serialNo, cancellationToken);
+ public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Input input, ref ReadOptions readOptions, Context userContext = default, CancellationToken cancellationToken = default)
+ => clientSession.ReadAtAddressAsync(address, ref input, ref readOptions, userContext, cancellationToken);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => clientSession.ReadAtAddressAsync(address, ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken);
+ public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, CancellationToken cancellationToken = default)
+ => clientSession.ReadAtAddressAsync(address, ref key, ref input, ref readOptions, userContext, cancellationToken);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref desiredValue, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default)
+ => clientSession.Upsert(ref key, ref desiredValue, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref desiredValue, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default)
+ => clientSession.Upsert(ref key, ref desiredValue, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default)
+ => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default)
+ => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, out recordMetadata, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, out recordMetadata, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Value desiredValue, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(key, desiredValue, userContext, serialNo);
+ public Status Upsert(Key key, Value desiredValue, Context userContext = default)
+ => clientSession.Upsert(key, desiredValue, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(key, desiredValue, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default)
+ => clientSession.Upsert(key, desiredValue, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(key, input, desiredValue, ref output, userContext, serialNo);
+ public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default)
+ => clientSession.Upsert(key, input, desiredValue, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default)
+ => clientSession.Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(ref key, ref desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(ref key, ref desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(ref key, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(ref key, ref desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(ref key, ref input, ref desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(ref key, ref input, ref desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(key, desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(key, desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(key, desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(key, desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(key, input, desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(key, input, desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.UpsertAsync(key, input, desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.UpsertAsync(key, input, desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, ref output, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, ref output, ref rmwOptions, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, ref output, ref rmwOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, ref output, ref rmwOptions, out recordMetadata, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, ref output, ref rmwOptions, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, ref output, out recordMetadata, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, ref output, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, out Output output, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(key, input, out output, userContext, serialNo);
+ public Status RMW(Key key, Input input, out Output output, Context userContext = default)
+ => clientSession.RMW(key, input, out output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, out Output output, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(key, input, out output, ref rmwOptions, userContext, serialNo);
+ public Status RMW(Key key, Input input, out Output output, ref RMWOptions rmwOptions, Context userContext = default)
+ => clientSession.RMW(key, input, out output, ref rmwOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(ref key, ref input, ref rmwOptions, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context userContext = default)
+ => clientSession.RMW(ref key, ref input, ref rmwOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(key, input, userContext, serialNo);
+ public Status RMW(Key key, Input input, Context userContext = default)
+ => clientSession.RMW(key, input, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => clientSession.RMW(key, input, ref rmwOptions, userContext, serialNo);
+ public Status RMW(Key key, Input input, ref RMWOptions rmwOptions, Context userContext = default)
+ => clientSession.RMW(key, input, ref rmwOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.RMWAsync(ref key, ref input, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, Context context = default, CancellationToken token = default)
+ => clientSession.RMWAsync(ref key, ref input, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.RMWAsync(ref key, ref input, ref rmwOptions, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context = default, CancellationToken token = default)
+ => clientSession.RMWAsync(ref key, ref input, ref rmwOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.RMWAsync(key, input, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, Context context = default, CancellationToken token = default)
+ => clientSession.RMWAsync(key, input, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, ref RMWOptions rmwOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.RMWAsync(key, input, ref rmwOptions, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, ref RMWOptions rmwOptions, Context context = default, CancellationToken token = default)
+ => clientSession.RMWAsync(key, input, ref rmwOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(ref Key key, Context userContext = default, long serialNo = 0)
- => clientSession.Delete(ref key, userContext, serialNo);
+ public Status Delete(ref Key key, Context userContext = default)
+ => clientSession.Delete(ref key, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Delete(ref key, ref deleteOptions, userContext, serialNo);
+ public Status Delete(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default)
+ => clientSession.Delete(ref key, ref deleteOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(Key key, Context userContext = default, long serialNo = 0)
- => clientSession.Delete(key, userContext, serialNo);
+ public Status Delete(Key key, Context userContext = default)
+ => clientSession.Delete(key, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0)
- => clientSession.Delete(key, ref deleteOptions, userContext, serialNo);
+ public Status Delete(Key key, ref DeleteOptions deleteOptions, Context userContext = default)
+ => clientSession.Delete(key, ref deleteOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.DeleteAsync(ref key, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, Context userContext = default, CancellationToken token = default)
+ => clientSession.DeleteAsync(ref key, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.DeleteAsync(ref key, ref deleteOptions, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.DeleteAsync(ref key, ref deleteOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.DeleteAsync(key, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, Context userContext = default, CancellationToken token = default)
+ => clientSession.DeleteAsync(key, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => clientSession.DeleteAsync(key, ref deleteOptions, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, ref DeleteOptions deleteOptions, Context userContext = default, CancellationToken token = default)
+ => clientSession.DeleteAsync(key, ref deleteOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSession.cs b/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSession.cs
index 70e75fb95c..f7bca30d10 100644
--- a/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSession.cs
+++ b/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSession.cs
@@ -25,7 +25,6 @@ public sealed class ClientSession
internal readonly TsavoriteKV store;
internal readonly TsavoriteKV.TsavoriteExecutionContext ctx;
- internal CommitPoint LatestCommitPoint;
internal readonly Functions functions;
@@ -122,7 +121,6 @@ internal ClientSession(
this.store = store;
this.ctx = ctx;
this.functions = functions;
- LatestCommitPoint = new CommitPoint { UntilSerialNo = -1, ExcludedSerialNos = null };
TsavoriteSession = new InternalTsavoriteSession(this);
}
@@ -131,21 +129,6 @@ internal ClientSession(
///
public int ID { get { return ctx.sessionID; } }
- ///
- /// Get session name
- ///
- public string Name { get { return ctx.sessionName; } }
-
- ///
- /// Next sequential serial no for session (current serial no + 1)
- ///
- public long NextSerialNo => ctx.serialNum + 1;
-
- ///
- /// Current serial no for session
- ///
- public long SerialNo => ctx.serialNum;
-
///
/// Current version number of the session
///
@@ -207,12 +190,12 @@ public LockableContext LockableCo
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default, long serialNo = 0)
+ public Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextRead(ref key, ref input, ref output, userContext, TsavoriteSession, serialNo);
+ return store.ContextRead(ref key, ref input, ref output, userContext, TsavoriteSession);
}
finally
{
@@ -222,85 +205,85 @@ public Status Read(ref Key key, ref Input input, ref Output output, Context user
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
- => Read(ref key, ref input, ref output, ref readOptions, out _, userContext, serialNo);
+ public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default)
+ => Read(ref key, ref input, ref output, ref readOptions, out _, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, Input input, out Output output, Context userContext = default, long serialNo = 0)
+ public Status Read(Key key, Input input, out Output output, Context userContext = default)
{
output = default;
- return Read(ref key, ref input, ref output, userContext, serialNo);
+ return Read(ref key, ref input, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
+ public Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default)
{
output = default;
- return Read(ref key, ref input, ref output, ref readOptions, userContext, serialNo);
+ return Read(ref key, ref input, ref output, ref readOptions, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Output output, Context userContext = default, long serialNo = 0)
+ public Status Read(ref Key key, ref Output output, Context userContext = default)
{
Input input = default;
- return Read(ref key, ref input, ref output, userContext, serialNo);
+ return Read(ref key, ref input, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
+ public Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default)
{
Input input = default;
- return Read(ref key, ref input, ref output, ref readOptions, userContext, serialNo);
+ return Read(ref key, ref input, ref output, ref readOptions, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, out Output output, Context userContext = default, long serialNo = 0)
+ public Status Read(Key key, out Output output, Context userContext = default)
{
Input input = default;
output = default;
- return Read(ref key, ref input, ref output, userContext, serialNo);
+ return Read(ref key, ref input, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
+ public Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default)
{
Input input = default;
output = default;
- return Read(ref key, ref input, ref output, ref readOptions, userContext, serialNo);
+ return Read(ref key, ref input, ref output, ref readOptions, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public (Status status, Output output) Read(Key key, Context userContext = default, long serialNo = 0)
+ public (Status status, Output output) Read(Key key, Context userContext = default)
{
Input input = default;
Output output = default;
- return (Read(ref key, ref input, ref output, userContext, serialNo), output);
+ return (Read(ref key, ref input, ref output, userContext), output);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0)
+ public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default)
{
Input input = default;
Output output = default;
- return (Read(ref key, ref input, ref output, ref readOptions, userContext, serialNo), output);
+ return (Read(ref key, ref input, ref output, ref readOptions, userContext), output);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextRead(ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, TsavoriteSession, serialNo);
+ return store.ContextRead(ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, TsavoriteSession);
}
finally
{
@@ -310,12 +293,12 @@ public Status Read(ref Key key, ref Input input, ref Output output, ref ReadOpti
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ public Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextReadAtAddress(address, ref input, ref output, ref readOptions, out recordMetadata, userContext, serialNo, TsavoriteSession);
+ return store.ContextReadAtAddress(address, ref input, ref output, ref readOptions, out recordMetadata, userContext, TsavoriteSession);
}
finally
{
@@ -325,12 +308,12 @@ public Status ReadAtAddress(long address, ref Input input, ref Output output, re
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ public Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextReadAtAddress(address, ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, serialNo, TsavoriteSession);
+ return store.ContextReadAtAddress(address, ref key, ref input, ref output, ref readOptions, out recordMetadata, userContext, TsavoriteSession);
}
finally
{
@@ -340,103 +323,103 @@ public Status ReadAtAddress(long address, ref Key key, ref Input input, ref Outp
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, CancellationToken cancellationToken = default)
{
ReadOptions readOptions = default;
- return store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken);
+ return store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, cancellationToken);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken);
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, CancellationToken cancellationToken = default)
+ => store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, cancellationToken);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
- => ReadAsync(ref key, ref input, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, CancellationToken token = default)
+ => ReadAsync(ref key, ref input, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, CancellationToken token = default)
+ => store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, CancellationToken token = default)
{
ReadOptions readOptions = default;
- return ReadAsync(ref key, ref readOptions, userContext, serialNo, token);
+ return ReadAsync(ref key, ref readOptions, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, CancellationToken token = default)
{
Input input = default;
- return store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, serialNo, token);
+ return store.ReadAsync(TsavoriteSession, ref key, ref input, ref readOptions, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, long serialNo = 0, CancellationToken token = default)
- => ReadAsync(ref key, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, CancellationToken token = default)
+ => ReadAsync(ref key, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => ReadAsync(ref key, ref readOptions, context, serialNo, token);
+ public ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, CancellationToken token = default)
+ => ReadAsync(ref key, ref readOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Input input, ref ReadOptions readOptions,
- Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
+ Context userContext = default, CancellationToken cancellationToken = default)
{
Key key = default;
- return store.ReadAtAddressAsync(TsavoriteSession, address, ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken, noKey: true);
+ return store.ReadAtAddressAsync(TsavoriteSession, address, ref key, ref input, ref readOptions, userContext, cancellationToken, noKey: true);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default)
- => store.ReadAtAddressAsync(TsavoriteSession, address, ref key, ref input, ref readOptions, userContext, serialNo, cancellationToken, noKey: false);
+ public ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Key key, ref Input input, ref ReadOptions readOptions, Context userContext = default, CancellationToken cancellationToken = default)
+ => store.ReadAtAddressAsync(TsavoriteSession, address, ref key, ref input, ref readOptions, userContext, cancellationToken, noKey: false);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0)
+ public Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default)
{
Input input = default;
Output output = default;
- return Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext, serialNo);
+ return Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
+ public Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default)
{
Input input = default;
Output output = default;
- return Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext, serialNo);
+ return Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default)
+ => Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default)
+ => Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0)
+ private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextUpsert(ref key, keyHash, ref input, ref desiredValue, ref output, userContext, TsavoriteSession, serialNo);
+ return store.ContextUpsert(ref key, keyHash, ref input, ref desiredValue, ref output, userContext, TsavoriteSession);
}
finally
{
@@ -446,22 +429,22 @@ private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desi
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, out recordMetadata, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
+ => Upsert(ref key, store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, out recordMetadata, userContext, serialNo);
+ public Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default)
+ => Upsert(ref key, upsertOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref desiredValue, ref output, out recordMetadata, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextUpsert(ref key, keyHash, ref input, ref desiredValue, ref output, out recordMetadata, userContext, TsavoriteSession, serialNo);
+ return store.ContextUpsert(ref key, keyHash, ref input, ref desiredValue, ref output, out recordMetadata, userContext, TsavoriteSession);
}
finally
{
@@ -471,102 +454,102 @@ private Status Upsert(ref Key key, long keyHash, ref Input input, ref Value desi
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Value desiredValue, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, ref desiredValue, userContext, serialNo);
+ public Status Upsert(Key key, Value desiredValue, Context userContext = default)
+ => Upsert(ref key, ref desiredValue, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, ref desiredValue, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default)
+ => Upsert(ref key, ref desiredValue, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, ref input, ref desiredValue, ref output, userContext, serialNo);
+ public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default)
+ => Upsert(ref key, ref input, ref desiredValue, ref output, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0)
- => Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext, serialNo);
+ public Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default)
+ => Upsert(ref key, ref input, ref desiredValue, ref output, ref upsertOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, CancellationToken token = default)
{
Input input = default;
- return UpsertAsync(ref key, ref input, ref desiredValue, userContext, serialNo, token);
+ return UpsertAsync(ref key, ref input, ref desiredValue, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
{
Input input = default;
- return UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ return UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, CancellationToken token = default)
{
UpsertOptions upsertOptions = default;
- return UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ return UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => store.UpsertAsync(TsavoriteSession, ref key, ref input, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => store.UpsertAsync(TsavoriteSession, ref key, ref input, ref desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => UpsertAsync(ref key, ref desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => UpsertAsync(ref key, ref desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => UpsertAsync(ref key, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => UpsertAsync(ref key, ref desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => UpsertAsync(ref key, ref input, ref desiredValue, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, Context userContext = default, CancellationToken token = default)
+ => UpsertAsync(ref key, ref input, ref desiredValue, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, serialNo, token);
+ public ValueTask.UpsertAsyncResult> UpsertAsync(Key key, Input input, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default)
+ => UpsertAsync(ref key, ref input, ref desiredValue, ref upsertOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, Context userContext = default, long serialNo = 0)
- => RMW(ref key, store.comparer.GetHashCode64(ref key), ref input, ref output, out _, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, Context userContext = default)
+ => RMW(ref key, store.comparer.GetHashCode64(ref key), ref input, ref output, out _, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => RMW(ref key, rmwOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref output, out _, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, Context userContext = default)
+ => RMW(ref key, rmwOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), ref input, ref output, out _, userContext);
///
- public Status RMW(ref Key key, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
- => RMW(ref key, store.comparer.GetHashCode64(ref key), ref input, ref output, out recordMetadata, userContext, serialNo);
+ public Status RMW(ref Key key, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
+ => RMW(ref key, store.comparer.GetHashCode64(ref key), ref input, ref output, out recordMetadata, userContext);
///
- public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ public Status RMW(ref Key key, ref Input input, ref Output output, ref RMWOptions rmwOptions, out RecordMetadata recordMetadata, Context userContext = default)
{
var keyHash = rmwOptions.KeyHash ?? store.comparer.GetHashCode64(ref key);
- return RMW(ref key, keyHash, ref input, ref output, out recordMetadata, userContext, serialNo);
+ return RMW(ref key, keyHash, ref input, ref output, out recordMetadata, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- private Status RMW(ref Key key, long keyHash, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0)
+ private Status RMW(ref Key key, long keyHash, ref Input input, ref Output output, out RecordMetadata recordMetadata, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextRMW(ref key, keyHash, ref input, ref output, out recordMetadata, userContext, TsavoriteSession, serialNo);
+ return store.ContextRMW(ref key, keyHash, ref input, ref output, out recordMetadata, userContext, TsavoriteSession);
}
finally
{
@@ -576,87 +559,87 @@ private Status RMW(ref Key key, long keyHash, ref Input input, ref Output output
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, out Output output, Context userContext = default, long serialNo = 0)
+ public Status RMW(Key key, Input input, out Output output, Context userContext = default)
{
output = default;
- return RMW(ref key, ref input, ref output, userContext, serialNo);
+ return RMW(ref key, ref input, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, out Output output, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
+ public Status RMW(Key key, Input input, out Output output, ref RMWOptions rmwOptions, Context userContext = default)
{
output = default;
- return RMW(ref key, ref input, ref output, ref rmwOptions, userContext, serialNo);
+ return RMW(ref key, ref input, ref output, ref rmwOptions, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, Context userContext = default, long serialNo = 0)
+ public Status RMW(ref Key key, ref Input input, Context userContext = default)
{
Output output = default;
- return RMW(ref key, ref input, ref output, userContext, serialNo);
+ return RMW(ref key, ref input, ref output, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
+ public Status RMW(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context userContext = default)
{
Output output = default;
- return RMW(ref key, ref input, ref output, ref rmwOptions, userContext, serialNo);
+ return RMW(ref key, ref input, ref output, ref rmwOptions, userContext);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, Context userContext = default, long serialNo = 0)
- => RMW(ref key, ref input, userContext, serialNo);
+ public Status RMW(Key key, Input input, Context userContext = default)
+ => RMW(ref key, ref input, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status RMW(Key key, Input input, ref RMWOptions rmwOptions, Context userContext = default, long serialNo = 0)
- => RMW(ref key, ref input, ref rmwOptions, userContext, serialNo);
+ public Status RMW(Key key, Input input, ref RMWOptions rmwOptions, Context userContext = default)
+ => RMW(ref key, ref input, ref rmwOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, Context context = default, CancellationToken token = default)
{
RMWOptions rmwOptions = default;
- return store.RmwAsync(TsavoriteSession, ref key, ref input, ref rmwOptions, context, serialNo, token);
+ return store.RmwAsync(TsavoriteSession, ref key, ref input, ref rmwOptions, context, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => store.RmwAsync(TsavoriteSession, ref key, ref input, ref rmwOptions, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(ref Key key, ref Input input, ref RMWOptions rmwOptions, Context context = default, CancellationToken token = default)
+ => store.RmwAsync(TsavoriteSession, ref key, ref input, ref rmwOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, Context context = default, long serialNo = 0, CancellationToken token = default)
- => RMWAsync(ref key, ref input, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, Context context = default, CancellationToken token = default)
+ => RMWAsync(ref key, ref input, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, ref RMWOptions rmwOptions, Context context = default, long serialNo = 0, CancellationToken token = default)
- => RMWAsync(ref key, ref input, ref rmwOptions, context, serialNo, token);
+ public ValueTask.RmwAsyncResult> RMWAsync(Key key, Input input, ref RMWOptions rmwOptions, Context context = default, CancellationToken token = default)
+ => RMWAsync(ref key, ref input, ref rmwOptions, context, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(ref Key key, Context userContext = default, long serialNo = 0)
- => Delete(ref key, store.comparer.GetHashCode64(ref key), userContext, serialNo);
+ public Status Delete(ref Key key, Context userContext = default)
+ => Delete(ref key, store.comparer.GetHashCode64(ref key), userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0)
- => Delete(ref key, deleteOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), userContext, serialNo);
+ public Status Delete(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default)
+ => Delete(ref key, deleteOptions.KeyHash ?? store.comparer.GetHashCode64(ref key), userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(ref Key key, long keyHash, Context userContext = default, long serialNo = 0)
+ private Status Delete(ref Key key, long keyHash, Context userContext = default)
{
UnsafeResumeThread();
try
{
- return store.ContextDelete(ref key, keyHash, userContext, TsavoriteSession, serialNo);
+ return store.ContextDelete(ref key, keyHash, userContext, TsavoriteSession);
}
finally
{
@@ -666,36 +649,36 @@ public Status Delete(ref Key key, long keyHash, Context userContext = default, l
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(Key key, Context userContext = default, long serialNo = 0)
- => Delete(ref key, userContext, serialNo);
+ public Status Delete(Key key, Context userContext = default)
+ => Delete(ref key, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Status Delete(Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0)
- => Delete(ref key, ref deleteOptions, userContext, serialNo);
+ public Status Delete(Key key, ref DeleteOptions deleteOptions, Context userContext = default)
+ => Delete(ref key, ref deleteOptions, userContext);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
+ public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, Context userContext = default, CancellationToken token = default)
{
DeleteOptions deleteOptions = default;
- return store.DeleteAsync(TsavoriteSession, ref key, ref deleteOptions, userContext, serialNo, token);
+ return store.DeleteAsync(TsavoriteSession, ref key, ref deleteOptions, userContext, token);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => store.DeleteAsync(TsavoriteSession, ref key, ref deleteOptions, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(ref Key key, ref DeleteOptions deleteOptions, Context userContext = default, CancellationToken token = default)
+ => store.DeleteAsync(TsavoriteSession, ref key, ref deleteOptions, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => DeleteAsync(ref key, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, Context userContext = default, CancellationToken token = default)
+ => DeleteAsync(ref key, userContext, token);
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, ref DeleteOptions deleteOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default)
- => DeleteAsync(ref key, ref deleteOptions, userContext, serialNo, token);
+ public ValueTask.DeleteAsyncResult> DeleteAsync(Key key, ref DeleteOptions deleteOptions, Context userContext = default, CancellationToken token = default)
+ => DeleteAsync(ref key, ref deleteOptions, userContext, token);
///
public void Refresh()
@@ -908,19 +891,12 @@ public async ValueTask WaitForCommitAsync(CancellationToken token = default)
await CompletePendingAsync(token: token).ConfigureAwait(false);
var task = store.CheckpointTask;
- CommitPoint localCommitPoint = LatestCommitPoint;
- if (localCommitPoint.UntilSerialNo >= ctx.serialNum && localCommitPoint.ExcludedSerialNos?.Count == 0)
- return;
while (true)
{
- await task.WithCancellationAsync(token).ConfigureAwait(false);
+ _ = await task.WithCancellationAsync(token).ConfigureAwait(false);
Refresh();
-
task = store.CheckpointTask;
- localCommitPoint = LatestCommitPoint;
- if (localCommitPoint.UntilSerialNo >= ctx.serialNum && localCommitPoint.ExcludedSerialNos?.Count == 0)
- break;
}
}
@@ -1104,7 +1080,7 @@ internal void UnsafeSuspendThread()
void IClientSession.AtomicSwitch(long version)
{
- TsavoriteKV.AtomicSwitch(ctx, ctx.prevCtx, version, store._hybridLogCheckpoint.info.checkpointTokens);
+ TsavoriteKV.AtomicSwitch(ctx, ctx.prevCtx, version);
}
///
@@ -1301,14 +1277,6 @@ public void DisposeForRevivification(ref Key key, ref Value value, int newKeySiz
=> _clientSession.functions.DisposeForRevivification(ref key, ref value, newKeySize);
#endregion IFunctions - Dispose
- #region IFunctions - Checkpointing
- public void CheckpointCompletionCallback(int sessionID, string sessionName, CommitPoint commitPoint)
- {
- _clientSession.functions.CheckpointCompletionCallback(sessionID, sessionName, commitPoint);
- _clientSession.LatestCommitPoint = commitPoint;
- }
- #endregion IFunctions - Checkpointing
-
#region Transient locking
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool TryLockTransientExclusive(ref Key key, ref OperationStackContext stackCtx)
diff --git a/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSessionBuilder.cs b/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSessionBuilder.cs
index e93367e879..1b2a527bfe 100644
--- a/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSessionBuilder.cs
+++ b/libs/storage/Tsavorite/cs/src/core/ClientSession/ClientSessionBuilder.cs
@@ -26,8 +26,6 @@ public ClientSession NewSession();
@@ -49,54 +47,6 @@ public ClientSession NewSession
- /// Resume (continue) prior client session with Tsavorite; used during recovery from failure.
- ///
- /// Callback functions
- /// Name of previous session to resume
- /// Prior commit point of durability for session
- /// for this session; override those specified at TsavoriteKV level, and may be overridden on individual Read operations
- /// Session instance
- internal ClientSession ResumeSession(Functions functions, string sessionName, out CommitPoint commitPoint,
- ReadCopyOptions readCopyOptions = default)
- where Functions : IFunctions
- {
- // Map from sessionName to sessionID and call through
- if (_recoveredSessionNameMap == null || !_recoveredSessionNameMap.TryRemove(sessionName, out int sessionID))
- throw new TsavoriteException($"Unable to find session named {sessionName} to recover");
- return ResumeSession(functions, sessionID, out commitPoint, readCopyOptions);
- }
-
- ///
- /// Resume (continue) prior client session with Tsavorite; used during recovery from failure.
- ///
- /// Callback functions
- /// ID of previous session to resume
- /// Prior commit point of durability for session
- /// for this session; override those specified at TsavoriteKV level, and may be overridden on individual Read operations
- /// Session instance
- internal ClientSession ResumeSession(Functions functions, int sessionID, out CommitPoint commitPoint,
- ReadCopyOptions readCopyOptions = default)
- where Functions : IFunctions
- {
- if (functions == null)
- throw new ArgumentNullException(nameof(functions));
-
- string sessionName;
- (sessionName, commitPoint) = InternalContinue(sessionID, out var ctx);
- if (commitPoint.UntilSerialNo == -1)
- throw new Exception($"Unable to find session {sessionID} to recover");
- ctx.MergeReadCopyOptions(ReadCopyOptions, readCopyOptions);
-
- var session = new ClientSession(this, ctx, functions);
-
- if (_activeSessions == null)
- Interlocked.CompareExchange(ref _activeSessions, new Dictionary(), null);
- lock (_activeSessions)
- _activeSessions.Add(sessionID, new SessionInfo { sessionName = sessionName, session = session, isActive = true });
- return session;
- }
-
///
/// Dispose session with Tsavorite
///
diff --git a/libs/storage/Tsavorite/cs/src/core/ClientSession/ITsavoriteContext.cs b/libs/storage/Tsavorite/cs/src/core/ClientSession/ITsavoriteContext.cs
index 3b524f32bd..2f2c5157cd 100644
--- a/libs/storage/Tsavorite/cs/src/core/ClientSession/ITsavoriteContext.cs
+++ b/libs/storage/Tsavorite/cs/src/core/ClientSession/ITsavoriteContext.cs
@@ -71,9 +71,8 @@ public interface ITsavoriteContext : ITsavor
/// Input to help extract the retrieved value into
/// The location to place the retrieved value
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default, long serialNo = 0);
+ Status Read(ref Key key, ref Input input, ref Output output, Context userContext = default);
///
/// Read operation
@@ -83,9 +82,8 @@ public interface ITsavoriteContext : ITsavor
/// The location to place the retrieved value
/// Contains options controlling the Read operation
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0);
+ Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, Context userContext = default);
///
/// Read operation
@@ -94,9 +92,8 @@ public interface ITsavoriteContext : ITsavor
/// Input to help extract the retrieved value into
/// The location to place the retrieved value
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(Key key, Input input, out Output output, Context userContext = default, long serialNo = 0);
+ Status Read(Key key, Input input, out Output output, Context userContext = default);
///
/// Read operation
@@ -106,9 +103,8 @@ public interface ITsavoriteContext : ITsavor
/// The location to place the retrieved value
/// Contains options controlling the Read operation
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0);
+ Status Read(Key key, Input input, out Output output, ref ReadOptions readOptions, Context userContext = default);
///
/// Read operation
@@ -116,9 +112,8 @@ public interface ITsavoriteContext : ITsavor
/// The key to look up
/// The location to place the retrieved value
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(ref Key key, ref Output output, Context userContext = default, long serialNo = 0);
+ Status Read(ref Key key, ref Output output, Context userContext = default);
///
/// Read operation
@@ -127,9 +122,8 @@ public interface ITsavoriteContext : ITsavor
/// The location to place the retrieved value
/// Contains options controlling the Read operation
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0);
+ Status Read(ref Key key, ref Output output, ref ReadOptions readOptions, Context userContext = default);
///
/// Read operation
@@ -137,9 +131,8 @@ public interface ITsavoriteContext : ITsavor
///
///
///
- ///
///
- Status Read(Key key, out Output output, Context userContext = default, long serialNo = 0);
+ Status Read(Key key, out Output output, Context userContext = default);
///
/// Read operation
@@ -148,18 +141,16 @@ public interface ITsavoriteContext : ITsavor
///
/// Contains options controlling the Read operation
///
- ///
///
- Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0);
+ Status Read(Key key, out Output output, ref ReadOptions readOptions, Context userContext = default);
///
/// Read operation
///
///
///
- ///
///
- public (Status status, Output output) Read(Key key, Context userContext = default, long serialNo = 0);
+ public (Status status, Output output) Read(Key key, Context userContext = default);
///
/// Read operation
@@ -167,9 +158,8 @@ public interface ITsavoriteContext : ITsavor
///
/// Contains options controlling the Read operation
///
- ///
///
- public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0);
+ public (Status status, Output output) Read(Key key, ref ReadOptions readOptions, Context userContext = default);
///
/// Read operation that accepts a ref argument to start the lookup at instead of starting at the hash table entry for ,
@@ -188,9 +178,8 @@ public interface ITsavoriteContext : ITsavor
///
///
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation
- Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0);
+ Status Read(ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default);
///
/// Read operation that accepts an address to lookup at, instead of a key.
@@ -201,9 +190,8 @@ public interface ITsavoriteContext : ITsavor
/// Contains options controlling the Read operation, including the address to read at in StartAddress
/// On output, receives metadata about the record
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation; this should store the key if it needs it
- Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0);
+ Status ReadAtAddress(long address, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default);
///
/// Read operation that accepts an address to lookup at, and a key to optimize locking.
@@ -215,9 +203,8 @@ public interface ITsavoriteContext : ITsavor
/// Contains options controlling the Read operation, including the address to read at in StartAddress
/// On output, receives metadata about the record
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// is populated by the implementation; this should store the key if it needs it
- Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0);
+ Status ReadAtAddress(long address, ref Key key, ref Input input, ref Output output, ref ReadOptions readOptions, out RecordMetadata recordMetadata, Context userContext = default);
///
/// Async read operation. May return uncommitted results; to ensure reading of committed results, complete the read and then call WaitForCommitAsync.
@@ -225,7 +212,6 @@ public interface ITsavoriteContext : ITsavor
/// The key to look up
/// Input to help extract the retrieved value into output
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -235,7 +221,7 @@ public interface ITsavoriteContext : ITsavor
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default);
+ ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, Context userContext = default, CancellationToken cancellationToken = default);
///
/// Async read operation, may return uncommitted result
@@ -244,7 +230,6 @@ public interface ITsavoriteContext : ITsavor
///
///
///
- ///
///
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -254,7 +239,7 @@ public interface ITsavoriteContext : ITsavor
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, Context context = default, CancellationToken token = default);
///
/// Async read operation, may return uncommitted result
@@ -264,7 +249,6 @@ public interface ITsavoriteContext : ITsavor
///
///
///
- ///
///
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -274,7 +258,7 @@ public interface ITsavoriteContext : ITsavor
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(Key key, Input input, ref ReadOptions readOptions, Context context = default, CancellationToken token = default);
///
/// Async read operation that accepts an address to start the lookup at instead of starting at the hash table entry for ,
@@ -285,7 +269,6 @@ public interface ITsavoriteContext : ITsavor
/// Input to help extract the retrieved value into output
/// Contains options controlling the Read operation
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -297,14 +280,13 @@ public interface ITsavoriteContext : ITsavor
/// implementation, and optionally a copy of the header for the retrieved record
///
ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref Input input, ref ReadOptions readOptions,
- Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default);
+ Context userContext = default, CancellationToken cancellationToken = default);
///
/// Async read operation. May return uncommitted results; to ensure reading of committed results, complete the read and then call WaitForCommitAsync.
///
/// The key to look up
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -314,7 +296,7 @@ ValueTask.ReadAsyncResult> ReadA
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(ref Key key, Context userContext = default, CancellationToken token = default);
///
/// Async read operation. May return uncommitted results; to ensure reading of committed results, complete the read and then call WaitForCommitAsync.
@@ -322,7 +304,6 @@ ValueTask.ReadAsyncResult> ReadA
/// The key to look up
/// Contains options controlling the Read operation
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -332,7 +313,7 @@ ValueTask.ReadAsyncResult> ReadA
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(ref Key key, ref ReadOptions readOptions, Context userContext = default, CancellationToken token = default);
///
/// Async read operation, may return uncommitted result
@@ -340,7 +321,6 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -350,7 +330,7 @@ ValueTask.ReadAsyncResult> ReadA
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(Key key, Context context = default, CancellationToken token = default);
///
/// Async read operation, may return uncommitted result
@@ -359,7 +339,6 @@ ValueTask.ReadAsyncResult> ReadA
///
/// Contains options controlling the Read operation
///
- ///
///
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -369,7 +348,7 @@ ValueTask.ReadAsyncResult> ReadA
///
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
- ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.ReadAsyncResult> ReadAsync(Key key, ref ReadOptions readOptions, Context context = default, CancellationToken token = default);
///
/// Async Read operation that accepts an address argument to lookup at, instead of a key.
@@ -378,7 +357,6 @@ ValueTask.ReadAsyncResult> ReadA
/// Input to help extract the retrieved value into output
/// Contains options controlling the Read operation, including the address to read at in StartAddress
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -389,7 +367,7 @@ ValueTask.ReadAsyncResult> ReadA
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Input input, ref ReadOptions readOptions,
- Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default);
+ Context userContext = default, CancellationToken cancellationToken = default);
///
/// Async Read operation that accepts an address argument to lookup at, and a key to optimize locking.
@@ -399,7 +377,6 @@ ValueTask.ReadAsyncResult> ReadA
/// Input to help extract the retrieved value into output
/// Contains options controlling the Read operation, including the address to read at in StartAddress
/// User application context passed in case the read goes pending due to IO
- /// The serial number of the operation (used in recovery)
/// Token to cancel the operation
/// wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -410,7 +387,7 @@ ValueTask.ReadAsyncResult> ReadA
/// to complete the read operation and obtain the result status, the output that is populated by the
/// implementation, and optionally a copy of the header for the retrieved record
ValueTask.ReadAsyncResult> ReadAtAddressAsync(long address, ref Key key, ref Input input, ref ReadOptions readOptions,
- Context userContext = default, long serialNo = 0, CancellationToken cancellationToken = default);
+ Context userContext = default, CancellationToken cancellationToken = default);
///
/// Upsert operation
@@ -418,9 +395,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Value desiredValue, Context userContext = default);
///
/// Upsert operation
@@ -429,9 +405,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default);
///
/// Upsert operation
@@ -441,9 +416,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, Context userContext = default);
///
/// Upsert operation
@@ -454,9 +428,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default);
///
/// Upsert operation
@@ -467,9 +440,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, out RecordMetadata recordMetadata, Context userContext = default);
///
/// Upsert operation
@@ -481,9 +453,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default, long serialNo = 0);
+ Status Upsert(ref Key key, ref Input input, ref Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, out RecordMetadata recordMetadata, Context userContext = default);
///
/// Upsert operation
@@ -491,9 +462,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(Key key, Value desiredValue, Context userContext = default, long serialNo = 0);
+ Status Upsert(Key key, Value desiredValue, Context userContext = default);
///
/// Upsert operation
@@ -502,9 +472,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0);
+ Status Upsert(Key key, Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default);
///
/// Upsert operation
@@ -514,9 +483,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default, long serialNo = 0);
+ Status Upsert(Key key, Input input, Value desiredValue, ref Output output, Context userContext = default);
///
/// Upsert operation
@@ -527,9 +495,8 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
- Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0);
+ Status Upsert(Key key, Input input, Value desiredValue, ref Output output, ref UpsertOptions upsertOptions, Context userContext = default);
///
/// Async Upsert operation
@@ -538,7 +505,6 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
/// ValueTask wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -547,7 +513,7 @@ ValueTask.ReadAsyncResult> ReadA
/// - result = await result. while result.Status is
///
/// to complete the Upsert operation. Failure to complete the operation will result in leaked allocations.
- ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, Context userContext = default, CancellationToken token = default);
///
/// Async Upsert operation
@@ -557,7 +523,6 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
/// ValueTask wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -566,7 +531,7 @@ ValueTask.ReadAsyncResult> ReadA
/// - result = await result. while result.Status is
///
/// to complete the Upsert operation. Failure to complete the operation will result in leaked allocations.
- ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Value desiredValue, ref UpsertOptions upsertOptions, Context userContext = default, CancellationToken token = default);
///
/// Async Upsert operation
@@ -576,7 +541,6 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
/// ValueTask wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -585,7 +549,7 @@ ValueTask.ReadAsyncResult> ReadA
/// - result = await result. while result.Status is
///
/// to complete the Upsert operation. Failure to complete the operation will result in leaked allocations.
- ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, long serialNo = 0, CancellationToken token = default);
+ ValueTask.UpsertAsyncResult> UpsertAsync(ref Key key, ref Input input, ref Value desiredValue, Context userContext = default, CancellationToken token = default);
///
/// Async Upsert operation
@@ -596,7 +560,6 @@ ValueTask.ReadAsyncResult> ReadA
///
///
///
- ///
///
/// ValueTask wrapping
/// The caller must await the return value to obtain the result, then call one of
@@ -605,7 +568,7 @@ ValueTask.ReadAsyncResult> ReadA
/// - result = await result.