I believe CQL has to fetch and transport the entire row, so if it contains a collection you transmit the entire collection. C* is mostly about low latency queries and as the row gets larger keeping low latency becomes impossible.

Collections do not support a large number of columns, they were not designed to do that. IMHO If you are talking about 2K + columns collections are not for you use old-school c* wide rows.

On Mon, Sep 2, 2013 at 10:36 AM, Keith Wright <kwright@nanigans.com> wrote:
I know that the size is limited to max short (~32k) because when deserializing the response from the server, the first item returned is the number of items and its a short.  That being said you could likely handle this by looking for the overflow and allowing double max short.

Vikas Goyal <vikas@easility.com> wrote:

As there are two ways to support wide rows in CQL3..One is to use composite keys and another is to use collections like Map, List and Set. The composite keys method can have millions of columns (transposed to rows).. This is solving some of our use cases.

However, if we use collections, I want to know if there is a limit that the collections can store a certain number/amount of data (Like earlier with Thrift C* supports up-to 2 billion columns in a row)


Vikas Goyal