1

I'm looking for a database engine that meets the following requirements:

  • Open Source
  • Runs on Linux
  • Accepts and returns JSON formatted data natively (without extraneous conversions)
  • Supports a parameterized search on arbitrary fields
  • Indexes are in a BTREE-equivalent format (allowing efficient range queries)
  • Supports standard ACID transactions
  • All the fields are indexed automatically

The very last feature has proven hard to find. I looked into MongoDB, Couchbase, DynamoDB, and they all require specific fields to be manually identified and added to the index.

  • 1
    Adding indexes programmatically is trivial, what is your driving issue if you don't mind me asking? – ivanivan Nov 2 '18 at 18:27
  • 1
    Adding indexes programmatically is NOT trivial once you consider planning, testing, deployment, and maintenance efforts, opportunity costs, production availability impacts from missed indexes or changing workloads, need for coordination between index maintainers and data consumers, and general hampering of innovation by adding additional steps when developing new capabilities. The driving issue is mitigation of all of the aforementioned overhead costs and risks. – Alex R Nov 2 '18 at 19:38
1

I have not found one that hits all requirements yet, but there are two that come close:

  • PostgreSQL's jsonb type used with a Generalized Inverted Index (GIN) will index every field, but does not support range queries
  • Microsoft Cosmos DB is a cloud service, not open-source

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.