Help me choose a key / value store

Do not pay attention to others doing my research for me, but perhaps there was a kind soul who knows the answer from his head:

I need a key / value store with the following characteristics:

  • Distributed
  • You can iterate over the keys in ascending order.
  • You can find the key based on the partial key (prefix).
  • Values ​​can be blobs up to mb or two.
  • Available with Java.
  • Some way to set rules so that I can control how keys are distributed between machines, that is, I would like to have a rule that keys with a common prefix remain on the same machine.
  • A way to query the system to find out which machine has a key.
  • Some support for replication and redundancy.
+4
source share
2 answers

I have two answers for you:

  • Amazon S3 supports all of this, but it obviously works on its servers, not yours. In particular, it supports prefix search queries very well.
  • MongoDB supports all of this. You can use regular expressions or $ where you need to use the prefix. Be careful with indexes for better performance.
+1
source

I'm not sure if it meets all your requirements, but have you looked at the distributed Hazelcast cards ? It has been a while since I looked at Hazelcast, so I don’t know if there is a way to find out which instances are responsible for a given key, or a way to assign keys to instances, but it provides support for secure parallel operations throughout the distributed card and others pleasant things.

0
source

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


All Articles