我有卡桑德拉模型
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)
...
...
Recentrly应用程序命中了uuid1 creation doesn't close files - hits file descriptor limit。我试图找到解决办法,但似乎我认为哪些选择可能行不通
uuid1
替换为uuid4
,但是TimeUUID
需要时间部分,并且只有uuid1
提供了这一点。在uuid1
与{最后一个选项是将TimeUUID
替换为Timestamp
类型,但是这个created_at
列是primary_key
和{
我的列族已经有1000000多个数据,所以我不能直接删除它们。在
我还想知道,用TimeUUID
代替timestamp
有什么好处?在
您确定您正在处理您链接的
libuuid
问题吗?代码片段显示了标准库uuid
,它可能没有这个问题。你的程序中可能有不同的文件描述符泄漏吗?在如果是
libuuid
,最简单的方法就是使用标准库实现。如果速度是您最关心的问题,您可以考虑构建一个不同版本的libuuid
,以便与python-libuuid
一起使用。我很快就试过了,没有发现任何文件描述符泄漏:http://www.ossp.org/pkg/lib/uuid/您将无法更改现有表中列的类型,但要回答您的问题:TimeUUID通常用于避免在同一时间戳值中写入多个事件的冲突。在
相关问题 更多 >
编程相关推荐