在java中自动增加数据存储区的实体ID

时间:2017-12-02 05:49:40

标签: java google-app-engine google-cloud-datastore objectify

我知道数据存储区不支持自动增量 但是有些如何在java中创建唯一的id并且比以前的id更大。我知道java支持UUID这是唯一的,但不是任何顺序。

为什么我需要自动增量,如果我以某种方式管理自动增量,我可以按顺序获得结果。我不需要应用任何额外的过滤器来对数据存储区结果进行排序。我默认在某处读取数据存储返回ASC的命令。如果我按顺序创建唯一ID,我可以按顺序格式获得结果。

我正在使用物化。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这是分布式系统中的一个难题。订购需要多精确?如果它需要完全单调,那么你需要一个发出id的单节点仲裁器。否则,您将进入分布式共识算法领域,这种算法既复杂又缓慢。

数据存储区是一个大规模分布式系统,并非针对此特定用例而设计。如果您可以每秒发出几个ID,则可以将当前值存储在实体中并在事务中更新它......但是您不能超过该吞吐量。