Yes that makes a lot of sense!  on using remaining() method I see the
proper expected sizes.


On Mon, Jan 2, 2012 at 5:26 PM, Sylvain Lebresne <sylv...@datastax.com>wrote:

> I am not familiar enough with Hector to tell you if it is doing something
> special here, but note that:
>
> 1) you may have better luck getting that kind of question answered
> quickly by using the Hector mailing list.
>
> 2) that may or may not change what you're seeing (since again I don't
> know what Hector is actually doing), but "bb.array().length" is not a
> reliable way to get the effective length of a ByteBuffer, as it is
> perfectly
> legit to have a byte buffer only use parts of it's underlying array. You
> should use the remaining() method instead.
>
> --
> Sylvain
>
> On Mon, Jan 2, 2012 at 12:29 PM, Ertio Lew <ertio...@gmail.com> wrote:
> > Sorry I forgot to tell that I'm using Hector to communicate with
> Cassandra.
> > CS.toByteBuffer  is to convert the composite type name to ByteBuffer.
> >
> > Can anyone aware of Hector API enlighten me why am I seeing this size for
> > the composite type names.
> >
> >
> > On Mon, Jan 2, 2012 at 2:52 PM, aaron morton <aa...@thelastpickle.com>
> > wrote:
> >>
> >> What is the definition of the composite type and what is CS.toByteBuffer
> >> ?
> >>
> >> CompositeTypes have a small overhead
> >> see
> https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/marshal/CompositeType.java
> >>
> >> Hope that helps.
> >> Aaron
> >>
> >> -----------------
> >> Aaron Morton
> >> Freelance Developer
> >> @aaronmorton
> >> http://www.thelastpickle.com
> >>
> >> On 2/01/2012, at 6:25 PM, Ertio Lew wrote:
> >>
> >> I am storing composite column names which are made up of two integer
> >> components. However I am shocked after seeing the storage overhead of
> these.
> >>
> >> I just tried out a composite name (with single integer component):
> >>
> >>           Composite composite = new Composite();
> >>           composite.addComponent(-165376575,is);
> >>
> >> System.out.println(CS.toByteBuffer( composite ).array().length); // the
> >> result is 256
> >>
> >>
> >> After writing & then reading back this composite column from cassandra:
> >>
> >>
> >>
> System.out.println(CS.toByteBuffer( readColumn.getName() ).array().length);
> >> // the result is 91
> >>
> >>
> >> How much is the storage overhead, as I am quite sure that  I'm making a
> >> mistake in realizing the actual values ?
> >>
> >>
> >
>

Reply via email to