Hey Aaron,

That sounds sensible - thanks for the heads up.

Cheers,

Ben

On Dec 10, 2012, at 0:47, aaron morton <aa...@thelastpickle.com> wrote:

>> (and if the message is being decoded on the server site as a complete 
>> message, then presumably the same resident memory consumption applies there 
>> too).
> Yerp. 
> And every row mutation in your batch becomes a task in the Mutation thread 
> pool. If one replica gets 500 row mutations from one client request it will 
> take a while for the (default) 32 threads to chew through them. While this is 
> going on other client request will be effectively blocked. 
> 
> Depending on the number of clients, I would start with say 50 rows per 
> mutation and keep and eye of the *request* latency. 
> 
> Hope that helps. 
> 
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Developer
> New Zealand
> 
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 9/12/2012, at 7:18 AM, Ben Hood <0x6e6...@gmail.com> wrote:
> 
>> Thanks for the clarification Andrey. If that is the case, I had better 
>> ensure that I don't put the entire contents of a very long input stream into 
>> a single batch, since that is presumably going to cause a very large message 
>> to accumulate on the client side (and if the message is being decoded on the 
>> server site as a complete message, then presumably the same resident memory 
>> consumption applies there too).
>> 
>> Cheers,
>> 
>> 
>> Ben
>> 
>> On Dec 7, 2012, at 17:24, Andrey Ilinykh <ailin...@gmail.com> wrote:
>> 
>>> Cassandra uses thrift messages to pass data to and from server. A batch is 
>>> just a convenient way to create such message. Nothing happens until you 
>>> send this message. Probably, this is what you call "close the batch".
>>> 
>>> Thank you,
>>>   Andrey
>>> 
>>> 
>>> On Fri, Dec 7, 2012 at 5:34 AM, Ben Hood <0x6e6...@gmail.com> wrote:
>>>> Hi,
>>>> 
>>>> I'd like my app to stream a large number of events into Cassandra that 
>>>> originate from the same network input stream. If I create one batch 
>>>> mutation, can I just keep appending events to the Cassandra batch until 
>>>> I'm done, or are there some practical considerations about doing this 
>>>> (e.g. too much stuff buffering up on the client or server side, visibility 
>>>> of the data within the batch that hasn't been closed by the client yet)? 
>>>> Barring any discussion about atomicity, if I were able to stream a largish 
>>>> source into Cassandra, what would happen if the client crashed and didn't 
>>>> close the batch? Or is this kind of thing just a normal occurrence that 
>>>> Cassandra has to be aware of anyway?
>>>> 
>>>> Cheers,
>>>> 
>>>> Ben
> 

Reply via email to