HPKV is a new key-value store boasting faster performance than Redis, achieved through a novel lock-free B+ tree implementation. It's bi-directional, allowing efficient retrieval by both key and value, and offers persistence to disk. Designed for embedded and server-side use cases, HPKV supports multiple languages (C, C++, Python, Java, Go, and JavaScript) and provides various features like range scans, prefix scans, and TTL. It's available under the Apache 2.0 license, promoting open-source contribution and adoption.
AtomixDB is a new open-source, embedded, distributed SQL database written in Go. It aims for high availability and fault tolerance using a Raft consensus algorithm. The project features a SQL-like query language, support for transactions, and a focus on horizontal scalability. It's intended to be embedded directly into applications written in Go, offering a lightweight and performant database solution without external dependencies.
HN commenters generally expressed interest in AtomixDB, praising its clean Golang implementation and the choice to avoid Raft. Several questioned the performance implications of using gRPC for inter-node communication, particularly for write-heavy workloads. Some users suggested benchmarks comparing AtomixDB to established databases like etcd or FoundationDB would be beneficial. The project's novelty and apparent simplicity were seen as positive aspects, but the lack of real-world testing and operational experience was noted as a potential concern. There was some discussion around the chosen consensus protocol and its trade-offs compared to Raft.
Kronotop is a new open-source database designed as a Redis-compatible, transactional document store built on top of FoundationDB. It aims to offer the familiar interface and ease-of-use of Redis, combined with the strong consistency, scalability, and fault tolerance provided by FoundationDB. Kronotop supports a subset of Redis commands, including string, list, set, hash, and sorted set data structures, along with multi-key transactions ensuring atomicity and isolation. This makes it suitable for applications needing both the flexible data modeling of a document store and the robust guarantees of a distributed transactional database. The project emphasizes performance and is actively under development.
HN commenters generally expressed interest in Kronotop, praising its use of FoundationDB for its robustness and the project's potential. Some questioned the need for another database when Redis already exists, suggesting the value proposition wasn't entirely clear. Others compared it favorably to Redis' JSON support, highlighting Kronotop's transactional nature and ACID compliance as significant advantages. Performance concerns were raised, with a desire for benchmarks to compare it to existing solutions. The project's early stage was acknowledged, leading to discussions about potential feature additions like secondary indexes and broader API compatibility. The choice of Rust was also lauded for its performance and safety characteristics.
Summary of Comments ( 9 )
https://news.ycombinator.com/item?id=43387834
Hacker News users discussed the performance claims of hpkv, questioning the benchmark methodology and the choice of Redis as a comparison point. Several commenters pointed out that using
redis-benchmark
with a pipeline size of 1 is unfair to Redis, significantly hindering its performance. Others suggested alternative benchmarking tools and emphasized the importance of real-world workload simulations. The lack of detail about hpkv's persistence mechanism and data safety guarantees also drew scrutiny. Some expressed interest in the project but desired more information about its architecture and use cases. A few users pointed out potential bugs in the benchmarking script itself, further questioning the validity of the presented results.The Hacker News post "Show HN: A bi-directional, persisted KV store that is faster than Redis" linking to hpkv.io generated a moderate number of comments, primarily focusing on technical aspects and comparisons to existing solutions.
Several commenters expressed skepticism regarding the performance claims, particularly the assertion of being "faster than Redis." They pointed out the need for more rigorous benchmarking and detailed methodology to substantiate such a claim. Specific concerns included the lack of clarity on the types of benchmarks run, the hardware used, and the specific Redis configuration being compared against. Some users requested benchmark results using established tools like
redis-benchmark
to provide a more standardized comparison.Discussion also arose around the choice of language (Rust) and its impact on performance. While some lauded Rust's speed and memory safety, others questioned whether these advantages alone could justify the performance claims, suggesting that algorithmic optimizations and data structures likely played a more significant role.
The project's novelty and potential use cases were also points of discussion. Some commenters saw value in the bi-directional nature of the key-value store, exploring potential applications in areas like graph databases and indexing. Others questioned the practical benefits of bi-directionality, suggesting that existing solutions with appropriate indexing could achieve similar functionality.
The persistence aspect of hpkv also drew some attention, with queries about the specific mechanisms employed for data persistence and the potential performance implications of these choices. Commenters also inquired about data durability guarantees and crash recovery capabilities.
A few commenters shared their own experiences with similar projects and offered alternative approaches to achieving high-performance key-value storage. They mentioned existing databases and libraries known for their speed and efficiency, suggesting that the author explore these for potential inspiration or comparison.
Overall, the comments reflect a cautious but curious reception to the project. While acknowledging the potential of hpkv, many commenters highlighted the need for more robust evidence to support the performance claims and a more in-depth explanation of the technical details. The discussion ultimately centered around the importance of thorough benchmarking, clear documentation, and careful consideration of existing solutions when introducing a new database technology.