Are there any embeddable document database engines for Java, that do not require separate server. I am looking for something similar to MongoDB or CouchDB.
Orient seems to fit in this category. From its description:
This is a NoSQL document database light, portable and fast
It is considered one of the fastest document DBMS' in the world and can store 1,000,000 of records in less than 5 seconds on common hardware.
It's 100% Java and can run on any system that supports the Java 5 technology.
The entire software is distributed in about 500Kb.
The transactional engine can run in distributed systems supporting up to 9.223.372.036 Billions of records for the maximum capacity of 19.807.040.628.566.084 Terabytes of data distributed on multiple disks in multiple nodes.
It can work in schema-less mode, schema-full or a mix of both.
Supports advanced features, such as ACID transactions, indexing, fluent and SQL-like queries. It handles natively JSON and XML documents.
The Orient Key/Value Server has been built on top of Orient Document Database. It scales out very well in a cluster with thousands of running machines: Orient will divide the load among all the nodes.
Cluster, by default, works in auto-discovery mode: when a node starts it attaches itself to the cluster if any. When a node goes down the cluster auto rebalances itself.
Here are some key features of "Orient":
- Extremely light: less than 400Kb for the full server.
- Run on any platform: All the engine is 100% pure Java and can run on Windows and Linux and any system that supports the Java5+ technology
- Super fast: On common hardware* stores up to 150.000 (one-hundred-fifty-thousands) records per second, 13 billions per day.
- Transactional: Compliant with ACID tests, supports Optimistic (MVCC) and Pessimistic transaction modes
- Local mode: Direct access to the database bypassing the Server. Perfect for scenarios where the database is embedded.
- Easy Java APIs: Learn how to use it in 15 minutes.