All Projects → lmdbjava → Lmdbjava

lmdbjava / Lmdbjava

Licence: apache-2.0
Lightning Memory Database (LMDB) for Java: a low latency, transactional, sorted, embedded, key-value store

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Lmdbjava

Xodus
Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.
Stars: ✭ 864 (+58.24%)
Mutual labels:  database, key-value, embedded-database
Buntdb
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
Stars: ✭ 3,583 (+556.23%)
Mutual labels:  database, key-value, in-memory
Libmdbx
One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
Stars: ✭ 729 (+33.52%)
Mutual labels:  database, key-value, lmdb
Cutedb
A slick BTree on disk based key value store implemented in pure Go
Stars: ✭ 67 (-87.73%)
Mutual labels:  database, key-value, embedded-database
Quadrable
Authenticated multi-version database: sparse binary merkle tree with compact partial-tree proofs
Stars: ✭ 78 (-85.71%)
Mutual labels:  database, embedded-database, lmdb
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+212.64%)
Mutual labels:  database, key-value, lmdb
Cog
A Persistent Embedded Graph Database for Python
Stars: ✭ 90 (-83.52%)
Mutual labels:  database, key-value, embedded-database
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+278.57%)
Mutual labels:  database, key-value, in-memory
nim-lmdb
Nim LMDB wrapper
Stars: ✭ 31 (-94.32%)
Mutual labels:  key-value, lmdb
file.io
🐈 💻 Simple File Share Service where the file is completely deleted after download.
Stars: ✭ 38 (-93.04%)
Mutual labels:  key-value, in-memory
Nitrite Java
Java embedded nosql document store
Stars: ✭ 538 (-1.47%)
Mutual labels:  database, embedded-database
zlmdb
Object-relational in-memory database layer based on LMDB
Stars: ✭ 22 (-95.97%)
Mutual labels:  lmdb, in-memory
gocache
High performance and lightweight in-memory cache library with LRU and FIFO support as well as memory-usage-based-eviction
Stars: ✭ 15 (-97.25%)
Mutual labels:  key-value, in-memory
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+1281.68%)
Mutual labels:  database, low-latency
cachegrand
cachegrand is an open-source fast, scalable and secure Key-Value store, also fully compatible with Redis protocol, designed from the ground up to take advantage of modern hardware vertical scalability, able to provide better performance and a larger cache at lower cost, without losing focus on distributed systems.
Stars: ✭ 87 (-84.07%)
Mutual labels:  key-value, low-latency
Immortaldb
🔩 A relentless key-value store for the browser.
Stars: ✭ 2,962 (+442.49%)
Mutual labels:  database, key-value
dxram
A distributed in-memory key-value storage for billions of small objects.
Stars: ✭ 25 (-95.42%)
Mutual labels:  in-memory, low-latency
Permazen
Language-Natural Persistence Layer for Java
Stars: ✭ 265 (-51.47%)
Mutual labels:  database, key-value
Gokv
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)
Stars: ✭ 314 (-42.49%)
Mutual labels:  database, key-value
Flashdb
An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
Stars: ✭ 378 (-30.77%)
Mutual labels:  database, key-value

Maven Build and Deployment codecov Javadocs Maven Central Total alerts Language grade: Java

LMDB for Java

LMDB offers:

  • Transactions (full ACID semantics)
  • Ordered keys (enabling very fast cursor-based iteration)
  • Memory-mapped files (enabling optimal OS-level memory management)
  • Zero copy design (no serialization or memory copy overhead)
  • No blocking between readers and writers
  • Configuration-free (no need to "tune" it to your storage)
  • Instant crash recovery (no logs, journals or other complexity)
  • Minimal file handle consumption (just one data file; not 100,000's like some stores)
  • Same-thread operation (LMDB is invoked within your application thread; no compactor thread is needed)
  • Freedom from application-side data caching (memory-mapped files are more efficient)
  • Multi-threading support (each thread can have its own MVCC-isolated transaction)
  • Multi-process support (on the same host with a local file system)
  • Atomic hot backups

LmdbJava adds Java-specific features to LMDB:

  • Extremely fast across a broad range of benchmarks, data sizes and access patterns
  • Modern, idiomatic Java API (including iterators, key ranges, enums, exceptions etc)
  • Nothing to install (the JAR embeds the latest LMDB libraries for Linux, OS X and Windows)
  • Buffer agnostic (Java ByteBuffer, Agrona DirectBuffer, Netty ByteBuf, your own buffer)
  • 100% stock-standard, officially-released, widely-tested LMDB C code (no extra C/JNI code)
  • Low latency design (allocation-free; buffer pools; optional checks can be easily disabled in production etc)
  • Mature code (commenced in 2016) and used for heavy production workloads (eg > 500 TB of HFT data)
  • Actively maintained and with a "Zero Bug Policy" before every release (see issues)
  • Available from Maven Central and OSS Sonatype Snapshots
  • Continuous integration testing on Linux, Windows and macOS with Java 8, 11 and 14

Performance

img

img

Full details are in the latest benchmark report.

Documentation

Support

We're happy to help you use LmdbJava. Simply open a GitHub issue if you have any questions.

Contributing

Contributions are welcome! Please see the Contributing Guidelines.

License

This project is licensed under the Apache License, Version 2.0.

This project distribution JAR includes LMDB, which is licensed under The OpenLDAP Public License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].