cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mobiledream...@gmail.com
Subject Re: Newbe´s question
Date Tue, 25 Aug 2009 04:26:16 GMT
hey Drew
Can you show an example on how to use your lazyboy with a simple column
family or super columny familythat would be really great
thanks a lot

On Mon, Aug 24, 2009 at 3:15 PM, Drew Schleck <drew.schleck@gmail.com>wrote:

> I've been working on a Lazyboy 0.4 update at
> http://github.com/dschleck/lazyboy/ . Right now it's at the point
> where it works for me and what I'm doing but there's probably a few
> bugs to be caught. As an example, yesterday I noticed it wasn't
> possible to delete items out of supercolumns so I fixed that.
>
> If you decide to use my branch of it and find a bug, please tell me
> about it and I'll do my best to sort it out.
>
> Drew
>
> On Mon, Aug 24, 2009 at 12:09, Evan Weaver<eweaver@gmail.com> wrote:
> > The Ruby client works fine. ;-)
> >
> > Evan
> >
> > On Mon, Aug 24, 2009 at 12:00 PM, Jonathan Ellis<jbellis@gmail.com>
> wrote:
> >> That's probably the best option at the moment.  Once you're familiar
> >> with the thrift API I'm sure the lazyboy devs would welcome updates
> >> too.
> >>
> >> -Jonathan
> >>
> >> On Mon, Aug 24, 2009 at 1:54 PM, Bruno Couto<bcouto@gmail.com> wrote:
> >>> Thanks for helpping me Jonathan!
> >>>
> >>> Well, now I know that I can´t use the Lazyboy, then I will try my
> >>> first steps using the Cassandra trunk version and thrift api whitout a
> >>> wrapper.
> >>>
> >>>
> >>> On Mon, Aug 24, 2009 at 2:41 PM, Jonathan Ellis<jbellis@gmail.com>
> wrote:
> >>>> lazyboy works vs an earlier version of trunk, so it's already
> >>>> incompatible with 0.3, but not yet compatible w/ latest 0.4 :)
> >>>>
> >>>> On Mon, Aug 24, 2009 at 12:28 PM, Bruno Couto<bcouto@gmail.com>
> wrote:
> >>>>> Jonathan,
> >>>>>
> >>>>>
> >>>>> First, thanks for answering so fast.
> >>>>> I´m using version 0.3-final of Cassandra, then I believe the api
> >>>>> version 0.4 is not the problem, am I correct?
> >>>>> I'll look for the null problem.
> >>>>>
> >>>>>
> >>>>> Bruno Couto
> >>>>>
> >>>>>
> >>>>> On Mon, Aug 24, 2009 at 11:50 AM, Jonathan Ellis<jbellis@gmail.com>
> wrote:
> >>>>>> There's two things going on here, I think.
> >>>>>>
> >>>>>> One is that you're passing a null where there shouldn't be one.
>  This
> >>>>>> is a thrift bug and will be addressed in the next beta.
> >>>>>>
> >>>>>> The other is that IIRC lazyboy needs to be updated to work with
the
> >>>>>> latest 0.4 api.
> >>>>>>
> >>>>>> -Jonathan
> >>>>>>
> >>>>>> On Mon, Aug 24, 2009 at 9:09 AM, Bruno Couto<bcouto@gmail.com>
> wrote:
> >>>>>>> Hi Guys,
> >>>>>>>
> >>>>>>> my name is Bruno and I'm from Brazil, first, sorry for my
bad
> english.
> >>>>>>> I'm in my first steps with cassandra, and I´m trying to
use Lazyboy
> >>>>>>> (python wrapper).
> >>>>>>> But when I run the layzyboy columnfamily.py example, I get
the
> >>>>>>> following error messages.
> >>>>>>> Someone with more experience could help me?
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> Bruno Couto.
> >>>>>>>
> >>>>>>>
> >>>>>>> ----
> >>>>>>>
> >>>>>>> Cassandra Error Message:
> >>>>>>>
> >>>>>>> DEBUG - batch_insert
> >>>>>>> ERROR - Internal error processing batch_insert
> >>>>>>> java.lang.NullPointerException
> >>>>>>>        at
> org.apache.cassandra.db.RowMutation.getRowMutation(RowMutation.java:284)
> >>>>>>>        at
> org.apache.cassandra.service.CassandraServer.batch_insert(CassandraServer.java:318)
> >>>>>>>        at
> org.apache.cassandra.service.Cassandra$Processor$batch_insert.process(Cassandra.java:968)
> >>>>>>>        at
> org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:807)
> >>>>>>>        at
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
> >>>>>>>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> >>>>>>>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >>>>>>>        at java.lang.Thread.run(Thread.java:619)
> >>>>>>> DEBUG - Disseminating load info ...
> >>>>>>>
> >>>>>>> ----
> >>>>>>>
> >>>>>>> Python Error Message:
> >>>>>>>
> >>>>>>> localhost ~ # python columnfamily.py
> >>>>>>> {'table': 'UserData', 'superkey': None, 'key':
> >>>>>>> '3a63b82a947d4ee1a8cbee45944b5dcb', 'family': 'Users', 'supercol':
> >>>>>>> None}
> >>>>>>> {'username': 'ieure', 'email': 'ian@digg.com'}
> >>>>>>> True
> >>>>>>> Traceback (most recent call last):
> >>>>>>>  File "columnfamily.py", line 65, in <module>
> >>>>>>>    u.save()           # -> {'username': 'ieure', 'email':
'
> ian@digg.com'}
> >>>>>>>  File "/root/columnfamily.py", line 119, in save
> >>>>>>>
> >>>>>>>  File "build/bdist.linux-i686/egg/lazyboy/connection.py",
line 106,
> in func
> >>>>>>> lazyboy.exceptions.ErrorThriftMessage: Internal error processing
> batch_insert
> >>>>>>>
> >>>>>>> ----
> >>>>>>>
> >>>>>>> ColumnFamily.py
> >>>>>>>
> >>>>>>> # -*- coding: utf-8 -*-
> >>>>>>> #
> >>>>>>> # Lazyboy examples
> >>>>>>> #
> >>>>>>> # © 2009 Digg, Inc. All rights reserved.
> >>>>>>> # Author: Ian Eure <ian@digg.com>
> >>>>>>> #
> >>>>>>> # This example assumes the following schema:
> >>>>>>> #
> >>>>>>> # <Tables>
> >>>>>>> #     <Table Name="UserData">
> >>>>>>> #         <ColumnFamily ColumnSort="Name" Name="Users"/>
> >>>>>>> #     </Table>
> >>>>>>> # </Tables>
> >>>>>>> #
> >>>>>>>
> >>>>>>>
> >>>>>>> from lazyboy import *
> >>>>>>>
> >>>>>>>
> >>>>>>> # Define your cluster(s)
> >>>>>>> connection.add_pool('UserData', ['localhost:9160'])
> >>>>>>>
> >>>>>>>
> >>>>>>> # Subclass ColumnFamily to create an object of the correct
type.
> >>>>>>> class User(columnfamily.ColumnFamily):
> >>>>>>>    """A class representing a user in Cassandra."""
> >>>>>>>
> >>>>>>>    # _key is the key template. It's values are given to
> >>>>>>>    # PrimaryKey.__init__ as keyword arguments any time a
PK is
> >>>>>>>    # instantiated for this object.
> >>>>>>>    _key = {'table': 'UserData',        # The table to store
in
> >>>>>>>            'family': 'Users'}          # The ColumnFamily
name to
> store on
> >>>>>>>
> >>>>>>>    # Anything in here _must_ be set before the object is
saved
> >>>>>>>    _required = ('username',)
> >>>>>>>
> >>>>>>>
> >>>>>>> # Create an empty object
> >>>>>>> u = User()
> >>>>>>>
> >>>>>>> # A PrimaryKey is generated for you:
> >>>>>>> print u.pk
> >>>>>>> # -> {'table': 'UserData', 'superkey': None,
> >>>>>>> #     'key': 'da6c8e19174f40cfa6d0b65a08eef62f',
> >>>>>>> #     'family': 'Users', 'supercol': None}
> >>>>>>>
> >>>>>>> data = {'username': 'ieure', 'email': 'ian@digg.com'}
> >>>>>>>
> >>>>>>> # The object is a dict. All these are equivalent.
> >>>>>>> u.update(data)
> >>>>>>> u.update(data.items())
> >>>>>>> u.update(**data)
> >>>>>>> for k in data:
> >>>>>>>    u[k] = data[k]
> >>>>>>>
> >>>>>>> # Arguments to __init__ are passed to update()
> >>>>>>> u = User(data)
> >>>>>>> print u            # -> {'username': 'ieure', 'email':
'
> ian@digg.com'}
> >>>>>>>
> >>>>>>> # You can see if it's been modified.
> >>>>>>> print u.is_modified()           # -> True
> >>>>>>>
> >>>>>>> # Save to Cassandra
> >>>>>>> u.save()           # -> {'username': 'ieure', 'email':
'
> ian@digg.com'}
> >>>>>>>
> >>>>>>> print u.is_modified()           # -> False
> >>>>>>>
> >>>>>>> # Load it in a new instance.
> >>>>>>> u_ = User().load(u.pk.key)
> >>>>>>> print u_           # -> {'username': 'ieure', 'email':
'
> ian@digg.com'}
> >>>>>>>
> >>>>>>> print u.is_modified()           # -> False
> >>>>>>> del u['username']
> >>>>>>> print u.valid()                 # -> False
> >>>>>>> print u.missing()               # -> ('username',)
> >>>>>>> try:
> >>>>>>>    u.save()        # -> ('Missing required field(s):',
> ('username',))
> >>>>>>> except Exception, e:
> >>>>>>>    print e
> >>>>>>>
> >>>>>>> # Discard modifications
> >>>>>>> u.revert()
> >>>>>>> print u.is_modified()           # -> False
> >>>>>>> print u.valid()                 # -> True
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> >
> >
> > --
> > Evan Weaver
> >
>



-- 
Bidegg worlds best auction site
http://bidegg.com

Mime
View raw message