更新跨多行时出现 HBase 一致性问题


sample hbase table -    

+--------------------------------------------+-------------------------+
| username X + username Y who is following X | full name of username Y |
+--------------------------------------------+-------------------------+
| AK+foo                                     | James Foo               |
| AK+bar                                     | Jimmy Bar               |
| AK+baz                                     | Ricky Baz               |
| AK+troy                                    | Troy                    |
| foo+bar                                    | Jimmy Bar               |
| foo+AK                                     | AK                      |
+--------------------------------------------+-------------------------+

我的理解是 hbase 不提供跨多行的事务。 在这种情况下,假设我想删除跨多行的用户 AK。 如何在不破坏一致性的情况下处理删除操作。

经过更多的研究,我意识到hbase没有交易, 即它不能保证多行之间的原子性。
因此,在上述情况下,通常是应用程序的责任 如果在仅部分写入成功后发生故障(例如:删除 1 行,不删除第 2 行(。

因此,应用程序需要处理不一致的数据并尝试使其保持一致。

最新更新