A
A
andrew-nii2018-07-03 16:29:24
Database
andrew-nii, 2018-07-03 16:29:24

Undemanding Key-Value storage under Linux with TCP access?

Hello! Help to choose a DB please.
The task is to store a lot of data in key-value storage. linux. opensource. 4GB RAM. Keys - at least 256 bytes string, values ​​- from zero to 10 megabytes, total key-value pairs - from 20 million. Write speed from 2 to 5 megabytes per second, about 100 requests per second.
The key requirement is maximum ease of use over TCP. For example:
1. establish a TCP connection.
2. send "WRITE,10,5000,(ten bytes key),(5000 bytes value)"
3. wait for "FAILED_ALREADY_EXIST".
4. that's it, the request is completed, we close the connection.
It is necessary that the protocol does not contain any JSON, XML, and other hierarchical and parsing things. It also needs to be a regular TCP connection, without SSL/TLS or similar technologies (or TLS can be disabled).
Currently, completely self-written solutions are used for data storage. (4 operations - enum, read, write, delete). But there is an understanding that this is no longer possible. I am not familiar with existing databases at all.
Question 1. Are there existing solutions for such requirements? Under 4 Gb RAM? And under 2 Gb RAM?
Question 2. Can these existing solutions also support simultaneous reading with a similar intensity?
Question 3. Will these existing solutions be able to fit 2 TB of data on one 4 TB hard drive?
Question 4. And if the RAM is 16 GB, will the database provide reading at least 15 MB/sec?
Question 5. And what is better for equipment - distributed storage on nodes 32 Gb RAM + 8 HDD for 2 TB.
Thank you very much in advance!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Andrey Shatokhin, 2018-07-03
@Sovigod

Use levelDB and write your own. Your TK is really modest. Write in the language you know.
Well, or fork any implementation, for example

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question