Hey there. I am looking for a free to use for commercial website database that should have these design features, in the given order:
- Auto-Sharding (getting more free space by adding more server nodes)
- high read performance
- data larger than available memory (so, persistent of course)
- New inserts should be available to read/update in real time.
Features that would be very handy, but not necessary:
- In-Place-Updates like in MongoDB because the columns 1 to 7 never change in size. And the column 0 never changes at all.
- Handy would be something where I can query slave nodes too. Not just masters. To achieve more concurrent operations (especially reads).
Non-relational, relational, does not matter.
I am going to have some billions of entries that look like this:
{
0: (64 or 32, not decided yet) byte string,
1: 64 bit integer,
2: 64 bit integer,
3: 64 bit integer,
4: 64 bit integer,
5: 64 bit integer,
6: 64 bit integer,
7: 64 bit integer
}
The only key/index will be "0" (primary index in SQL, or the key in NoSQL databases).
Queries will look something like these:
- SELECT * WHERE 0='string'
- UPDATE 3=int, 6=int, 7=int WHERE 0='string'
- DELETE WHERE 0='string'
- INSERT {0: 'string', 1=int, 2=int, 3=int, 4=int, 5=int, 6=int, 7=int}
No other queries (like range, etc).
For every 1,000 operations there will be:
- 600 reads (not sequential)
- 200 updates (not sequential)
- 150 inserts (bulk if possible)
- 50 deletes (bulk if possible)
Thank you for your answers!