I do not think this is a good use case for Cassandra alone, assuming the queries can be any combination of the 18 columns. I would consider using some combination of Cassandra and Solr, where Solr provides the indexing/search, and Cassandra provides the bulk store.
From: Andy Stec [mailto:andys...@gmail.com] Sent: Saturday, March 16, 2013 12:10 AM To: user@cassandra.apache.org Subject: Secondary Indexes We need to provide search capability based on a field that is a bitmap combination of 18 possible values. We want to use secondary indexes to improve performance. One possible solution is to create a named column for each value and have a secondary index for each of the 18 columns. Questions we have are: - Will that result in Cassandra creating 18 new column families, one for each index? - If a given column is not specified in any rows, will Cassandra still create an index column family? - The documentation says that indexes are rebuilt with every Cassandra restart. Why is that needed? What does the rebuild do? Does it read the whole column family into memory at once? [https://mail.google.com/mail/images/cleardot.gif] _______________________________________________ This message may contain information that is confidential or privileged. If you are not an intended recipient of this message, please delete it and any attachments, and notify the sender that you have received it in error. Unless specifically stated in the message or otherwise indicated, you may not uplicate, redistribute or forward this message or any portion thereof, including any attachments, by any means to any other person, including any retail investor or customer. This message is not a recommendation, advice, offer or solicitation, to buy/sell any product or service, and is not an official confirmation of any transaction. Any opinions presented are solely those of the author and do not necessarily represent those of Barclays. This message is subject to terms available at: www.barclays.com/emaildisclaimer and, if received from Barclays' Sales or Trading desk, the terms available at: www.barclays.com/salesandtradingdisclaimer/. By messaging with Barclays you consent to the foregoing. Barclays Bank PLC is a company registered in England (number 1026167) with its registered office at 1 Churchill Place, London, E14 5HP. This email may relate to or be sent from other members of the Barclays group. _______________________________________________