0

基本上,所需的工作是数据库上的大量记录,并且可以一直插入更多记录:

选择状态为“NEW”的 <1000> 条记录 -> 处理记录 -> 将记录更新为状态“DONE”。

这听起来像“地图减少”。

我认为上述工作可以并行完成,甚至可以由不同的机器完成,但我担心的是:

当我选择状态为“新”的 <1000> 记录时 - 我怎么知道这些记录都没有被其他工作处理?

当然,不应多次选择和处理相同的记录。性能至关重要。天真的解决方案是在循环中完成上述基本工作。

它似乎与大数据处理/nosql/map reduce 等有关。

谢谢

4

1 回答 1

0

由于考虑到性能问题......我们可以实现这一点。主要目标是将记录分发给客户,这样客户就不会获得相同的记录。我不管数据库...

  1. 如果您还有一列用于锁定记录。因此,在获取这些记录时,您可以设置锁定,以防止获取发送时间。

  2. 但是如果你没有这样的能力,那么我的赌注是创建另一个表或im-memory键值存储,使用记录主键和锁,并且在获取记录时你需要检查记录在其他表中不存在...... .

如果你有,HBase那么它可以很容易地实现,第一种方法是可以通过性能实现的。

于 2013-07-25T18:00:51.417 回答