cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cathy Daw (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-2938) NotFoundException doing a quick succession of insert/get's on the same CF or rowkey
Date Fri, 22 Jul 2011 19:22:58 GMT
NotFoundException doing a quick succession of insert/get's on the same CF or rowkey

                 Key: CASSANDRA-2938
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 0.8.0
            Reporter: Cathy Daw
            Priority: Minor

* A customer complained about pycassa.cassandra.c08.ttypes.NotFoundException: NotFoundException()
* This issue is related to a quick succession of insert/get's.  See: []
* Customer's AWS instance on EBS:  1 row with 10K columns, with sleep code:  fails 1/10 inserts

* Rackspace:
** We could not reproduce this with the sleep code left in.  This was tested with the SimpleStrategy
and NetworkTopologyStrategy.
** 1 row with 10K columns, without sleep code:  fails 1/500 inserts
** 10K row with 1 column, without sleep code:  Script passes 2 in 5 attempts.  When it fails,
it is at about the 4000-5000th insert.

Traceback (most recent call last):
  File "", line 56, in <module>
  File "", line 43, in test
    db.get('testraw', columns=[key, ]) 
  File "/usr/local/lib/python2.6/dist-packages/pycassa-1.1.0-py2.6.egg/pycassa/",
line 391, in get
    read_consistency_level or self.read_consistency_level)
  File "/usr/local/lib/python2.6/dist-packages/pycassa-1.1.0-py2.6.egg/pycassa/", line
380, in new_f
    result = getattr(super(ConnectionWrapper, self), f.__name__)(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/pycassa-1.1.0-py2.6.egg/pycassa/cassandra/c08/",
line 422, in get
    return self.recv_get()
  File "/usr/local/lib/python2.6/dist-packages/pycassa-1.1.0-py2.6.egg/pycassa/cassandra/c08/",
line 449, in recv_get
    raise result.nfe
pycassa.cassandra.c08.ttypes.NotFoundException: NotFoundException()

*Script - also attached*

import time
import pycassa
from pycassa import system_manager
from pycassa.system_manager import *

def test():
        m = pycassa.system_manager.SystemManager('cathy1:9160')

        pool = pycassa.pool.ConnectionPool('testraw',
                server_list=['cathy1:9160', ], timeout=5, pool_size=16,
                max_overflow=0, prefill=False, pool_timeout=30, max_retries=8)

        kspaces = m.list_keyspaces()

        if not 'testraw' in kspaces:
                m.create_keyspace('testraw', 3)

        cfs = m.get_keyspace_column_families('testraw')

        if 'testraw' not in cfs:
                m.create_column_family('testraw', 'testraw',

                row_cache_size=1024 * 1024, key_cache_size=0)

        db = pycassa.ColumnFamily(pool, 'testraw',

                for i in range(10000):
                        print 'Inserting %d' % i

                        # The following code generates 1 row with 10K columns
                        key = str(i)
                        db.insert('testraw', {key: ''})
                        db.get('testraw', columns=[key, ])

                        # The following code generates 10K rows with 1 columns
                        #key = 'key' + str(i) 
                        #db.insert(key, {str(i) : ''}) 
                        #db.get(key, columns=[str(i), ]) 

                        # time.sleep(.1) 
                print 'Done'

if __name__ == '__main__':

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message