GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - lmdbjava/lmdbjava: Lightning Memory Database (LMDB) for Java: a low latency, transactional, sorted, embedded, key-value store

BranchesTags
Open more actions menu

Latest commit

 

History

976 Commits
976 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
licenses
licenses
 
 
src
src
 
 
.gitignore
.gitignore
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE.txt
LICENSE.txt
 
 
NOTICE.md
NOTICE.md
 
 
README.md
README.md
 
 
pom.xml
pom.xml
 
 

Repository files navigation

Maven Build and Deployment codecov Javadocs Maven Central

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 Central Portal Snapshots
  • Continuous integration testing on Linux, Windows and macOS with Java 8, 11, 17, 21 and 25

Performance

img

img

Full details are in the latest benchmark report.

Documentation

  • Wiki
  • Tutorial
  • JavaDocs
  • Change Log

Support

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

Building

LmdbJava uses a standard Maven build. Its native libraries are provided by the org.lmdbjava:native dependency.

To use a different LMDB library, set lmdbjava.native.lib system property to the file path.

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.

About

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

Topics

databaseembedded-databasein-memoryjavakey-valuelmdblow-latency

Resources

Readme
Apache-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

876 stars

Watchers

29 watching

Forks

125 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.