在数据存储中使用共享计数器?

时间:2014-11-07 05:16:57

标签: database google-app-engine google-cloud-datastore jdo

我需要以分层方式维护数据。例如,我们只考虑以下名称是我的表的属性。 AccountNo,ConnectionId,ContractId,InteractionId,book count

但该记录的结构类似于分层方式。像

一个AccountNo可能有多个ConnectionId以及 一个ConnectionId可能有多个ContractId,以及InteractionId。在InteractionId中还有一个条件是拥有书籍数量。好的,现在

AccountNo1 -> ConnectionId1 -> ContractId1 -> InteractionId1 ->total book count is 10 AccountNo1 -> ConnectionId1 -> ContractId1 -> InteractionId2 ->total book count is 20 AccountNo1 -> ConnectionId1 -> ContractId2 -> InteractionId1 ->total book count is 4 AccountNo1 -> ConnectionId1 -> ContractId2 -> InteractionId2 ->total book count is 67 AccountNo1 -> ConnectionId2 -> ContractId1 -> InteractionId1 ->total book count is 30 . . . 如果我想通过使用查询来检索数据 where AccountNo = 1 and ConnectionId = 1它应显示10 + 20 + 4 + 67 = 101。

如果我给出类似的查询 where AccountNo = 1 and ContractId = 2它应显示4 + 67。

就像我想要的那样。

我的培训师说我可以使用shared counter来完成这些工作。但我在该数据存储网站上没有得到正确的想法。

1 个答案:

答案 0 :(得分:0)

可能你的导师打算使用分片计数器,这是一种在几种类型中拆分计数器的方法,以便能够并行更新它。

有一个Sharded Counters in Datastore的例子可以让你更好地理解它。