In my case version can be timestamp as well. What do you suggest version number to be, do you see any problems if I keep version as counter / timestamp ?
On Tue, Sep 3, 2013 at 12:22 AM, Jan Algermissen <jan.algermis...@nordsc.com > wrote: > > On 02.09.2013, at 20:44, dawood abdullah <muhammed.daw...@gmail.com> > wrote: > > > Requirement is like I have a column family say File > > > > create table file(id text primary key, fname text, version int, mimetype > text, content text); > > > > Say, I have few records inserted, when I modify an existing record > (content is modified) a new version needs to be created. As I need to have > provision to revert to back any old version whenever required. > > > > So, can version be a timestamp? Or does it need to be an integer? > > In the former case, make use of C*'s ordering like so: > > CREATE TABLE file ( > file_id text, > version timestamp, > fname text, > .... > PRIMARY KEY (file_id,version) > ) WITH CLUSTERING ORDER BY (version DESC); > > Get the latest file version with > > select * from file where file_id = 'xxx' limit 1; > > If it has to be an integer, use counter columns. > > Jan > > > > Regards, > > Dawood > > > > > > On Mon, Sep 2, 2013 at 10:47 PM, Jan Algermissen < > jan.algermis...@nordsc.com> wrote: > > Hi Dawood, > > > > On 02.09.2013, at 16:36, dawood abdullah <muhammed.daw...@gmail.com> > wrote: > > > > > Hi > > > I have a requirement of versioning to be done in Cassandra. > > > > > > Following is my column family definition > > > > > > create table file_details(id text primary key, fname text, version > int, mimetype text); > > > > > > I have a secondary index created on fname column. > > > > > > Whenever I do an insert for the same 'fname', the version should be > incremented. And when I retrieve a row with fname it should return me the > latest version row. > > > > > > Is there a better way to do in Cassandra? Please suggest what approach > needs to be taken. > > > > Can you explain more about your use case? > > > > If the version need not be a small number, but could be a timestamp, you > could make use of C*'s ordering feature , have the database set the new > version as a timestamp and retrieve the latest one with a simple LIMIT 1 > query. (I'll explain more when this is an option for you). > > > > Jan > > > > P.S. Me being a REST/HTTP head, an alarm rings when I see 'version' next > to 'mimetype' :-) What exactly are you versioning here? Maybe we can even > change the situation from a functional POV? > > > > > > > > > > Regards, > > > > > > Dawood > > > > > > > > > > > > > > > > > >