基本上,所需的工作是数据库上的大量记录,并且可以一直插入更多记录:
选择< 1000>状态为“NEW”的记录 - >处理记录 - >将记录更新为“DONE”状态。
这听起来像“Map Reduce”。
我认为上述工作可以并行,甚至由不同的机器完成,但后来关注的是:
当我选择< 1000>时状态为“NEW”的记录 - 我怎么知道这些记录中没有一个已被其他工作处理过?
当然不应该多次选择和处理相同的记录。 表现至关重要。 天真的解决方案是在循环中完成上述基本工作。
似乎与大数据处理/ nosql / map reduce等有关。
由于
答案 0 :(得分:0)
自从考虑性能问题......我们可以实现这一目标。主要目标是将记录分发给客户,使客户获得相同的记录。 我不管数据库......
如果您还有一列用于锁定记录。因此,在获取这些记录时,您可以设置锁定,以防止获取发送时间。
但是如果你没有这样的能力,那么我的赌注就是创建另一个表或im-memory
键值存储,使用Record主键和锁定,并在获取需要检查的记录时记录在其他表中不存在....
如果您有HBase
,那么可以轻松实现第一种方法可以实现性能。