The H-Store project is pleased to announce the release of the final version of its transaction processing database management system. This version is forever known as the “We All Got Jobs” release to celebrate the fact that all of the core students that were working on the H-Store project have graduated from their respective universities and moved on to full-time employment. We thought about calling this the “Turing Award” release, but that seemed a bit garish. Plus Mike didn’t have to spend hours trying to figure out JVM garbage collection problems like we all did.
The final version means that there is unlikely to be any more major development in the system. There may be some bug fixes H-Store in the years that follow, but you should not expect any new features or projects. There will probably be one or two more H-Store papers published this year as well. If you want to use a more state-of-the-art DBMS that is based on H-Store’s architecture, then you should use VoltDB. Yes, VoltDB is open-source. Stop asking.
Some of us are also now building the next system…
Major highlights of this release:
- Improved the anti-caching architecture in the system to be smarter about moving in and out of secondary storage. This includes the use of a CountMin Sketch to selectively merge a cold data block back into memory if the data is accessed a lot in a window. There is also support for multi-tier anti-caching to allow you to define a hierarchical storage layout for spilling tuples from DRAM to durable storage. [8d19ab1] [b654e8b] [063e024] [4fb3757] [ee2301b] [d87cefe]
- Added support for tuple-level eviction and retrieval when using non-volatile memory (NVM). Instead of using tombstones, evicted tuples are moved to a separate pool that is stored on NVM. All of the operator executors can then access these tuples directly without needing abort and restart the txn. [ab56f88] [37b3638] [074da8d]
- The default index data structure for H-Store is the stx::btree. This improves throughput for single-partition workloads by about 10% while also reducing memory consumption. [87465c6]
- Added new AntiCacheStatsSource to retrieve additional information about the evicted tuple storage. [e1bca3b]
- FIX: Removed a race condition involving the EE’s shared buffer and the AntiCacheEvictionManager. This problem occured when the anti-caching subsystem evicts tuples and a transactions accesses an EvictedTuple. The EE would then lose the information about the tuple accessed. [90efa79]
- FIX: Long-existing memory leak in the EE’s undo log. This was embarrassing. [f77f8d0]
- FIX: The EE’s IndexStats now store memory information correctly for tables with multiple indexes. [78aff6f] [29527be]
- FIX: The EE’s AntiCacheManager was using inaccurate stats when deciding how much data to evict, which would then cause it to write out empty blocks of data. [17fe61d]