2

openTSDB への複数のインポートを同時に実行しているときに、競合状態の警告が表示されます。以下は、競合状態を示すログ シーケンスの 1 つです。

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: kind='tagv' name='25447' の ID=307 を取得しました

2013-08-21 14:34:24,752 警告 [メイン] UniqueId: 競合状態: ID 307 を tagv:25447 に割り当てようとしましたが、CAS は PutRequest(table="tsdb-uid", key="25447", family ="id"、qualifiers=["tagv"]、values=["\x00\x013"]、timestamp=9223372036854775807、lockid=-1、durable=true、bufferable=true、attempt=0、region=null)、これは、この UID が別の TSD によって同時に割り当てられたに違いないことを示しています。だからID 307が流出した。

私が持っている次の質問:

  1. 警告なので、実際にレコードが書き込まれ、スキップされていないということですか?
  2. 最後に「ID 307 が漏えいしました」とありますが、別の ID がレコードに割り当てられているのでしょうか?
  3. 上記のレコードが「tsdb-uid」という名前の HBase のテーブルに書き込まれていることを確認するにはどうすればよいですか? (HBase シェル コマンド、いくつか試してみましたが無駄でした)。
4

1 に答える 1

4

これは、UID が何も割り当てられなかったことを意味しますが、それ以外はすべて問題ありません。テーブルの状態が気になる場合はtsdb-uid、コマンドを実行できますtsdb uid fsck。おそらく、一部の UID が割り当てられているが使用されていないことが報告されるでしょう。

このメッセージがたまにしか表示されない場合は、無視してかまいません。頻繁に表示される場合、唯一の望ましくない結果は、UID スペースを本来よりも速く使い果たしていることです。そのため、UID がすぐに不足する可能性があります (メトリック名、タグ名前、タグ値)。

于 2013-08-21T16:09:17.153 に答える