【问题标题】:Strategy for Implement increasing id in a multi-threaded environment多线程环境下实现增加id的策略
【发布时间】:2015-04-11 13:55:16
【问题描述】:

我们想在我们的数据索引中构建一个自动递增字段,基本上类似于推文的 twitterId。

我们希望根据 sinceId 和 untilId 向客户提供数据,什么是完成此任务的最佳策略。我们的数据存储在 Solr 和 HBase 中。

问候,

哎呀。

【问题讨论】:

    标签: multithreading solr auto-increment solr4


    【解决方案1】:

    AFAIK 在 Solr 中没有这样的功能。您可以使用类似 [1] 的方法,它使用 UUID。另外,正如你提到的HBase,请看一下

    • 这篇有趣的论文 [2]
    • HBase 文档 [3]

    根据您的上下文,单调递增的标识符并不是那么好(UUID 方法在这里再次有用)


    [1]http://solr.pl/en/2013/07/08/automatically-generate-document-identifiers-solr-4-x
    [2]http://ikaisays.com/2011/01/25/app-engine-datastore-tip-monotonically-increasing-values-are-bad

    【讨论】:

    • 感谢您的建议,UUID 可以以任何方式递增。我的问题是我想在这个字段上实现排序,而且它们需要是唯一的。
    • 您可以拆分两件事:使用 UUID 作为唯一键,使用另一个字段(基于时间戳)作为排序字段。
    • 尝试了这种方法,问题是由不同线程处理的两个对象有时会得到相同的时间戳。一些文档在分页场景中丢失。
    猜你喜欢
    • 2010-09-07
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多