Thanks guys, that was precisely the problem. I also upped
the thrift_max_message_length_in_mb setting, since I guessed the default of
16MB would also block larger messages.

On Tue, Sep 20, 2011 at 6:47 PM, Jim Ancona <j...@anconafamily.com> wrote:

> Pete,
>
> See this thread
>
> http://groups.google.com/group/hector-users/browse_thread/thread/cb3e72c85dbdd398/82b18ffca0e3940a?#82b18ffca0e3940a
> for a bit more info.
>
> Jim
>
> On Tue, Sep 20, 2011 at 9:02 PM, Tyler Hobbs <ty...@datastax.com> wrote:
> > From cassandra.yaml:
> >
> > # Frame size for thrift (maximum field length).
> > # 0 disables TFramedTransport in favor of TSocket. This option
> > # is deprecated; we strongly recommend using Framed mode.
> > thrift_framed_transport_size_in_mb: 15
> >
> > So you can either increase that limit, or split your write into multiple
> > operations.
> >
> > On Tue, Sep 20, 2011 at 4:26 PM, Pete Warden <p...@petewarden.com>
> wrote:
> >>
> >> I'm running into consistent problems when storing values larger than
> 15MB
> >> into Cassandra, and I was hoping for some advice on tracking down what's
> >> going wrong. From the FAQ it seems like what I'm trying to do is
> possible,
> >> so I assume I'm messing something up with my configuration. I have a
> minimal
> >> set of code to reproduce the issue below, which I've run on the DataStax
> >> 0.8.1 AMI I'm using in production (ami-9996c4dc)
> >> # To set up the test data structure on Cassandra:
> >> cassandra-cli
> >> connect localhost/9160;
> >> create keyspace TestKeyspace with
> >>   placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and
> >>   strategy_options = [{replication_factor:3}];
> >> use TestKeyspace;
> >> create column family TestFamily with
> >>   comparator = UTF8Type and
> >>   column_metadata =
> >>   [
> >>     {column_name: test_column, validation_class: UTF8Type},
> >>   ];
> >> # From bash on the same machine, with Ruby and the Cassandra gem
> >> installed:
> >> irb
> >> require 'rubygems'
> >> require 'cassandra/0.8'
> >> client = Cassandra.new('TestKeyspace', 'localhost:9160', :retries => 5,
> >> :connect_timeout => 5, :timeout => 10)
> >> # With data this size, the call works
> >> column_value = 'a' * (14*1024*1024)
> >> row_value = { 'column_name' => column_value }
> >> client.insert(:TestFamily, 'SomeKey', row_value)
> >>
> >> # With data this size, the call fails with the exception below
> >> column_value = 'a' * (15*1024*1024)
> >> row_value = { 'column_name' => column_value }
> >> client.insert(:TestFamily, 'SomeKey', row_value)
> >> # Results:
> >> This first call with a 14MB chunk of data succeeds, but the second one
> >> fails with this exception:
> >> CassandraThrift::Cassandra::Client::TransportException:
> >> CassandraThrift::Cassandra::Client::TransportException
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift-0.7.0/lib/thrift/transport/socket.rb:53:in
> >> `open'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift-0.7.0/lib/thrift/transport/framed_transport.rb:37:in
> >> `open'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift_client-0.7.1/lib/thrift_client/connection/socket.rb:11:in
> >> `connect!'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift_client-0.7.1/lib/thrift_client/abstract_thrift_client.rb:105:in
> >> `connect!'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift_client-0.7.1/lib/thrift_client/abstract_thrift_client.rb:144:in
> >> `handled_proxy'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/thrift_client-0.7.1/lib/thrift_client/abstract_thrift_client.rb:60:in
> >> `batch_mutate'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/cassandra-0.12.1/lib/cassandra/protocol.rb:7:in
> >> `_mutate'
> >> from
> >>
> /usr/lib/ruby/gems/1.8/gems/cassandra-0.12.1/lib/cassandra/cassandra.rb:459:in
> >> `insert'
> >> from (irb):6
> >> from :0
> >> Any suggestions on how to dig deeper? I'll be reaching out to the
> >> Cassandra gem folks, etc too of course.
> >> cheers,
> >>            Pete
> >
> >
> > --
> > Tyler Hobbs
> > Software Engineer, DataStax
> > Maintainer of the pycassa Cassandra Python client library
> >
> >
>

Reply via email to