I’m looking for a data store that would be optimal for storing, incrementing, and retrieving only integers, and I’m wondering if
Aerospike would be a fair solution. The logical structure of my data would be akin to a
Map<Integer,Map<Integer,Integer>>. The data are groups of
Integer counters. Each counter has it’s own
Integer id that is unique within a group, and each group has its own unique
Integer id which is completely unique. So I need to use
Integer ids, to find a particular group of counters, and then increment a subset of those counters in the group.
- A group will always be queried for as a whole, never as a subset
- ~200 counters per group
- ~millions of groups
- Only subsets of groups will be incremented, never an entire group at once
- ~15 counters at a time
Operationally, that’s all I’ll be doing, and I’m wondering if anyone thinks
Aerospike would be a good fit for this case.
The only caveat is that I’m short for RAM, so I can’t keep data completely in-memory.
Right off the bat, I’m wondering if a single-bin namespace with
Integer's as the primary keys, and counter ids as secondary indexes would be the the most optimal organization of the data. Groups could be retrieved with the primary key, and counters can be referenced and incremented with their corresponding secondary key. Would this be the most appropriate organization of my data in