为了标记我们创建的数据,我正在考虑使用 uuids。安全性不是问题,所以我打算使用版本 1(基于日期和 MAC 地址)。唯一需要担心的是,每个用户可能会同时从具有多个线程的不同进程创建多个数据文件。假设 Python 的 uuid 库是线程安全的(尽管看起来不是这样),但仍然存在多进程问题。我正在考虑用破折号和进程号作为 uuid 后缀。
由于我们小组对 uuids 的经验很少,所以我需要牢记什么问题?多进程问题通常如何处理?
只需将uuid4用于完全随机的 UUID。无需担心碰撞。
编辑以回应评论:根据我的经验,冗余数据迟早会导致不一致。避免冗余是关系数据库设计的信条是有原因的。
因此,不要将 UUID 用作实际“原始计算机”和“时间戳”数据的“冗余备份”。要么将其用作不携带其他信息的纯唯一 ID,要么根本不使用它。