I currently have
scf[c1][sc1]=value
scf[c1][sc2]=value
...
scf[c2][sc1]=value
scf[c2][sc2]=value
scf[c2][sc3]=value
scf[c2][sc4]=value

99% of the time, I do multiget super slices: for multiple keys, I query for
columns explicitly c1,c2,c10,c12
1% of the time, I do a multigetrange superslice where for multiple keys, I
query for a range of super columns
As Tyler said, it can be done by specifying supercolumns in the slice
predicate, it will implicitly return all its columns. I use Hector and it
works great.

Now interestingly enough, column names sc1, sc2, sc3 are in fact home-made
composite columns.

I could and would switch to full composite columns because I am fishing for
every drop of performance I can. However, I would need "Letting
multiget_slice accept multiple SlicePredicates per key could also
accomplish this."
Can anyone on the dev team comment on doing this ? Is it a no-no ?

Thanks

2011/12/29 Edward Capriolo <edlinuxg...@gmail.com>

> Hum...
>
> Do you have this?
> scf [b][1][a]=value
> scf [b][1][x]=value
> scf [b][7][b]=value
>
> and you want to slice:
> scf [b][1][*]
>
> Which would result in
>
> scf [b][1][a]=value
> scf [b][1][x]=value
>
> ?
>
> The composite version of this would be:
> cf [b][1:a]=value
> cf [b][1:x]=value
> cf [b][7:b]=value
>
> I am not sure exactly what you are doing because A SlicePredicate
> takes either a list of columns or a SliceRange. A ColumnPath takes a
> Single SuperColumn.
>
> I do not see how this is done with Columns or SuperColumns. Maybe you
> can provide a code snippet and/or some sample data?
>
> On 12/29/11, Aditya <ady...@gmail.com> wrote:
> > @Edward: Perhaps you missed to notice that I need to always retrieve 'all
> > columns' under the supercolumn at any time.. and as per my query
> > requirements if I use composite columns instead of supercolumns then it
> is
> > impossible to do wildcard queries like the ones asked in this thread's
> > headline but which is much easier to do through the use of supercolumns.
> >
> > On Thu, Dec 29, 2011 at 11:06 PM, Edward Capriolo
> > <edlinuxg...@gmail.com>wrote:
> >
> >> The use case in question was: Only accessing some columns.
> >>
> >> Even if that is not the case:
> >>
> >> SuperColumns: 1 extra level of nesting
> >> Composite Colunns: Arbitrary levels of nesting
> >>
> >> SuperColumns: More overhead (space on disk) then using your own
> delimiter
> >> '_'
> >> SuperColumns: Likely going to be replaced in future c* version behind
> >> the scenes by composite columns anyway
> >> SuperColumns: Usually an afterthought for API developers, (support for
> >> them comes "later")
> >> SuperColumns: Almost always utilized incorrectly by users, users speak
> >> of '10%' performance gains after they switch away from them.
> >>
> >> There are some (a small % of cases) where SuperColumns are a better
> >> choice, but this is rare. With composites and concatenating columns
> >> they have no great purpose any more, (bad analogy coming!) like a
> >> mechanical type writer.
> >>
> >> On 12/29/11, Philippe <watche...@gmail.com> wrote:
> >> > Would you stand by that statement in case all colums inside the super
> >> > column need to be read?  Why?
> >> >
> >> > Thanks
> >> > Le 28 déc. 2011 19:26, "Edward Capriolo" <edlinuxg...@gmail.com> a
> >> écrit :
> >> >
> >> >> Super columns have the same fundamental problem and perform worse in
> >> >> general. So switching from composites to super columns is NEVER a
> good
> >> >> idea.
> >> >>
> >> >>
> >> >> On Wed, Dec 28, 2011 at 1:19 PM, Aditya <ady...@gmail.com> wrote:
> >> >>
> >> >>> Since I have around 20 items to query, I guess making 20 queries to
> >> >>> retrieve activities by all followies on all of those 20 columns
> would
> >> too
> >> >>> inefficient, so to take the advantage of more efficient queries, are
> >> >>> supercolumns recommended for this case ? Anyways, in case I use
> >> >>> supercolumns, I need to retrieve the entire supercolumn at any point
> >> >>> of
> >> >>> time & I am writing subcolumn(s) to the supercolumn at different
> times
> >> >>> not
> >> >>> at once.
> >> >>>
> >> >>> On Wed, Dec 28, 2011 at 8:07 PM, Edward Capriolo
> >> >>> <edlinuxg...@gmail.com>wrote:
> >> >>>
> >> >>>> You need to execute one get slice operation for each item id or if
> >> >>>> the
> >> >>>> row is not large , you can try one large get slice on the entire
> row
> >> and
> >> >>>> deal with the results client side.
> >> >>>>
> >> >>>> If you try method 1 When doing slices on composites you can set the
> >> >>>> start inclusive or exclusive values to get only the column you want
> >> and
> >> >>>> not
> >> >>>> some extra columns up to slice range size.
> >> >>>>
> >> >>>>
> >> >>>> On Tuesday, December 27, 2011, Aditya <ady...@gmail.com> wrote:
> >> >>>> > I need to store data of all activities by user's followies in
> >> >>>> > single
> >> >>>> row. I am trying to do that making use of composite column names
> in a
> >> >>>> single user specific row named 'rowX'.
> >> >>>> > On any activity by a user's followie on an item, a column is
> stored
> >> in
> >> >>>> 'rowX'. The column has a composite type column name made up of
> >> >>>> itemId+userId (which makes it unique col. name) in rowX. (& column
> >> value
> >> >>>> contains the activity data related to that item by that followie)
> >> >>>> >
> >> >>>> > Now I want to retrieve activity by all users on a list of items.
> So
> >> I
> >> >>>> need to retrieve all composite columns with composite's first
> >> component
> >> >>>> matching the itemId. Is it possible to do such a query to
> Cassandra ?
> >> I
> >> >>>> am
> >> >>>> using Hector.
> >> >>>>
> >> >>>
> >> >>>
> >> >>
> >> >
> >>
> >
>

Reply via email to