RX0022

领域: 引擎

错误消息

一次写入所需要的存在无法被铸造(%s)

消息中的 %s 表示引擎抛出错误时填入的具体内容。

小故事

你写入一条记录,引擎要先给它造一个存在。一个存在,包含一个随机的身份,加上六个必需的字段,其中时间来自标准时钟,节点来自这台机器的 machine-id。这一次,造不出来了:也许是随机源不可用,也许是时钟读不到,也许是 machine-id 缺失。缺了任何一样,这个存在就是残缺的。引擎为什么不将就着存一个呢?因为历史永远不丢任何一行,一个残缺的存在一旦写进去,就会永远站在那里,以后每次有人读它,得到的都是一个从未完整出生的东西。所以引擎选择拒绝这次写入。这条拒绝有两个来源:堆造不出存在,或者累积存储读不了时钟。怎么办?先查是哪一个:随机源、时钟,还是 machine-id,把它修好再试一次。记住:宁可不写,也不写残缺的历史。

文本来自 Rush 引擎的错误目录。