private FasterKV <TData, TData> Setup <TData>() { log = new LocalMemoryDevice(1L << 26, 1L << 22, 2, sector_size: smallSector ? 64 : (uint)512, fileName: $"{path}{typeof(TData).Name}.log"); objlog = serializerSettingsObj is null ? null : new LocalMemoryDevice(1L << 26, 1L << 22, 2, fileName: $"{path}{typeof(TData).Name}.obj.log"); var varLenStruct = this.varLenStructObj as IVariableLengthStruct <TData>; Assert.AreEqual(this.varLenStructObj is null, varLenStruct is null, "varLenStructSettings"); VariableLengthStructSettings <TData, TData> varLenStructSettings = varLenStruct is null ? null : new VariableLengthStructSettings <TData, TData> { keyLength = varLenStruct, valueLength = varLenStruct }; var result = new FasterKV <TData, TData>(DeviceTypeRecoveryTests.keySpace, new LogSettings { LogDevice = log, ObjectLogDevice = objlog, SegmentSizeBits = 25 }, new CheckpointSettings { CheckpointDir = path }, this.serializerSettingsObj as SerializerSettings <TData, TData>, variableLengthStructSettings: varLenStructSettings ); fhtDisp = result; return(result); }
public KeyValueStore(string folder, int logSizeBits, IFasterEqualityComparer <TKey> keyComparer, TFunctions functions, IVariableLengthStruct <TKey> keyLength, IVariableLengthStruct <TValue> valueLength) { _dataFolder = folder; _logSizeBits = logSizeBits; _keyComparer = keyComparer; _functions = functions; _variableLenSettings = new VariableLengthStructSettings <TKey, TValue> { keyLength = keyLength, valueLength = valueLength }; }
/// <summary> /// Iterator for all (distinct) live key-values stored in FASTER /// </summary> /// <param name="untilAddress">Report records until this address (tail by default)</param> /// <returns>FASTER iterator</returns> public IFasterScanIterator <Key, Value> Iterate(long untilAddress = -1) { if (untilAddress == -1) { untilAddress = Log.TailAddress; } if (hlog is VariableLengthBlittableAllocator <Key, Value> varLen) { var functions = new LogVariableCompactFunctions <Key, Value, DefaultVariableCompactionFunctions <Key, Value> >(varLen, default); var variableLengthStructSettings = new VariableLengthStructSettings <Key, Value> { keyLength = varLen.KeyLength, valueLength = varLen.ValueLength, }; return(new FasterKVIterator <Key, Value, LogVariableCompactFunctions <Key, Value, DefaultVariableCompactionFunctions <Key, Value> >, DefaultVariableCompactionFunctions <Key, Value> > (this, functions, default, untilAddress, variableLengthStructSettings));