L4 (Lock-Free on Read) Hashtable is a C++ library that implements hash table with arbitray byte stream keys/values.
Перейти к файлу
Terry Kim 3b1648fc1a Support GCC 6.2. (#9) 2017-04-25 22:32:00 -07:00
Benchmark Upgrade to visual studio 2017. 2017-03-20 16:32:15 -07:00
Build Upgrade boost to 1.64. Remove non-standard zero-size-array. (#5) 2017-04-25 10:45:26 -07:00
Examples Upgrade to visual studio 2017. 2017-03-20 16:32:15 -07:00
Unittests Support GCC 6.2. (#9) 2017-04-25 22:32:00 -07:00
inc/L4 Support GCC 6.2. (#9) 2017-04-25 22:32:00 -07:00
src Preparation for GCC compatibility. (#7) 2017-04-25 20:04:53 -07:00
.gitignore Replace IStreamReader/IStreamWriter with std::istream/std::ostream. 2017-02-05 14:56:52 -08:00
CMakeLists.txt Support GCC 6.2. (#9) 2017-04-25 22:32:00 -07:00
L4.sln Initial commit. 2017-02-02 08:54:53 -08:00
LICENSE Update LICENSE with project name. 2017-02-02 16:25:46 -08:00
README.md Update info on Visual Studio 2017. 2017-03-20 16:34:38 -07:00

README.md

L4 HashTable

L4 (Lock-Free on Read) Hashtable is a C++ library that provides a fixed-size hashtable, where keys and values are arbitrary bytes.

L4 HashTable is optimized for lookup operations. It uses Epoch Queue (deterministic garbage collector) to achieve lock-free lookup operations.

L4 HashTable supports caching based on memory size and time. It uses Clock algorithm for an efficient cache eviction.

L4 HashTable is built with interprocess communication in mind and its shared memory implementation (multiple-readers-single-writer model at process level) is coming soon.

Installation

This library is developed and maintained with Visual Studio 2017. Visual Studio 2017 Community is available for free here.

To get started, open the L4.sln file and build the solution. Initially, it will automatically start downloading boost NuGet package before build starts.

Support for other platforms is under consideration.

Getting Started

Start with a simple example.

Check out the wiki.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

Code licensed under the MIT License.