Robert Wille
2013-05-12 15:13:32 UTC
I designed a data model for my data that uses a list of UUID's in a
column. When I designed my data model, my expectation was that most of the
lists would have fewer than a hundred elements, with a few having several
thousand. I discovered in my data a list that has nearly 400,000 items in
it. When I try to retrieve it, I get the following exception:
java.lang.IllegalArgumentException: Illegal Capacity: -14594
at java.util.ArrayList.<init>(ArrayList.java:110)
at
org.apache.cassandra.cql.jdbc.ListMaker.compose(ListMaker.java:54)
at
org.apache.cassandra.cql.jdbc.TypedColumn.<init>(TypedColumn.java:68)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.createColumn(CassandraResu
ltSet.java:1086)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.populateColumns(CassandraR
esultSet.java:161)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.<init>(CassandraResultSet.
java:134)
at
org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStateme
nt.java:166)
at
org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStat
ement.java:226)
I get this with Cassandra 1.2.4 and the latest snapshot of the JDBC
driver. Admittedly, several hundred thousand is quite a lot of items, but
odd that I'm getting some kind of wraparound, since 400,000 is a long ways
from 2 billion.
What are the physical and practical limits on the size of a list? Is it
possible to retrieve a range of items from a list?
Thanks in advance
Robert
column. When I designed my data model, my expectation was that most of the
lists would have fewer than a hundred elements, with a few having several
thousand. I discovered in my data a list that has nearly 400,000 items in
it. When I try to retrieve it, I get the following exception:
java.lang.IllegalArgumentException: Illegal Capacity: -14594
at java.util.ArrayList.<init>(ArrayList.java:110)
at
org.apache.cassandra.cql.jdbc.ListMaker.compose(ListMaker.java:54)
at
org.apache.cassandra.cql.jdbc.TypedColumn.<init>(TypedColumn.java:68)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.createColumn(CassandraResu
ltSet.java:1086)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.populateColumns(CassandraR
esultSet.java:161)
at
org.apache.cassandra.cql.jdbc.CassandraResultSet.<init>(CassandraResultSet.
java:134)
at
org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStateme
nt.java:166)
at
org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStat
ement.java:226)
I get this with Cassandra 1.2.4 and the latest snapshot of the JDBC
driver. Admittedly, several hundred thousand is quite a lot of items, but
odd that I'm getting some kind of wraparound, since 400,000 is a long ways
from 2 billion.
What are the physical and practical limits on the size of a list? Is it
possible to retrieve a range of items from a list?
Thanks in advance
Robert