2

我在同时向 openTSDB 运行多个导入时收到竞争条件警告。以下是显示竞态条件的日志序列之一。

2013-08-21 14:34:24,745 INFO [main] UniqueId:为 kind='tagv' name='25447' 创建 ID

2013-08-21 14:34:24,747 INFO [main] UniqueId:得到 ID = 307 for kind='tagv' name='25447'

2013-08-21 14:34:24,752 WARN [main] UniqueId: Race condition: 试图将 ID 307 分配给 tagv:25447,但 CAS 在 PutRequest(table="tsdb-uid", key="25447", family =“id”,限定符=[“tagv”],值=[“\x00\x013”],时间戳=9223372036854775807,lockid=-1,持久=真,可缓冲=真,尝试= 0,区域=空),这表明此 UID 必须已由另一个 TSD 同时分配。所以 ID 307 被泄露了。

我有以下问题:

  1. 既然是警告,那是不是记录是真的写了,没有跳过?
  2. 最后它说,“ID 307 已泄露”,那么是否为该记录分配了其他 ID?
  3. 如何验证该记录是否已写入 HBase 名为 'tsdb-uid' 的表中?(HBase shell 命令,我尝试了一些但徒劳无功)。
4

1 回答 1

4

这只是意味着一个 UID 被分配了,但除此之外一切都很好。如果您担心tsdb-uid表的状态,您可以运行该tsdb uid fsck命令,它可能会报告某些 UID 已分配但未使用。

如果您只是偶尔看到该消息,则可以忽略它。如果您经常看到它,那么唯一的不良后果是您消耗 UID 空间的速度比您应该的要快,因此您可能会更快用完 UID(每个都有 16777215 个可能的 UID:指标名称、标签名称,标签值)。

于 2013-08-21T16:09:17.153 回答