Generation Number Persistence


Hi everyone, I’m brand new to Aerospike, so I hope this isn’t a total noob question:

Is there any way to permanently store each record and preserve its generation number instead of overwriting the old generation number when the write completes? Or maybe this is already happening in the background and I just don’t know it?

I’m trying to build a “time machine” type environment on HR records. In our case, a given record (an employee) has a number of bins (name, job title, salary, benefit package, etc.). 99% of the time, I only want to query whatever the current record is (i.e. the latest generation number on each bin). But every now and then I need to be able to roll back a record and view the history of a particular employee.

I’ve read a lot about time series data in Aerospike. I could make each of these bins an LDT (llist) and use each list item as a previous version. But these won’t be long lists, and it seems difficult to coordinate all the different versions of each field. I could also just have some additional bins per record and store a timestamp for each bin, who changed it, etc. But this seems like adding a lot of records that will be indexed and included in every read but never really needed very much. Is there a way to preserve generation number and not overwrite an older record version?

It seems like if I could always retain all record versions, and if it’s possible to access/query the generation number, then I could use that as my built-in time series counter per bin (which would be perfect). Is this possible? If not, can someone in the community help a noob like me figure out the most efficient/easiest to implement and maintain solution for my problem?