Почему Кассандра ведет себя странно с байтовыми ключами (с Lazyboy)? - PullRequest
2 голосов
/ 11 августа 2010

Я написал тестовую программу для тестирования Cassandra, и у меня были проблемы с чтением данных. Похоже, Кассандра иногда берет один ключ за другой.

Вот моя тестовая программа:

from lazyboy import *
from lazyboy.key import Key
import uuid
import random

class TestItemKey(Key):
    def __init__(self, key=None):
     Key.__init__(self, "TestMX", "TestCF", key)

class TestItem(record.Record):
    def __init__(self, *args, **kwargs):
        record.Record.__init__(self, *args, **kwargs)
        self.key = TestItemKey(uuid.uuid1().bytes)

connection.add_pool('TestMX', ['localhost:9160'])

t1 = TestItem({'test':'foo'})
t1.key = TestItemKey(uuid.UUID('3cead15a-a54e-11df-87a2-000c298d2724').bytes)
t2 = TestItem({'test':'bar'})
t2.key = TestItemKey(uuid.UUID('3cebc15a-a54e-11df-87a2-000c298d2724').bytes)
t1.save()
t2.save()

print TestItem().load(t1.key.clone())
print TestItem().load(t2.key.clone())

(выбранные UUID являются примером тех, которые вызывают проблемы)

Вот вывод этого скрипта:

root@ubuntu:/mnt/hgfs/TestMX# python test.py 
TestItem: {'test': 'foo'}
TestItem: {'test': 'foo'}

Вместо ожидаемого результата:

root@ubuntu:/mnt/hgfs/TestMX# python test.py 
TestItem: {'test': 'foo'}
TestItem: {'test': 'bar'}

Обратите внимание, что скрипт обычно отлично работает с другими случайно выбранными UUID, но иногда нет ...

1 Ответ

2 голосов
/ 12 августа 2010

Звучит так, как будто вы нажимаете https://issues.apache.org/jira/browse/CASSANDRA-1235, который зафиксирован в ветке 0.6 и будет в 0.6.5, следующей стабильной версии.

...