cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruno Couto <bco...@gmail.com>
Subject Newbe´s question
Date Mon, 24 Aug 2009 14:09:24 GMT
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

Mime
View raw message