Releases: apavlo/h-store
Final Release (June 2016)
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]
Release (May 2014)
The H-Store project is pleased to announce the release of the freshest and most dope version of its transaction processing database management system. The major enhancements in the system are related to anti-caching and recovery. We have also begun exploring how to port H-Store to work on non-volatile memory storage devices.
Major highlights of this release:
- Re-factored anti-cache code in the EE to make it more extensible. On-disk blocks now support tuples from multiple tables. [6e5e320] [f03faf6] [5c11737] [23025d2]
- New anti-cache storage back-end designed specifically for non-volatile memory. [4e007db] [b9b2a68] [8cf939d] [34aabbe]
- Anti-caching rollbacks now supports multi-partition transactions. [13539d0] [4fdf0cf] [ba759a5] [d3c5ee1]
- Ported experimental ARIES implementation from Nirmesh Malviya's VoltDB code. This is from his ICDE 2014 paper. [0936955] [f7be730] [53ea2b9] [2a37256]
- Added new ARTICLES benchmark. This workload simulates users posting content and comments on a news aggregation website like Reddit/HackerNews. [5b2abf1] [a299082]
- FIX: H-Store now supports gcc 4.8. [d0ae5e3]
- FIX: Restored support for snapshots creation and loading. [23cfb02] [2d16006]
- FIX: Simplified materialized views were not initialized properly. [7346860]
This release can be downloaded via Github:
Release (November 2013)
The H-Store project is pleased to announce the release of the latest version of its high-performance, distributed transaction processing database management system. The major enhancements in the system are related to transaction correctness and for speculative execution. This is a belated release, as most of the new features and improvements were implemented earlier in the summer.
We are also excited to announce the start of new research projects in H-Store with our new collaborators at Intel Labs as part of the ISTC for Big Data and at the Qatar Computing Research Institute. More information on these projects will be available later in the winter.
Major highlights of this release:
- Improved speculative transaction execution. H-Store now supports optimistic concurrency control for speculative tasks using a new tuple-level read/write tracking mechanism. The [glossary slug='partition-executor'] now uses a new conflict checking API that can determine whether it is safe to speculatively execute a transaction before it is invoked or during the PREPARE phase of 2PC. [a2e3e09] [5b94e06] [3ea53e8] [5dbfa36] [b2fa101]
- New automatic query prefetching for distributed transactions. The system can identify when a transaction will need to execute a query at a remote partition before it queued up and then piggyback that query invocation in the initialization request. These queries will be asynchronously executed and have their results returned to the base partition to avoid needing to have the transaction block waiting for the network roundtrip. [859972b] [3bc4fbe] [51cf9d8] [e737233]
- Various performance improvements and optimizations for the anti-caching feature, including support for updating the internal LRU chain for tuples accessed through secondary indexes. [e33d394]
- Added support for Mac OSX 10.7. [5c64bd9] [b6714a9]
- New Benchmarks: Added the SmallBank benchmark from Mohammad Alomari and Michael Cahill. [475bcd1] [1773453] [edccaa0]
- FIX: The "early prepare" optimization for 2PC has been broken for some time. It was finally fixed in exchange for Aaron giving Andy a non-sensual massage at SIGMOD. [6d655dc] [151802b]
- FIX: Fixed support in the [glossary slug='partition-estimator'] for queries using constant values. This prevents them from having to be broadcast to every partition. Query predicates that use a equality comparison with a constant value are now routed to the correct number of partitions. Non-equality predicates are broadcast to every partition. [6c7c911] [81b0f02]
- FIX: INSERT/UPDATE/DELETE queries on replicated tables now return the logical number of tuples modified. [f230114]