gpt4 book ai didi

python - 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:00 24 4
gpt4 key购买 nike

我的 Cassandra 模型为

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 creation doesn't close files - hits file descriptor limit 。我尝试找到解决方案,但似乎我认为哪些选项可能不起作用

  • 将默认的uuid1替换为uuid4,但TimeUUID需要时间部分,只有uuid1提供那个。
  • 在检查 uuid1 的代码时,将 uuid1 替换为 cassandra.util.uuid_from_time(time.time())uuid_from_time ,两者看起来都一样,所以也没有解决问题。

最后一个选项是将 TimeUUID 替换为 Timestamp 类型,但此 created_at 列是 primary_keyclustering_order,所以不知道我能不能做到这一点。

我的列族已经有 1,000,000 多个数据,所以我不能直接删除它们。

我也想知道,使用TimeUUID代替timestamp有什么好处?

最佳答案

您确定遇到了链接的 libuuid 问题吗?您的代码片段显示了标准库uuid,它可能没有这个问题。您的程序中是否可能存在不同的文件描述符泄漏?

如果是libuuid,最简单的当然是使用标准库实现。如果速度是您最关心的问题,您可能会考虑构建不同版本的 libuuid 来与 python-libuuid 一起使用。我很快尝试了这一点,没有注意到任何文件描述符泄漏:http://www.ossp.org/pkg/lib/uuid/

I also want to know, what is the advantage of using TimeUUID instead of timestamp ?

您将无法更改现有表上的列类型,但要回答您的问题:TimeUUID 通常用于避免在同一时间戳值中写入多个事件时发生冲突。

关于python - 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43807341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com