Re: Cassandra as session store under heavy load

2011-10-13 Thread Jonathan Ellis
Or upgrade to 1.0 and use leveled compaction
(http://www.datastax.com/dev/blog/leveled-compaction-in-apache-cassandra)

On Thu, Oct 13, 2011 at 4:28 PM, aaron morton  wrote:
> They only have a minimum time, gc_grace_seconds for deletes.
>
> If you want to be really watch disk space reduce the compaction thresholds on 
> the CF.
>
> Or run a major compaction as part of maintenance.
>
> cheers
>
> -
> Aaron Morton
> Freelance Cassandra Developer
> @aaronmorton
> http://www.thelastpickle.com
>
> On 13/10/2011, at 10:50 PM, Maciej Miklas wrote:
>
>> durable_writes sounds great - thank you! I really do not need commit log 
>> here.
>>
>> Another question: it is possible to configure live time of Tombstones?
>>
>>
>> Regards,
>> Maciej
>
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com


Re: Cassandra as session store under heavy load

2011-10-13 Thread aaron morton
They only have a minimum time, gc_grace_seconds for deletes.

If you want to be really watch disk space reduce the compaction thresholds on 
the CF. 

Or run a major compaction as part of maintenance. 

cheers

-
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com

On 13/10/2011, at 10:50 PM, Maciej Miklas wrote:

> durable_writes sounds great - thank you! I really do not need commit log here.
> 
> Another question: it is possible to configure live time of Tombstones? 
> 
> 
> Regards,
> Maciej



Re: Cassandra as session store under heavy load

2011-10-13 Thread Maciej Miklas
durable_writes sounds great - thank you! I really do not need commit log
here.

Another question: it is possible to configure live time of Tombstones?


Regards,
Maciej


Re: Cassandra as session store under heavy load

2011-10-12 Thread aaron morton
> - Serializing data is not an option, because I would like to have possibility 
> to access data using console
fair enough, but I would do some tests to see the difference in performance and 
disk space

> - Using Cassandra to build something like "HTTP session store" with short TTL 
> is not an anti-pattern ?
Heavy delete work loads, such as a queue, is more of a problem. You may have to 
may some extra attention to disk space, because it not clean up instantly. But 
I would not go so far to say anti-pattern.

- There is really no way to tell Cassandra, that particular Key Space should be 
stored "mostly" in RAM and only asynchronous backup on HDD (JMS has something 
like that)?

See the durable_writes option for create keyspace in the CLI. Turn if off and 
the commit log is not used, writes will only be committed to disk when the 
memtable is flushed. 

Have fun. 


-
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com

On 12/10/2011, at 7:28 PM, Maciej Miklas wrote:

> - RF is 1. We have few KeySpaces, only this one is not replicated - this data 
> is not that very important. In case of error customer will have to execute 
> process again. But again, I would like to persist it.
> - Serializing data is not an option, because I would like to have possibility 
> to access data using console
> - I will keep row cache - you are right, there is no guarantee, that my data 
> is still in Memtable
> 
> I will get my hardware soon (3 servers) and we will see ;) In this worst case 
> I will switch my session storage to memcached, and leave all other data in 
> Cassandra (no TTL, or very long)
> 
> Another questions:
> - Using Cassandra to build something like "HTTP session store" with short TTL 
> is not an anti-pattern ?
> - There is really no way to tell Cassandra, that particular Key Space should 
> be stored "mostly" in RAM and only asynchronous backup on HDD (JMS has 
> something like that)?
> 
> 
> Thanks,
> Maciej
> 



Re: Cassandra as session store under heavy load

2011-10-11 Thread Maciej Miklas
- RF is 1. We have few KeySpaces, only this one is not replicated - this
data is not that very important. In case of error customer will have to
execute process again. But again, I would like to persist it.
- Serializing data is not an option, because I would like to have
possibility to access data using console
- I will keep row cache - you are right, there is no guarantee, that my data
is still in Memtable

I will get my hardware soon (3 servers) and we will see ;) In this worst
case I will switch my session storage to memcached, and leave all other data
in Cassandra (no TTL, or very long)

Another questions:
- Using Cassandra to build something like "HTTP session store" with short
TTL is not an anti-pattern ?
- There is really no way to tell Cassandra, that particular Key Space should
be stored "mostly" in RAM and only asynchronous backup on HDD (JMS has
something like that)?


Thanks,
Maciej


Re: Cassandra as session store under heavy load

2011-10-11 Thread aaron morton
Some thoughts…

> non replicated Key Space
Not sure what you mean here. Do you mean RF 1 ? I would consider using 3. 
Consider what happens you want to install a rolling upgrade to the cluster. 

> single Column Family, where key is session ID and each column within row 
> stores single key/value - (Map>)

Consider storing the session data as a single blob in a single column, it will 
reduce the memory and disk overhead and run a bit faster. Assuming the blobs 
are not too big.

> write CL = ONE
> read CL = ONE
Consider testing at QUORUM and then use ONE if you think it helps with your 
availability requirements. 

> 2.000 writes/s
> 5.000 reads/s
Fine and dandy. If you really want to squeeze the most out of the reads go down 
the netflix path and use the external Memcache row cache provider. So yo can 
have reads out of a very large cache outside of the JVM, have cassandra persist 
the data. 

With 3 reasonably spec'd machines I would guess this throughput is achievable 
without too much tuning. Depending on how big the working set is. 

> In this case consistency is not a problem, but the performance could be, 
> especially disk IO.
> 

Wait and see, but if you can disable the commit log or use a longer periodic 
sync. Of course the simple solution is add more machines. 

> If column expires in Memtable before flushing it to SSTable, will Cassandra 
> anyway store such column in SSTable (flush it to HDD)?
Yes, for technical reasons they need to hit the disk. Otherwise the column 
instance will not be used when reconciling against other copies of the column 
already on disk. 

> Each CF hat max 10 columns. In such case I would enable row cache and disable 
> key cache. But I am expecting my data to be still available in Memtable, in 
> this case I could disable whole cache, right?
Keep the row cache. Now days (0.8 sort of and 1.0 definitely) there is no way 
to control how long data stays in the memtable table. This is a good thing as 
you will get it wrong. 
 
> Any Cassandra configuration hints for such session-store use case would be 
> really appreciated :)
Inline above. It is important to understand is how big the working set may be, 
basically estimate concurrent users * session size. Do some tests and don't 
bother tuning until they show you need to. 

Have fun. 

-
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com

On 11/10/2011, at 11:49 PM, Maciej Miklas wrote:

> Hi *,
> 
> I would like to use Cassandra to store session related informations. I do not 
> have real HTTP session - it's different protocol, but the same concept.
> 
> Memcached would be fine, but I would like to additionally persist data.
> 
> Cassandra setup:
> 
> non replicated Key Space
> single Column Family, where key is session ID and each column within row 
> stores single key/value - (Map>)
> column TTL = 10 minutes
> write CL = ONE
> read CL = ONE
> 2.000 writes/s
> 5.000 reads/s
> Data example:
> 
> session1:{ // CF row key
>{prop1:val1, TTL:10 min},
>{prop2:val2, TTL:10 min},
> .
>{propXXX:val3, TTL:10 min}
> },
> session2:{ // CF row key
>{prop1:val1, TTL:10 min},
>{prop2:val2, TTL:10 min},
> },
> ..
> session:{ // CF row key
>{prop1:val1, TTL:10 min},
>{prop2:val2, TTL:10 min},
> }
> In this case consistency is not a problem, but the performance could be, 
> especially disk IO.
> 
> Since data in my session leaves for short time, I would like to avoid storing 
> it on hard drive - except for commit log.
> 
> I have some questions:
> 
> If column expires in Memtable before flushing it to SSTable, will Cassandra 
> anyway store such column in SSTable (flush it to HDD)?
> Replication is disabled for my Key Space, in this case storing such expired 
> column in SSTable would not be necessary, right?
> Each CF hat max 10 columns. In such case I would enable row cache and disable 
> key cache. But I am expecting my data to be still available in Memtable, in 
> this case I could disable whole cache, right?
> Any Cassandra configuration hints for such session-store use case would be 
> really appreciated :)
> Thank you, 
> 
> Maciej
> 



Cassandra as session store under heavy load

2011-10-11 Thread Maciej Miklas
Hi *,

I would like to use Cassandra to store session related informations. I do
not have real HTTP session - it's different protocol, but the same concept.

Memcached would be fine, but I would like to additionally persist data.

Cassandra setup:

   - non replicated Key Space
   - single Column Family, where key is session ID and each column within
   row stores single key/value - (Map>)
   - column TTL = 10 minutes
   - write CL = ONE
   - read CL = ONE
   - 2.000 writes/s
   - 5.000 reads/s

Data example:

session1:{ // CF row key
   {prop1:val1, TTL:10 min},
   {prop2:val2, TTL:10 min},
.
   {propXXX:val3, TTL:10 min}
},
session2:{ // CF row key
   {prop1:val1, TTL:10 min},
   {prop2:val2, TTL:10 min},
},
..
session:{ // CF row key
   {prop1:val1, TTL:10 min},
   {prop2:val2, TTL:10 min},
}

In this case consistency is not a problem, but the performance could be,
especially disk IO.

Since data in my session leaves for short time, I would like to avoid
storing it on hard drive - except for commit log.

I have some questions:

   1. If column expires in Memtable before flushing it to SSTable, will
   Cassandra anyway store such column in SSTable (flush it to HDD)?
   2. Replication is disabled for my Key Space, in this case storing such
   expired column in SSTable would not be necessary, right?
   3. Each CF hat max 10 columns. In such case I would enable row cache and
   disable key cache. But I am expecting my data to be still available in
   Memtable, in this case I could disable whole cache, right?
   4. Any Cassandra configuration hints for such session-store use case
   would be really appreciated :)

Thank you,

Maciej


Re: cassandra as session store

2011-02-14 Thread Sasha Dolgy
hi,

a few weeks back this topic had some discussion (cassandra as a session
store).  subsequently, i threw together a quick hack to have PHP use
Cassandra as a session store.  A benefit I quickly found is that I could
rely on Cassandra to expire the sessions and not PHP session garbage
collection.  nice.

The code is at the following URL and uses phpcassa as the interface to
thrift.

http://pastebin.com/pKEKhCgg

Sessions were given their own column family, with the row key defined as the
site name.  each column is a session id with the column data being the
session data.

Works a treat.  Each time PHP session_start() is called, the expiry on the
column resets back to the original value.  So, if the expiry is set to 1
hour, it's 1 hour after the last session_start() was invoked.

-sd


-- 
Sasha Dolgy
sasha.do...@gmail.com


Re: cassandra as session store

2011-02-02 Thread Jonathan Ellis
Sounds like you're seeing the bug in 0.7.0 preventing deletion of
non-Data.db files (i.e. your Index.db) post-compaction.  This is fixed
for 0.7.1.  (https://issues.apache.org/jira/browse/CASSANDRA-2059)

On Wed, Feb 2, 2011 at 8:15 AM, Omer van der Horst Jansen
 wrote:
> We're using Cassandra as the back end for a home grown session
> management system. That system was originally built back in 2005 using
> BerkelyDB/Java and a data distribution system that used UDP multicast.
> Maintenance was becoming increasingly painful.
>
> I wrote a prototype replacement service using Cassandra 0.6 but
> decided to wait for the availability of official TTL support in 0.7
> before switching over.
>
> The new system has been running in production now for a little over a
> week. My main issue is that Cassandra is using far more disk space
> than I expected it to. The vast bulk of disk space seems to be used
> for *Index.db files. I'm hoping that the 10-day GCGraceSeconds
> interval that kicks in on Friday will help me there.
>
> Most of our apps that use this service generate their own session
> keys. I assume by hashing and salting a user ID and/or calling
> something like java.util.UUID.randomUUID().
>
> My schema is currently very simple -- there's a single CF containing a
> (binary) payload column and a column that indicates whether or not the
> data has been compressed. We have a few rogue apps that store
> humongous XML documents in the session and compression helps to deal
> with that. That's also why memcached wasn't going to work in our
> scenario.
>
>
>
> On Tue, Feb 1, 2011 at 12:18 PM, Kallin Nagelberg
>  wrote:
>> Hey,
>> I am currently investigating Cassandra for storing what are
>> effectively web sessions. Our production environment has about 10 high
>> end servers behind a load balancer, and we'd like to add distributed
>> session support. My main concerns are performance, consistency, and
>> the ability to create unique session keys. The last thing we would
>> want is users picking up each others sessions. After spending a few
>> days investigating Cassandra I'm thinking of creating a single
>> keyspace with a single super-column-family. The scf would store a few
>> standard columns, and a supercolumn of arbitrary session attributes,
>> like:
>>
>> 0s809sdf8s908sf90s: {
>> prop1: x,
>> created : timestamp,
>> lastAccessed: timestamp,
>> prop2: y,
>> arbirtraryProperties : {
>>     someRandomProperty1:xxyyzz,
>>     someRandomProperty2:xxyyzz,
>>     someRandomProperty3:xxyyzz
>> }
>>
>> Does this sound like a reasonable use case? We are on a tight timeline
>> and I'm currently on the fence about getting something up and running
>> like this on a tight timeline.
>>
>> Thanks,
>> -Kal
>>
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com


Re: cassandra as session store

2011-02-02 Thread Omer van der Horst Jansen
We're using Cassandra as the back end for a home grown session
management system. That system was originally built back in 2005 using
BerkelyDB/Java and a data distribution system that used UDP multicast.
Maintenance was becoming increasingly painful.

I wrote a prototype replacement service using Cassandra 0.6 but
decided to wait for the availability of official TTL support in 0.7
before switching over.

The new system has been running in production now for a little over a
week. My main issue is that Cassandra is using far more disk space
than I expected it to. The vast bulk of disk space seems to be used
for *Index.db files. I'm hoping that the 10-day GCGraceSeconds
interval that kicks in on Friday will help me there.

Most of our apps that use this service generate their own session
keys. I assume by hashing and salting a user ID and/or calling
something like java.util.UUID.randomUUID().

My schema is currently very simple -- there's a single CF containing a
(binary) payload column and a column that indicates whether or not the
data has been compressed. We have a few rogue apps that store
humongous XML documents in the session and compression helps to deal
with that. That's also why memcached wasn't going to work in our
scenario.



On Tue, Feb 1, 2011 at 12:18 PM, Kallin Nagelberg
 wrote:
> Hey,
> I am currently investigating Cassandra for storing what are
> effectively web sessions. Our production environment has about 10 high
> end servers behind a load balancer, and we'd like to add distributed
> session support. My main concerns are performance, consistency, and
> the ability to create unique session keys. The last thing we would
> want is users picking up each others sessions. After spending a few
> days investigating Cassandra I'm thinking of creating a single
> keyspace with a single super-column-family. The scf would store a few
> standard columns, and a supercolumn of arbitrary session attributes,
> like:
>
> 0s809sdf8s908sf90s: {
> prop1: x,
> created : timestamp,
> lastAccessed: timestamp,
> prop2: y,
> arbirtraryProperties : {
>     someRandomProperty1:xxyyzz,
>     someRandomProperty2:xxyyzz,
>     someRandomProperty3:xxyyzz
> }
>
> Does this sound like a reasonable use case? We are on a tight timeline
> and I'm currently on the fence about getting something up and running
> like this on a tight timeline.
>
> Thanks,
> -Kal
>


Re: cassandra as session store

2011-02-01 Thread David

Hi Joe,

On 02/02/2011 02:58 AM, Joe Stump wrote:

FWIW we used Memcached for session data at Digg without any major issues. The 
one thing we did end up doing to reduce the LRU on sessions was to modify the 
slab size and put sessions in their own Memcached cluster. Probably not an 
issue for you though.


When you say you use memcached for session, do you mean you use it as 
your cache layer, or are you using it exclusively ?


thanks,

David


Re: cassandra as session store

2011-02-01 Thread William R Speirs
I'm still very new to Cassandra, but when I started reading about it the first 
thing I thought about was a session store. It's based (in part from what I 
understand) on Dynamo which is (again, I could be wrong) used at Amazon as the 
session store for your shopping cart.


So I would certainly reach for Cassandra if I needed a reliable distributed 
session store.


Bill-

On 02/01/2011 03:24 PM, Sasha Dolgy wrote:


What I'm still unclear about, and where I think this is suitable, is Cassandra
being used as a data warehouse for current and past sessions tied to a user.
  Yes, other things are great for session management, but I want to provide near
real time session information to my users ... quick and simple and i want to use
cassandra ... surely i can't be that bad for thinking this is a good idea?
-sd

On Tue, Feb 1, 2011 at 9:20 PM, Kallin Nagelberg mailto:kallin.nagelb...@gmail.com>> wrote:

nvm on the persistence, it seems like it does support it:

'Since version 1.1 the safer alternative is an append-only file (a
journal) that is written as operations modifying the dataset in memory
are processed. Redis is able to rewrite the append-only file in the
background in order to avoid an indefinite growth of the journal.'

This thread probably shouldn't digress too much from Cassandra's
suitability for session management though..



Re: cassandra as session store

2011-02-01 Thread Janne Jalkanen

If your sessions are fairly long-lived (more like hours instead of minutes) and 
you crank up a suitable row cache and make sure your db is consistent (via 
quorum read/writes or write:all, read:1) - sure, why not?  Especially if you're 
already familiar with Cassandra; possibly even have a deployed instance already 
for your web app. Adding new components to the mix is always a sure way to get 
some headscratching going. For a small team who does not want to spend too much 
time on configuring yet another database, Cassandra would probably work well as 
a session store. And you would get cross-datacenter reliability too.

However, you might want to use 0.7 and expiring columns; otherwise cleaning up 
is going to be boring.

/Janne

On Feb 1, 2011, at 22:24 , Sasha Dolgy wrote:

> 
> What I'm still unclear about, and where I think this is suitable, is 
> Cassandra being used as a data warehouse for current and past sessions tied 
> to a user.  Yes, other things are great for session management, but I want to 
> provide near real time session information to my users ... quick and simple 
> and i want to use cassandra ... surely i can't be that bad for thinking this 
> is a good idea?
>   
> -sd
> 
> On Tue, Feb 1, 2011 at 9:20 PM, Kallin Nagelberg  
> wrote:
> nvm on the persistence, it seems like it does support it:
> 
> 'Since version 1.1 the safer alternative is an append-only file (a
> journal) that is written as operations modifying the dataset in memory
> are processed. Redis is able to rewrite the append-only file in the
> background in order to avoid an indefinite growth of the journal.'
> 
> This thread probably shouldn't digress too much from Cassandra's
> suitability for session management though..



Re: cassandra as session store

2011-02-01 Thread Sasha Dolgy
What I'm still unclear about, and where I think this is suitable, is
Cassandra being used as a data warehouse for current and past sessions tied
to a user.  Yes, other things are great for session management, but I want
to provide near real time session information to my users ... quick and
simple and i want to use cassandra ... surely i can't be that bad for
thinking this is a good idea?

-sd

On Tue, Feb 1, 2011 at 9:20 PM, Kallin Nagelberg  wrote:

> nvm on the persistence, it seems like it does support it:
>
> 'Since version 1.1 the safer alternative is an append-only file (a
> journal) that is written as operations modifying the dataset in memory
> are processed. Redis is able to rewrite the append-only file in the
> background in order to avoid an indefinite growth of the journal.'
>
> This thread probably shouldn't digress too much from Cassandra's
> suitability for session management though..


Re: cassandra as session store

2011-02-01 Thread Kallin Nagelberg
nvm on the persistence, it seems like it does support it:

'Since version 1.1 the safer alternative is an append-only file (a
journal) that is written as operations modifying the dataset in memory
are processed. Redis is able to rewrite the append-only file in the
background in order to avoid an indefinite growth of the journal.'

This thread probably shouldn't digress too much from Cassandra's
suitability for session management though..

On Tue, Feb 1, 2011 at 3:10 PM, Kallin Nagelberg
 wrote:
> Reddis seems neat, but a couple issues:
>
> - It's 'persistence' is more of a timed backup. You are not guaranteed
> the latest results on disk.
> - no real 'clustering'. It has a master/slave system.
>
> Hard to say if those are deal breakers at this point, but the API for
> it seems nice.
>
> On Tue, Feb 1, 2011 at 1:48 PM, Kallin Nagelberg
>  wrote:
>> Hmm, looking at redis now. The built in time to live functionality
>> would be nice to have..
>>
>> On Tue, Feb 1, 2011 at 1:34 PM, Colin Vipurs  wrote:
>>> Wouldn't something like Redis be a better fit than Cassandra?
>>>
>>> On Tue, Feb 1, 2011 at 6:16 PM, Tong Zhu  wrote:
>>>> If it is a really session data, which will be active for a short time, a 
>>>> few hours, and it is OK to lose them, memcached is a better solution. I 
>>>> were using it when I was in Yahoo.
>>>>
>>>> Tong
>>>>
>>>> -Original Message-
>>>> From: buddhasystem [mailto:potek...@bnl.gov]
>>>> Sent: Tuesday, February 01, 2011 9:57 AM
>>>> To: cassandra-u...@incubator.apache.org
>>>> Subject: Re: cassandra as session store
>>>>
>>>>
>>>> For completeness:
>>>>
>>>> http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
>>>> http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions
>>>>
>>>> I guess your approach does make sense, one only wishes that the servlet in
>>>> question did more work for you. If I read correctly, Django can cache
>>>> sessions transparently in memcached. So memcached mecomes your Session
>>>> Management System. Is it better or worse than Cassandra? My feeling is that
>>>> it's probably faster and easier to set up.
>>>>
>>>>
>>>> --
>>>> View this message in context: 
>>>> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
>>>> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
>>>> Nabble.com.
>>>>
>>>>
>>>> This message and any attachments contain information that may be RMS Inc. 
>>>> confidential and/or privileged.  If you are not the intended recipient (or 
>>>> authorized to receive for the intended recipient), and have received this 
>>>> message in error, any use, disclosure or distribution is strictly 
>>>> prohibited.   If you have received this message in error, please notify 
>>>> the sender immediately by replying to the e-mail and permanently deleting 
>>>> the message from your computer and/or storage system.
>>>>
>>>
>>>
>>>
>>> --
>>> Maybe she awoke to see the roommate's boyfriend swinging from the
>>> chandelier wearing a boar's head.
>>>
>>> Something which you, I, and everyone else would call "Tuesday", of course.
>>>
>>
>


Re: cassandra as session store

2011-02-01 Thread Kallin Nagelberg
Reddis seems neat, but a couple issues:

- It's 'persistence' is more of a timed backup. You are not guaranteed
the latest results on disk.
- no real 'clustering'. It has a master/slave system.

Hard to say if those are deal breakers at this point, but the API for
it seems nice.

On Tue, Feb 1, 2011 at 1:48 PM, Kallin Nagelberg
 wrote:
> Hmm, looking at redis now. The built in time to live functionality
> would be nice to have..
>
> On Tue, Feb 1, 2011 at 1:34 PM, Colin Vipurs  wrote:
>> Wouldn't something like Redis be a better fit than Cassandra?
>>
>> On Tue, Feb 1, 2011 at 6:16 PM, Tong Zhu  wrote:
>>> If it is a really session data, which will be active for a short time, a 
>>> few hours, and it is OK to lose them, memcached is a better solution. I 
>>> were using it when I was in Yahoo.
>>>
>>> Tong
>>>
>>> -Original Message-
>>> From: buddhasystem [mailto:potek...@bnl.gov]
>>> Sent: Tuesday, February 01, 2011 9:57 AM
>>> To: cassandra-u...@incubator.apache.org
>>> Subject: Re: cassandra as session store
>>>
>>>
>>> For completeness:
>>>
>>> http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
>>> http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions
>>>
>>> I guess your approach does make sense, one only wishes that the servlet in
>>> question did more work for you. If I read correctly, Django can cache
>>> sessions transparently in memcached. So memcached mecomes your Session
>>> Management System. Is it better or worse than Cassandra? My feeling is that
>>> it's probably faster and easier to set up.
>>>
>>>
>>> --
>>> View this message in context: 
>>> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
>>> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
>>> Nabble.com.
>>>
>>>
>>> This message and any attachments contain information that may be RMS Inc. 
>>> confidential and/or privileged.  If you are not the intended recipient (or 
>>> authorized to receive for the intended recipient), and have received this 
>>> message in error, any use, disclosure or distribution is strictly 
>>> prohibited.   If you have received this message in error, please notify the 
>>> sender immediately by replying to the e-mail and permanently deleting the 
>>> message from your computer and/or storage system.
>>>
>>
>>
>>
>> --
>> Maybe she awoke to see the roommate's boyfriend swinging from the
>> chandelier wearing a boar's head.
>>
>> Something which you, I, and everyone else would call "Tuesday", of course.
>>
>


Re: cassandra as session store

2011-02-01 Thread Kallin Nagelberg
Hmm, looking at redis now. The built in time to live functionality
would be nice to have..

On Tue, Feb 1, 2011 at 1:34 PM, Colin Vipurs  wrote:
> Wouldn't something like Redis be a better fit than Cassandra?
>
> On Tue, Feb 1, 2011 at 6:16 PM, Tong Zhu  wrote:
>> If it is a really session data, which will be active for a short time, a few 
>> hours, and it is OK to lose them, memcached is a better solution. I were 
>> using it when I was in Yahoo.
>>
>> Tong
>>
>> -Original Message-
>> From: buddhasystem [mailto:potek...@bnl.gov]
>> Sent: Tuesday, February 01, 2011 9:57 AM
>> To: cassandra-u...@incubator.apache.org
>> Subject: Re: cassandra as session store
>>
>>
>> For completeness:
>>
>> http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
>> http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions
>>
>> I guess your approach does make sense, one only wishes that the servlet in
>> question did more work for you. If I read correctly, Django can cache
>> sessions transparently in memcached. So memcached mecomes your Session
>> Management System. Is it better or worse than Cassandra? My feeling is that
>> it's probably faster and easier to set up.
>>
>>
>> --
>> View this message in context: 
>> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
>> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
>> Nabble.com.
>>
>>
>> This message and any attachments contain information that may be RMS Inc. 
>> confidential and/or privileged.  If you are not the intended recipient (or 
>> authorized to receive for the intended recipient), and have received this 
>> message in error, any use, disclosure or distribution is strictly 
>> prohibited.   If you have received this message in error, please notify the 
>> sender immediately by replying to the e-mail and permanently deleting the 
>> message from your computer and/or storage system.
>>
>
>
>
> --
> Maybe she awoke to see the roommate's boyfriend swinging from the
> chandelier wearing a boar's head.
>
> Something which you, I, and everyone else would call "Tuesday", of course.
>


Re: cassandra as session store

2011-02-01 Thread Colin Vipurs
Wouldn't something like Redis be a better fit than Cassandra?

On Tue, Feb 1, 2011 at 6:16 PM, Tong Zhu  wrote:
> If it is a really session data, which will be active for a short time, a few 
> hours, and it is OK to lose them, memcached is a better solution. I were 
> using it when I was in Yahoo.
>
> Tong
>
> -Original Message-
> From: buddhasystem [mailto:potek...@bnl.gov]
> Sent: Tuesday, February 01, 2011 9:57 AM
> To: cassandra-u...@incubator.apache.org
> Subject: Re: cassandra as session store
>
>
> For completeness:
>
> http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
> http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions
>
> I guess your approach does make sense, one only wishes that the servlet in
> question did more work for you. If I read correctly, Django can cache
> sessions transparently in memcached. So memcached mecomes your Session
> Management System. Is it better or worse than Cassandra? My feeling is that
> it's probably faster and easier to set up.
>
>
> --
> View this message in context: 
> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
> Nabble.com.
>
>
> This message and any attachments contain information that may be RMS Inc. 
> confidential and/or privileged.  If you are not the intended recipient (or 
> authorized to receive for the intended recipient), and have received this 
> message in error, any use, disclosure or distribution is strictly prohibited. 
>   If you have received this message in error, please notify the sender 
> immediately by replying to the e-mail and permanently deleting the message 
> from your computer and/or storage system.
>



-- 
Maybe she awoke to see the roommate's boyfriend swinging from the
chandelier wearing a boar's head.

Something which you, I, and everyone else would call "Tuesday", of course.


RE: cassandra as session store

2011-02-01 Thread Tong Zhu
If it is a really session data, which will be active for a short time, a few 
hours, and it is OK to lose them, memcached is a better solution. I were using 
it when I was in Yahoo.

Tong

-Original Message-
From: buddhasystem [mailto:potek...@bnl.gov]
Sent: Tuesday, February 01, 2011 9:57 AM
To: cassandra-u...@incubator.apache.org
Subject: Re: cassandra as session store


For completeness:

http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions

I guess your approach does make sense, one only wishes that the servlet in
question did more work for you. If I read correctly, Django can cache
sessions transparently in memcached. So memcached mecomes your Session
Management System. Is it better or worse than Cassandra? My feeling is that
it's probably faster and easier to set up.


--
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


This message and any attachments contain information that may be RMS Inc. 
confidential and/or privileged.  If you are not the intended recipient (or 
authorized to receive for the intended recipient), and have received this 
message in error, any use, disclosure or distribution is strictly prohibited.   
If you have received this message in error, please notify the sender 
immediately by replying to the e-mail and permanently deleting the message from 
your computer and/or storage system.


Re: cassandra as session store

2011-02-01 Thread Edward Capriolo
On Tue, Feb 1, 2011 at 12:57 PM, Anthony John  wrote:
> Not a concern - and here is why:-
> From the wiki arch section captioned below - eventual consistency does not
> have to mean inconsistent reads. The concern is the overhead for consistent
> reads. But remember in the use case being cited, the expensive read will
> happen only during failover, not all the time.
>
> More specifically: R=read replica count W=write replica count N=replication
> factor Q=QUORUM (Q = N / 2 + 1)
>
> If W + R > N, you will have consistency
>
> W=1, R=N
> W=N, R=1
> W=Q, R=Q where Q = N / 2 + 1
>
> On Tue, Feb 1, 2011 at 11:47 AM, Tong Zhu  wrote:
>>
>> The problem is where to store the session data. If the session need to be
>> accessible by more than one web servers, the external storage is needed.
>>
>> Cassandra only supports eventual consistency. If web server w1 saves the
>> session at node 1 of cassendra while web server w2 retrieve the session from
>> different node, if these two requests are close enough, there is a chance
>> what w2 retrieved is different from what w1 saved. Is it a concern?
>>
>> Tong
>>
>>
>>
>> -Original Message-
>> From: buddhasystem [mailto:potek...@bnl.gov]
>> Sent: Tuesday, February 01, 2011 9:42 AM
>> To: cassandra-u...@incubator.apache.org
>> Subject: Re: cassandra as session store
>>
>>
>> Most if not all modern web application frameworks support sessions. This
>> applies to Django (with which I have most experience and also run it with
>> X.509 security layer) but also to Ruby on Rails and Pylons.
>>
>> So, why would you re-invent the wheel? Too messy. It's all out there for
>> you
>> to use.
>>
>> Regards,
>> Maxim
>>
>> --
>> View this message in context:
>> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
>> Sent from the cassandra-u...@incubator.apache.org mailing list archive at
>> Nabble.com.
>>
>>
>> This message and any attachments contain information that may be RMS Inc.
>> confidential and/or privileged.  If you are not the intended recipient (or
>> authorized to receive for the intended recipient), and have received this
>> message in error, any use, disclosure or distribution is strictly
>> prohibited.   If you have received this message in error, please notify the
>> sender immediately by replying to the e-mail and permanently deleting the
>> message from your computer and/or storage system.
>
>

Ah. Eventual Consistency! Mama no! RUN!

From:
Download JSR-000315 Java Servlet 3.0 Final Release for Documentation, English

Distributed Environments

Within an application marked as distributable, all requests that are
part of a session
must be handled by one JVM at a time. The container must be able to handle all
objects placed into instances of the HttpSession class using the setAttribute or
putValue methods appropriately. The following restrictions are imposed to meet
these conditions:

This look to be the responsibly of the web cluster to ensure
serialized access not the backend. (At least how I am reading it)


Re: cassandra as session store

2011-02-01 Thread Sasha Dolgy
In my scenario all i need is simple session management.  That's all.  Quick
and useful for what i need.  Why i'm creating a wheel...
On 1 Feb 2011 18:42, "buddhasystem"  wrote:
>
> Most if not all modern web application frameworks support sessions. This
> applies to Django (with which I have most experience and also run it with
> X.509 security layer) but also to Ruby on Rails and Pylons.
>
> So, why would you re-invent the wheel? Too messy. It's all out there for
you
> to use.
>
> Regards,
> Maxim
>
> --
> View this message in context:
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at
Nabble.com.


Re: cassandra as session store

2011-02-01 Thread Joe Stump
FWIW we used Memcached for session data at Digg without any major issues. The 
one thing we did end up doing to reduce the LRU on sessions was to modify the 
slab size and put sessions in their own Memcached cluster. Probably not an 
issue for you though.

+1 on Memcached.


On Feb 1, 2011, at 9:57 AM, buddhasystem wrote:

> 
> For completeness:
> 
> http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
> http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions
> 
> I guess your approach does make sense, one only wishes that the servlet in
> question did more work for you. If I read correctly, Django can cache
> sessions transparently in memcached. So memcached mecomes your Session
> Management System. Is it better or worse than Cassandra? My feeling is that
> it's probably faster and easier to set up.
> 
> 
> -- 
> View this message in context: 
> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
> Nabble.com.



Re: cassandra as session store

2011-02-01 Thread Anthony John
Not a concern - and here is why:-

>From the wiki arch section captioned below - eventual consistency does not
have to mean inconsistent reads. The concern is the overhead for consistent
reads. But remember in the use case being cited, the expensive read will
happen only during failover, not all the time.

More specifically: R=read replica count W=write replica count N=replication
factor Q=*QUORUM* (Q = N / 2 + 1)

   -

   If W + R > N, you will have consistency
   - W=1, R=N
   - W=N, R=1
   - W=Q, R=Q where Q = N / 2 + 1


On Tue, Feb 1, 2011 at 11:47 AM, Tong Zhu  wrote:

> The problem is where to store the session data. If the session need to be
> accessible by more than one web servers, the external storage is needed.
>
> Cassandra only supports eventual consistency. If web server w1 saves the
> session at node 1 of cassendra while web server w2 retrieve the session from
> different node, if these two requests are close enough, there is a chance
> what w2 retrieved is different from what w1 saved. Is it a concern?
>
> Tong
>
>
>
> -Original Message-
> From: buddhasystem [mailto:potek...@bnl.gov]
> Sent: Tuesday, February 01, 2011 9:42 AM
> To: cassandra-u...@incubator.apache.org
> Subject: Re: cassandra as session store
>
>
> Most if not all modern web application frameworks support sessions. This
> applies to Django (with which I have most experience and also run it with
> X.509 security layer) but also to Ruby on Rails and Pylons.
>
> So, why would you re-invent the wheel? Too messy. It's all out there for
> you
> to use.
>
> Regards,
> Maxim
>
> --
> View this message in context:
> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at
> Nabble.com.
>
>
> This message and any attachments contain information that may be RMS Inc.
> confidential and/or privileged.  If you are not the intended recipient (or
> authorized to receive for the intended recipient), and have received this
> message in error, any use, disclosure or distribution is strictly
> prohibited.   If you have received this message in error, please notify the
> sender immediately by replying to the e-mail and permanently deleting the
> message from your computer and/or storage system.
>


Re: cassandra as session store

2011-02-01 Thread buddhasystem

For completeness:

http://stackoverflow.com/questions/3746685/running-django-site-in-multiserver-environment-how-to-handle-sessions
http://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cached-sessions

I guess your approach does make sense, one only wishes that the servlet in
question did more work for you. If I read correctly, Django can cache
sessions transparently in memcached. So memcached mecomes your Session
Management System. Is it better or worse than Cassandra? My feeling is that
it's probably faster and easier to set up.


-- 
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5982024.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


Re: cassandra as session store

2011-02-01 Thread Kallin Nagelberg
We're using servlets which also support sessions, but you have to rely
on the servlet container to offer any sort of distributed session
handling and this produces scalability issues past a certain point.
Same thing for persistent sessions (survive restart). We also want a
mechanism that can operate for multiple types of clients, not
necessarily all the same type of web server.

One Session Management System to rule them all,
One Session Management System to find them,
One Session Management System to bring them all
and in the darkness bind them.

-Kal

On Tue, Feb 1, 2011 at 12:42 PM, buddhasystem  wrote:
>
> Most if not all modern web application frameworks support sessions. This
> applies to Django (with which I have most experience and also run it with
> X.509 security layer) but also to Ruby on Rails and Pylons.
>
> So, why would you re-invent the wheel? Too messy. It's all out there for you
> to use.
>
> Regards,
> Maxim
>
> --
> View this message in context: 
> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
> Nabble.com.
>


RE: cassandra as session store

2011-02-01 Thread Tong Zhu
The problem is where to store the session data. If the session need to be 
accessible by more than one web servers, the external storage is needed.

Cassandra only supports eventual consistency. If web server w1 saves the 
session at node 1 of cassendra while web server w2 retrieve the session from 
different node, if these two requests are close enough, there is a chance what 
w2 retrieved is different from what w1 saved. Is it a concern?

Tong



-Original Message-
From: buddhasystem [mailto:potek...@bnl.gov]
Sent: Tuesday, February 01, 2011 9:42 AM
To: cassandra-u...@incubator.apache.org
Subject: Re: cassandra as session store


Most if not all modern web application frameworks support sessions. This
applies to Django (with which I have most experience and also run it with
X.509 security layer) but also to Ruby on Rails and Pylons.

So, why would you re-invent the wheel? Too messy. It's all out there for you
to use.

Regards,
Maxim

--
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


This message and any attachments contain information that may be RMS Inc. 
confidential and/or privileged.  If you are not the intended recipient (or 
authorized to receive for the intended recipient), and have received this 
message in error, any use, disclosure or distribution is strictly prohibited.   
If you have received this message in error, please notify the sender 
immediately by replying to the e-mail and permanently deleting the message from 
your computer and/or storage system.


Re: cassandra as session store

2011-02-01 Thread buddhasystem

Most if not all modern web application frameworks support sessions. This
applies to Django (with which I have most experience and also run it with
X.509 security layer) but also to Ruby on Rails and Pylons.

So, why would you re-invent the wheel? Too messy. It's all out there for you
to use.

Regards,
Maxim

-- 
View this message in context: 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/cassandra-as-session-store-tp5981871p5981961.html
Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
Nabble.com.


Re: cassandra as session store

2011-02-01 Thread Damick, Jeffrey
Are you going to use TTLs to expire the session columns automagically? (we're 
working on something similar as well)


On 2/1/11 12:30 PM, "Roshan Dawrani"  wrote:

Please do keep this discussion on the mailing list and not take it offline. :-)

I will be in the same boat very soon, I think.

It will be great to hear from people who have already gone down this road and 
used Cassandra as a session store in a clustered environment.

On Tue, Feb 1, 2011 at 10:56 PM, Kallin Nagelberg  
wrote:
Cool, maybe we can help each other out. I'm using multiple web-apps,
all running in Resin containers. Have you thought about schema or how
to generate sessionIds for cookies?

-Kal

On Tue, Feb 1, 2011 at 12:22 PM, Sasha Dolgy  wrote:
> I am working on this tonight with jetty as front end and cassandra as
> backend session store.  Hopefully.
>
> On 1 Feb 2011 18:19, "Kallin Nagelberg"  wrote:
>> Hey,
>> I am currently investigating Cassandra for storing what are
>> effectively web sessions. Our production environment has about 10 high
>> end servers behind a load balancer, and we'd like to add distributed
>> session support. My main concerns are performance, consistency, and
>> the ability to create unique session keys. The last thing we would
>> want is users picking up each others sessions. After spending a few
>> days investigating Cassandra I'm thinking of creating a single
>> keyspace with a single super-column-family. The scf would store a few
>> standard columns, and a supercolumn of arbitrary session attributes,
>> like:
>>
>> 0s809sdf8s908sf90s: {
>> prop1: x,
>> created : timestamp,
>> lastAccessed: timestamp,
>> prop2: y,
>> arbirtraryProperties : {
>> someRandomProperty1:xxyyzz,
>> someRandomProperty2:xxyyzz,
>> someRandomProperty3:xxyyzz
>> }
>>
>> Does this sound like a reasonable use case? We are on a tight timeline
>> and I'm currently on the fence about getting something up and running
>> like this on a tight timeline.
>>
>> Thanks,
>> -Kal
>




Re: cassandra as session store

2011-02-01 Thread Roshan Dawrani
Please do keep this discussion on the mailing list and not take it offline.
:-)

I will be in the same boat very soon, I think.

It will be great to hear from people who have already gone down this road
and used Cassandra as a session store in a clustered environment.

On Tue, Feb 1, 2011 at 10:56 PM, Kallin Nagelberg <
kallin.nagelb...@gmail.com> wrote:

> Cool, maybe we can help each other out. I'm using multiple web-apps,
> all running in Resin containers. Have you thought about schema or how
> to generate sessionIds for cookies?
>
> -Kal
>
> On Tue, Feb 1, 2011 at 12:22 PM, Sasha Dolgy  wrote:
> > I am working on this tonight with jetty as front end and cassandra as
> > backend session store.  Hopefully.
> >
> > On 1 Feb 2011 18:19, "Kallin Nagelberg" 
> wrote:
> >> Hey,
> >> I am currently investigating Cassandra for storing what are
> >> effectively web sessions. Our production environment has about 10 high
> >> end servers behind a load balancer, and we'd like to add distributed
> >> session support. My main concerns are performance, consistency, and
> >> the ability to create unique session keys. The last thing we would
> >> want is users picking up each others sessions. After spending a few
> >> days investigating Cassandra I'm thinking of creating a single
> >> keyspace with a single super-column-family. The scf would store a few
> >> standard columns, and a supercolumn of arbitrary session attributes,
> >> like:
> >>
> >> 0s809sdf8s908sf90s: {
> >> prop1: x,
> >> created : timestamp,
> >> lastAccessed: timestamp,
> >> prop2: y,
> >> arbirtraryProperties : {
> >> someRandomProperty1:xxyyzz,
> >> someRandomProperty2:xxyyzz,
> >> someRandomProperty3:xxyyzz
> >> }
> >>
> >> Does this sound like a reasonable use case? We are on a tight timeline
> >> and I'm currently on the fence about getting something up and running
> >> like this on a tight timeline.
> >>
> >> Thanks,
> >> -Kal
> >
>


Re: cassandra as session store

2011-02-01 Thread Kallin Nagelberg
Cool, maybe we can help each other out. I'm using multiple web-apps,
all running in Resin containers. Have you thought about schema or how
to generate sessionIds for cookies?

-Kal

On Tue, Feb 1, 2011 at 12:22 PM, Sasha Dolgy  wrote:
> I am working on this tonight with jetty as front end and cassandra as
> backend session store.  Hopefully.
>
> On 1 Feb 2011 18:19, "Kallin Nagelberg"  wrote:
>> Hey,
>> I am currently investigating Cassandra for storing what are
>> effectively web sessions. Our production environment has about 10 high
>> end servers behind a load balancer, and we'd like to add distributed
>> session support. My main concerns are performance, consistency, and
>> the ability to create unique session keys. The last thing we would
>> want is users picking up each others sessions. After spending a few
>> days investigating Cassandra I'm thinking of creating a single
>> keyspace with a single super-column-family. The scf would store a few
>> standard columns, and a supercolumn of arbitrary session attributes,
>> like:
>>
>> 0s809sdf8s908sf90s: {
>> prop1: x,
>> created : timestamp,
>> lastAccessed: timestamp,
>> prop2: y,
>> arbirtraryProperties : {
>>     someRandomProperty1:xxyyzz,
>>     someRandomProperty2:xxyyzz,
>>     someRandomProperty3:xxyyzz
>> }
>>
>> Does this sound like a reasonable use case? We are on a tight timeline
>> and I'm currently on the fence about getting something up and running
>> like this on a tight timeline.
>>
>> Thanks,
>> -Kal
>


Re: cassandra as session store

2011-02-01 Thread Sasha Dolgy
I am working on this tonight with jetty as front end and cassandra as
backend session store.  Hopefully.
On 1 Feb 2011 18:19, "Kallin Nagelberg"  wrote:
> Hey,
> I am currently investigating Cassandra for storing what are
> effectively web sessions. Our production environment has about 10 high
> end servers behind a load balancer, and we'd like to add distributed
> session support. My main concerns are performance, consistency, and
> the ability to create unique session keys. The last thing we would
> want is users picking up each others sessions. After spending a few
> days investigating Cassandra I'm thinking of creating a single
> keyspace with a single super-column-family. The scf would store a few
> standard columns, and a supercolumn of arbitrary session attributes,
> like:
>
> 0s809sdf8s908sf90s: {
> prop1: x,
> created : timestamp,
> lastAccessed: timestamp,
> prop2: y,
> arbirtraryProperties : {
> someRandomProperty1:xxyyzz,
> someRandomProperty2:xxyyzz,
> someRandomProperty3:xxyyzz
> }
>
> Does this sound like a reasonable use case? We are on a tight timeline
> and I'm currently on the fence about getting something up and running
> like this on a tight timeline.
>
> Thanks,
> -Kal


cassandra as session store

2011-02-01 Thread Kallin Nagelberg
Hey,
I am currently investigating Cassandra for storing what are
effectively web sessions. Our production environment has about 10 high
end servers behind a load balancer, and we'd like to add distributed
session support. My main concerns are performance, consistency, and
the ability to create unique session keys. The last thing we would
want is users picking up each others sessions. After spending a few
days investigating Cassandra I'm thinking of creating a single
keyspace with a single super-column-family. The scf would store a few
standard columns, and a supercolumn of arbitrary session attributes,
like:

0s809sdf8s908sf90s: {
prop1: x,
created : timestamp,
lastAccessed: timestamp,
prop2: y,
arbirtraryProperties : {
    someRandomProperty1:xxyyzz,
    someRandomProperty2:xxyyzz,
    someRandomProperty3:xxyyzz
}

Does this sound like a reasonable use case? We are on a tight timeline
and I'm currently on the fence about getting something up and running
like this on a tight timeline.

Thanks,
-Kal