Dragos, How many SSTables did you have on disk, and were any of your index expressions GT(E)/LT(E)?
I expect that you are bumping into a limitation of the current implementation: it opens up to 128 file-handles per SSTable in the worst case for a GT/LT query (one per index bucket). A future version might remove that requirement, but for now, you should probably bump the file handle limit on your machine to at least 2^16. Thanks, Stu -----Original Message----- From: "dragos cernahoschi" <dragos.cernahos...@gmail.com> Sent: Monday, November 8, 2010 10:05am To: dev@cassandra.apache.org Subject: CASSANDRA-1472 (bitmap indexes) Hi, I've got an exception during the following test: test machine: core 2 duo 2.93 2GB RAM Ubuntu 10.04 test scenario: - 1 column family - about 15 columns - 7 indexed columns (bitmap) - 26 million rows (insert operation went fine) - thrift "query" on 3 of the indexed columns with get_indexed_slices (count: 100) - got the following exception: 10/11/08 17:52:40 ERROR service.AbstractCassandraDaemon: Fatal exception in thread Thread[ReadStage:3,5,main] java.io.IOError: java.io.FileNotFoundException: /home/dragos/cassandra/data/keyspace/visit-e-814-4-Bitidx.db (Too many open files) at org.apache.cassandra.io.sstable.bitidx.SegmentIterator.open(SegmentIterator.java:78) at org.apache.cassandra.io.sstable.bitidx.BitmapIndexReader.openBin(BitmapIndexReader.java:226) at org.apache.cassandra.io.sstable.bitidx.BitmapIndexReader.iterator(BitmapIndexReader.java:214) at org.apache.cassandra.io.sstable.SSTableReader.scan(SSTableReader.java:523) at org.apache.cassandra.db.secindex.KeysBitmapIndex.iterator(KeysBitmapIndex.java:103) at org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1371) at org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:41) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: /home/dragos/cassandra/data/keyspace/visit-e-814-4-Bitidx.db (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:106) at org.apache.avro.file.SeekableFileInput.<init>(SeekableFileInput.java:29) at org.apache.avro.file.DataFileReader.<init>(DataFileReader.java:38) at org.apache.cassandra.io.sstable.bitidx.SegmentIterator.open(SegmentIterator.java:72) ... 10 more 10/11/08 17:52:40 ERROR service.AbstractCassandraDaemon: Fatal exception in thread Thread[ReadStage:2,5,main] java.io.IOError: java.io.FileNotFoundException: /home/dragos/cassandra/data/keyspace/visit-e-1018-Index.db (Too many open files) at org.apache.cassandra.io.util.BufferedSegmentedFile.getSegment(BufferedSegmentedFile.java:68) at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:129) at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:1) at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:455) at org.apache.cassandra.io.sstable.SSTableReader.getFileDataInput(SSTableReader.java:572) at org.apache.cassandra.db.columniterator.SSTableSliceIterator.<init>(SSTableSliceIterator.java:49) at org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:72) at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:84) at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1190) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1082) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1052) at org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1378) at org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:41) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: /home/dragos/cassandra/data/keyspace/visit-e-1018-Index.db (Too many open files) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:98) at org.apache.cassandra.io.util.BufferedRandomAccessFile.<init>(BufferedRandomAccessFile.java:142) at org.apache.cassandra.io.util.BufferedSegmentedFile.getSegment(BufferedSegmentedFile.java:62) ... 16 more The same test worked fine with 1 million rows.