Yes… I confirmed that getBytesUnsafe works…

I also have a unit test for it so if cassandra ever changes anything we'll
pick it up.

One point in your above code.  I still think charsets are behind a
synchronized code block.

So your above code wouldn't be super fast on multi-core machines.  I
usually use guava's Charsets class since they have static references to all
of them.

… just wanted to point that out since it could bite someone :-P …




On Tue, Jun 24, 2014 at 12:13 AM, Olivier Michallat <
olivier.michal...@datastax.com> wrote:

> Assuming we're talking about the DataStax Java driver:
>
> getBytes will throw an exception, because it validates that the column is
> of type BLOB. But you can use getBytesUnsafe:
>
>     ByteBuffer b = row.getBytesUnsafe("aTextColumn");
>     // if you want to check it:
>     Charset.forName("UTF-8").decode(b);
>
> Regarding whether this will continue working in the future: from the
> driver's perspective, the fact that the native protocol uses UTF-8 is an
> implementation detail, but I doubt this will change any time soon.
>
>
>
>
> On Tue, Jun 24, 2014 at 7:23 AM, DuyHai Doan <doanduy...@gmail.com> wrote:
>
>> Good idea, bytes are merely processed by the server so you're saving a
>> lot of Cpu. AFAIK getBytes should work fine.
>> Le 24 juin 2014 05:50, "Kevin Burton" <bur...@spinn3r.com> a écrit :
>>
>> I'm building a webservice whereby I read the data from cassandra, then
>>> write it over the wire.
>>>
>>> It's going to push LOTS of content, and encoding/decoding performance
>>> has really bitten us in the future.  So I try to avoid transparent
>>> encoding/decoding if I can avoid it.
>>>
>>> So right now, I have a huge blob of text that's a 'text' column.
>>>
>>> Logically it *should* be text, because that's what it is...
>>>
>>> Can I just keep it as text so our normal tools work on it, but get it as
>>> raw UTF8 if I call getBytes?
>>>
>>> This way I can call getBytes and then send it right over the wire as
>>> pre-encoded UTF8 data.
>>>
>>> ... and of course the question is whether it will continue working in
>>> the future :-P
>>>
>>> I'll write a test of it of course but I wanted to see what you guys
>>> thought of this idea.
>>>
>>> --
>>>
>>> Founder/CEO Spinn3r.com
>>> Location: *San Francisco, CA*
>>> Skype: *burtonator*
>>> blog: http://burtonator.wordpress.com
>>> … or check out my Google+ profile
>>> <https://plus.google.com/102718274791889610666/posts>
>>> <http://spinn3r.com>
>>> War is peace. Freedom is slavery. Ignorance is strength. Corporations
>>> are people.
>>>
>>>
>


-- 

Founder/CEO Spinn3r.com
Location: *San Francisco, CA*
Skype: *burtonator*
blog: http://burtonator.wordpress.com
… or check out my Google+ profile
<https://plus.google.com/102718274791889610666/posts>
<http://spinn3r.com>
War is peace. Freedom is slavery. Ignorance is strength. Corporations are
people.

Reply via email to