Tags: wxjwz/FASTER
Tags
Merge branch 'master' of https://github.com/microsoft/FASTER
Implemented iterator for variable length structs. (microsoft#164) * Implemented iterator for variable length structs. Current IFasterScanIterator interface is not suited for variable length structs as GetNext would only return a fragment of key/value (up to sizeof(Key)/sizeof(Value)). To solve this issue two new methods were added ref GetKey()/ref GetValue() that return references to actual key/value references in hlog. There is disconnect in GenericScanIterator as it returns a reference to a copy of key/value and not direct reference to hlog. In case this is needed we could have flag to indicate whether we need to read from frame or hlog directly and store current page/offset. * Return VariableLengthBlittableScanIterator from VariableLengthBlittableAllocator.Scan * Added capacity to record when using variable length struct allocator. Added a check for in-place modifications, allocator can override the method to check for available space, if there is not enough space then a new record will be created. * Return estimated record size if stored capacity is 0. * ConcurrentWriter/InPlaceUpdater returns bool to indicate whether it is possible to update record in place. * Initial implementation of variable length compaction. * Added Delete to IFasterKV. * Variable length/blittable iterator - load record info from frame or hlog memory depending on whether the current address is in hlog memory or on disk (loaded to frame).
Sample to show use of FASTER with fixed-length structs (microsoft#160) * Sample to show use of FASTER with fixed-length struct keys and values, of size known at compile time
Variable length struct support in FASTER C# (microsoft#120) * Bringing back variable length inlined keys/values * Updated sample * Updates to correctly handle async reads * Added variable size inline key support * Added multi threaded class cache sample * Correct the required record retrieval size, for the case where keys and records may both be inline variable sized. * Updated HashBytes logic