Maintain TTL value on record update or add fixed-timestamp expiration (3.10.0)


#1

Currently the TTLs of a record are based on expiration following a certain timespan after the last update.

The 1 second granularity of TTLs can lead to a race condition where a record will never expire when undergoing lots of writes. It would be helpful to either have a way to set expiration based on an actual timestamp or an option to mark writes as not resetting the existing TTL value.


Capping Feature in AS
#2

The option we’ve thought about is an additional option where TTL is not touched. Will keep note of this. Thanks.


#3

Ver 3.10.1 introduced TTL = -2, update record without resetting TTL.


#4

How can we do an update operation without resetting ttl in versions < 3.10.1 ?


#5

It wasn’t a feature prior to it becoming a feature.


#6

On further reflection on your question, you could do this by reading the record ttl and generation first, then update it with the needed bin updates, using the remaining TTL as the record TTL and EXPECT_GEN_EQUAL write policy.

However, what is your use case for updating a record while not refreshing its TTL? For example, if you have only 1 second life left on the record, why would you update the record without refreshing its TTL? Could you kindly share your use case?