* Initial checkin
* Removed Key* from benchmarks
* Changed callback functions from static to object.
* Removed raw pointers to Value type.
* All user types are now ref-based.
* Generic version of FASTER compiles and works fine for blittable types, for in-memory operations. BasicFASTERTests test cases now pass. There is no performance regression for 50:50 read/upsert YCSB workload. ManagedSample1 is now based on generic FASTER. Support for non-blittable objects has not yet been added. Codegen fails - but can be ignored for now.
* Updates to support generic version
* Updates to refactor allocator
* Testing alt allocator structure
* Fully working generic support, still needs cleanup
* Fixed multi-threading bug with generic allocator.
* Further updates, object recovery not yet passing.
* Fixes to generic object recovery. All tests pass! Cleanup still pending.
* Update samples
* More cleanup and refactoring
* More cleanup and code cutting.
* Heavy simplification of user API and interfaces.
* Removed InitialValueLength from user callback functions
* Updating AddressInfo calculation for AnyCPU 32-bit compat. Other cleanup.
* Cleanup of inlining directives
* Changing key comparer to use a separate IFasterEqualityComparer<T> interface. Now, there are no interface restrictions or requirements on any of the FASTER key/value types.
* Cleanup, simplification, updates. Persistence API cleaned up as well.
* Simplifying Guid determination for persistence callback.
* Fixing test break in AnyCPU-Debug due to different struct layout.
* Fixing the checkpointing directory settings and log creation and initialization code.
The C# version of FASTER consists of a separate object log that contains the C# objects that are heap-allocated. This checking writes and reads the object log for a page incrementally, in chunks of 100MB. This avoids collecting all the data in an in-memory buffer before reading or writing them. There is a limit of 2GB per key-value pair in this setting.