Nosql open source Java embedded database

I am developing an open source product and need built-in dbms. Can you recommend the built-in open source database that ...

  • Can process objects of 10 GB each
  • Has a license compatible with the attachment (LGPL, not the GPL).
  • Is pure java
  • Is (preferably) nosql. Sql may work but prefers nosql

I looked at some of the DBMS documents, for example mongodb, but they seem to be limited to 4 or 16 mb documents.

Berkeley DB looked attractive, but had a GPL license.

Sqlite3 is attractive: a good license, and you can compile with any maximum blob size you like. But this is not Java. I know that there are JDBC drivers, but we need a clean Java system.

Any suggestions?

thanks

Steve

+4
source share
1 answer

Although this is an old question, I studied it recently and came across the following (at least two of them were written after this question was asked). I'm not sure how any of them handles very large objects - and in 10 GB you will probably have to do some serious testing, since I assume that few database developers will have such objects of this size for their products (just a guess). I would definitely think about storing them on disk directly, simply referring to the location of the file in your database.

(The opinions below are pretty superficial, by the way, since I haven't used them seriously yet.)


OrientDB looks like the most mature of the three that I have found. It seems to be a document and / or graphics database and claims to be very fast (using the RB + Tree data structure - a combination of B + and Red Black trees). He claims to be super fast and lightweight, with no external dependencies. For example, there is an active community developing it, for example, with a large number of commits over the past few days. It is also compatible with the TinkerPop database standard , which adds another layer of features (such as the Gremlin query language). It is ACID compatible, has REST and other external APIs, and even a web-based management application (which can presumably be deployed from your embedded DB, but I'm not sure).

The following two more fall into a simple keystore cluster for the N (ot) O (nly) SQL world.

JDBM3 is an extremely minimal data warehouse: it has a hash map, a tree map, a set of trees and a linked list that are written to disk via memory mapped files. He claims that he is very light and fast, fully transactional and actively developing.

HawtDB looks similarly very simple and fast - the BTree or Hash index is stored on a disk with files with memory display. It is (optionally) fully transactional. Over the past seven months (until the end of March 2012) no commitments have been made, and there is little activity on the mailing list. This does not mean that it is not a good library, but worth mentioning.

JDBM3 and HawtDB are pretty minimal, so you won't get any graphical interfaces. But I think that both of them look very attractive for their speed and simplicity.


This is all I have found that matches your requirements. In addition, Neo4J is great - a graphical database that is now quite mature and works very well in native mode. The GPL / AGPL license, however, may require a paid license if you also cannot open the source code: http://neotechnology.com/products/price-list/

Of course, you can also use the H2 SQL database with one large table and no indexes!

+6
source

Source: https://habr.com/ru/post/1342554/


All Articles