У меня есть модель Кассандры как
import uuid
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
class MyModel(Model):
...
...
created_at = columns.TimeUUID(primary_key=True,
clustering_order='DESC',
default=uuid.uuid1)
...
...
Недавнее приложение попало в создание uuid1 не закрывает файлы - достигает предела файлового дескриптора . Я пытаюсь найти решение, но кажется, что варианты, которые я думаю, могут не работать
- Замените
uuid1
по умолчанию наuuid4
, ноTimeUUID
нужна часть времени в нем, и толькоuuid1
обеспечивают это. - Замените
uuid1
наcassandra.util.uuid_from_time(time.time())
при проверке кода для обоихuuid1
иuuid_from_time
, оба выглядят одинаково, так что это также не решает проблему.
Последний вариант — заменить TimeUUID
типом Timestamp
, но этот столбец created_at
— это primary_key
и clustering_order
, так что не знаю, смогу я это сделать или нет.
В моем семействе столбцов уже более 1 000 000 данных, поэтому я не могу просто их удалить.
Я также хочу знать, в чем преимущество использования TimeUUID
вместо timestamp
?