What is the most efficient way to create a simple UUID–>UUID mapping where lookup speed is the highest priority?
It’s for a distributed transaction processing system that needs to handle thousands of txns per second, each needing to lookup 1 to 4 of these mappings.
I’m new to Aerospike, with pretty limited experience with databases in general. Mostly just Cassandra use, but mainly just from the client side of things, and haven’t had to deal with deciding how data should be layed out in the database. So I don’t know much about the options for storing a simple mapping like this, other than in Cassandra we just have it as a simple table with a key column, and the “mapped UUID” column, both of type “blob”.
Reading the Aerospike documentation, it sounds like there might be more “specialized” support for a simple map like this, rather than using a traditional table that could have multiple columns (or “bins”) that the keys map to, since I only need each key to map to a single piece of data.
In the aql help, I see, in addition to a command to create an index on a set (which I’m guessing is essentially like creating a table in Cassandra), there’s this command, which might be what I want to use: CREATE LIST/MAPKEYS/MAPVALUES INDEX ON [.] () NUMERIC|STRING|GEO2DSPHERE
Wondering if there’s a specific datatype that’s best for UUIDs, and how to approach using “MAPKEYS” vs “MAPVALUES”.
Then I see there’s a way to give a bin a value type of “Aerospike Map”… so that means there’s a map stored within a single bin? As in, a single row has a single column with a mapping in it? Maybe not what I want, as I need to store billions of mappings, which makes me think I need something more along the lines of a full table, and not just a single “cell” in a table, but I could be thinking about Aerospike’s data layout wrong.
I also have read that there’s a “large map”, but have no idea where that comes into play when creating the schema (or whatever it’s called in Aerospike) or when reading/writing data.
Thanks for any help!