Skip to content

Commit c496dce

Browse files
authored
Remove legacy SimpleVersionScheme (#806)
1 parent 63a9b9d commit c496dce

File tree

3 files changed

+16
-130
lines changed

3 files changed

+16
-130
lines changed

cs/src/core/Utilities/SimpleVersionScheme.cs

Lines changed: 0 additions & 114 deletions
This file was deleted.

cs/test/SimpleVersionSchemeTest.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ internal class SimpleVersionSchemeTest
1313
[Category("FasterLog")]
1414
public void SimpleTest()
1515
{
16-
var tested = new SimpleVersionScheme();
16+
var tested = new EpochProtectedVersionScheme(new LightEpoch());
1717
var protectedVal = 0;
1818
var v = tested.Enter();
1919

20-
Assert.AreEqual(1, v);
21-
tested.TryAdvanceVersion((_, _) => protectedVal = 1);
20+
Assert.AreEqual(1, v.Version);
21+
tested.TryAdvanceVersionWithCriticalSection((_, _) => protectedVal = 1);
2222
Thread.Sleep(10);
2323
// because of ongoing protection, nothing should happen yet
2424
tested.Leave();
@@ -27,37 +27,37 @@ public void SimpleTest()
2727

2828
// Next thread sees new version
2929
v = tested.Enter();
30-
Assert.AreEqual(v, 2);
30+
Assert.AreEqual(v.Version, 2);
3131
tested.Leave();
3232
}
3333

3434
[Test]
3535
[Category("FasterLog")]
3636
public void SingleThreadTest()
3737
{
38-
var tested = new SimpleVersionScheme();
38+
var tested = new EpochProtectedVersionScheme(new LightEpoch());
3939
var protectedVal = 0;
4040

4141
var v = tested.Enter();
42-
Assert.AreEqual(1, v);
42+
Assert.AreEqual(1, v.Version);
4343
tested.Leave();
4444

45-
tested.TryAdvanceVersion((_, _) => protectedVal = 1);
45+
tested.TryAdvanceVersionWithCriticalSection((_, _) => protectedVal = 1);
4646
Assert.AreEqual(1, protectedVal);
4747

48-
tested.TryAdvanceVersion((_, _) => protectedVal = 2, 4);
48+
tested.TryAdvanceVersionWithCriticalSection((_, _) => protectedVal = 2, 4);
4949
Assert.AreEqual(2, protectedVal);
5050

5151
v = tested.Enter();
52-
Assert.AreEqual(4, v);
52+
Assert.AreEqual(4, v.Version);
5353
tested.Leave();
5454
}
5555

5656
[Test]
5757
[Category("FasterLog")]
5858
public void LargeConcurrentTest()
5959
{
60-
var tested = new SimpleVersionScheme();
60+
var tested = new EpochProtectedVersionScheme(new LightEpoch());
6161
var protectedVal = 1L;
6262
var termination = new ManualResetEventSlim();
6363

@@ -71,7 +71,7 @@ public void LargeConcurrentTest()
7171
while (!termination.IsSet)
7272
{
7373
var v = tested.Enter();
74-
Assert.AreEqual(v, Interlocked.Read(ref protectedVal));
74+
Assert.AreEqual(v.Version, Interlocked.Read(ref protectedVal));
7575
tested.Leave();
7676
}
7777
});
@@ -81,7 +81,7 @@ public void LargeConcurrentTest()
8181

8282
for (var i = 0; i < 1000; i++)
8383
{
84-
tested.TryAdvanceVersion((vOld, vNew) =>
84+
tested.TryAdvanceVersionWithCriticalSection((vOld, vNew) =>
8585
{
8686
Assert.AreEqual(vOld, Interlocked.Read(ref protectedVal));
8787
// Flip sign to simulate critical section processing

cs/test/SimulatedFlakyDevice.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ public class SimulatedFlakyDevice : StorageDeviceBase
1919
private ErrorSimulationOptions options;
2020
private ThreadLocal<Random> random;
2121
private List<long> permanentlyFailedRangesStart, permanentlyFailedRangesEnd;
22-
private SimpleVersionScheme versionScheme;
22+
private EpochProtectedVersionScheme versionScheme;
2323

2424
public SimulatedFlakyDevice(IDevice underlying, ErrorSimulationOptions options) : base(underlying.FileName, underlying.SectorSize, underlying.Capacity)
2525
{
2626
this.underlying = underlying;
2727
this.options = options;
2828
permanentlyFailedRangesStart = new List<long>();
2929
permanentlyFailedRangesEnd = new List<long>();
30-
versionScheme = new SimpleVersionScheme();
30+
versionScheme = new EpochProtectedVersionScheme(new LightEpoch());
3131
random = new ThreadLocal<Random>(() => new Random());
3232
}
3333

@@ -73,7 +73,7 @@ public override void WriteAsync(IntPtr sourceAddress, int segmentId, ulong desti
7373
else if (random.Value.NextDouble() < options.writePermanentErrorRate)
7474
{
7575
callback(42, numBytesToWrite, context);
76-
versionScheme.TryAdvanceVersion((_, _) =>
76+
versionScheme.TryAdvanceVersionWithCriticalSection((_, _) =>
7777
{
7878
var index = permanentlyFailedRangesStart.BinarySearch(logicalDestStart);
7979
if (index >= 0)
@@ -129,7 +129,7 @@ public override void ReadAsync(int segmentId, ulong sourceAddress, IntPtr destin
129129
{
130130
callback(42, readLength, context);
131131

132-
versionScheme.TryAdvanceVersion((_, _) =>
132+
versionScheme.TryAdvanceVersionWithCriticalSection((_, _) =>
133133
{
134134
var index = permanentlyFailedRangesStart.BinarySearch(logicalSrcStart);
135135
if (index >= 0)

0 commit comments

Comments
 (0)