[openstack-dev] [MagnetoDB] TTL feature for a row

Ajaya Agrawal ajku.agr at gmail.com
Fri Jan 16 07:56:54 UTC 2015


Hi guys,

I am referring to the blueprint:
https://blueprints.launchpad.net/magnetodb/+spec/row-expiration . We want
to provide our end users with ttl feature on a row in MagnetoDB.

As it stands today in cassandra, ttl is on a column basis rather than a row
basis. i.e. when you insert a row with an insert statement the ttl is
applied on all the columns. But when you update a row and use ttl there ttl
for only the columns present in SET clause of UPDATE statement.

for e.g if you have a USER table with schema (name text primary key, age
int) and you insert a row with statement INSERT INTO USER(name, age) values
('a', 1) and later update this with UPDATE USER USING TTL 10 set age=2
where name='a', then the age column will get updated and only the age
column will disappear after 10 seconds.


   - So in MagnetoDB if a user inserts data without ttl and later updates
   the same row with ttl and some updated column values then ttl is only
   applied on the updated columns. We should do an insert in this case to make
   the whole row disappear. Simlarly if the user inserts the data with a ttl
   but updates the data without ttl then we should fetch the ttl for the row
   and then update the row with remaining ttl for the row.
   - The same problem remains with the conditional update But it's more
   difficult to tackle without any locking mechanism.

The simplest solution is to allow ttl only in insert statement and let the
users know about this.

Cheers,
Ajaya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150116/fc68544f/attachment.html>


More information about the OpenStack-dev mailing list