public void TearDown() { fht.StopSession(); fht.Dispose(); fht = null; log.Close(); }
public void TearDown() { fht.StopSession(); fht.Dispose(); fht = null; log.Close(); objlog.Close(); DeleteDirectory(test_path); }
public void LargeObjectTest1() { log = FasterFactory.CreateLogDevice(TestContext.CurrentContext.TestDirectory + "\\hlog", deleteOnClose: true); objlog = FasterFactory.CreateObjectLogDevice(TestContext.CurrentContext.TestDirectory + "\\hlog", deleteOnClose: true); Directory.CreateDirectory(TestContext.CurrentContext.TestDirectory + "\\checkpoints"); fht1 = FasterFactory.Create <MyKey, MyLargeValue, MyInput, MyLargeOutput, MyContext, MyLargeFunctions> (indexSizeBuckets: 128, functions: new MyLargeFunctions(), logSettings: new LogSettings { LogDevice = log, ObjectLogDevice = objlog, MutableFraction = 0.1, MemorySizeBits = 29 }, checkpointSettings: new CheckpointSettings { CheckpointDir = TestContext.CurrentContext.TestDirectory + "\\checkpoints", CheckPointType = CheckpointType.Snapshot } ); fht2 = FasterFactory.Create <MyKey, MyLargeValue, MyInput, MyLargeOutput, MyContext, MyLargeFunctions> (indexSizeBuckets: 128, functions: new MyLargeFunctions(), logSettings: new LogSettings { LogDevice = log, ObjectLogDevice = objlog, MutableFraction = 0.1, MemorySizeBits = 29 }, checkpointSettings: new CheckpointSettings { CheckpointDir = TestContext.CurrentContext.TestDirectory + "\\checkpoints", CheckPointType = CheckpointType.Snapshot } ); int maxSize = 1000; int numOps = 5000; //var value = new MyLargeValue(size); fht1.StartSession(); Random r = new Random(33); for (int key = 0; key < numOps; key++) { var value = new MyLargeValue(1 + r.Next(maxSize)); fht1.Upsert(new MyKey { key = key }, value, null, 0); } fht1.TakeFullCheckpoint(out Guid token); fht1.CompleteCheckpoint(true); fht1.StopSession(); fht1.Dispose(); MyLargeOutput output = new MyLargeOutput(); fht2.Recover(token); fht2.StartSession(); for (int key = 0; key < numOps; key++) { var status = fht2.Read(new MyKey { key = key }, new MyInput(), ref output, null, 0); if (status == Status.PENDING) { fht2.CompletePending(true); } else { for (int i = 0; i < output.value.value.Length; i++) { Assert.IsTrue(output.value.value[i] == (byte)(output.value.value.Length + i)); } } } fht2.StopSession(); fht2.Dispose(); log.Close(); objlog.Close(); new DirectoryInfo(TestContext.CurrentContext.TestDirectory + "\\checkpoints").Delete(true); }