如何在Cassandra中生成业务序列号?

如何在Cassandra中生成业务序列号?,cassandra,Cassandra,有大量信息提供了生成存储在C*中的基于uuid的数据表示的方法。通常,这些键可以充当代理键 我们正在从SQL转向NoSQL(更具体地说是C*)。我们需要考虑的一个重要问题是,如何用C*语言维护现有的Oracle/DB2序列生成器,该语言用于业务数据 粗略地说,这些用于识别业务数据(如订单号等)的序列生成器需要是幂等的,并且在分布式系统(如C*中)中工作良好,已知C*只支持三个CAP属性中的一个 AFAIK C*不是幂等的。天真地尝试实现Oracle nextval功能(例如 ) 在C*中,无论是

有大量信息提供了生成存储在C*中的基于uuid的数据表示的方法。通常,这些键可以充当代理键

我们正在从SQL转向NoSQL(更具体地说是C*)。我们需要考虑的一个重要问题是,如何用C*语言维护现有的Oracle/DB2序列生成器,该语言用于业务数据

粗略地说,这些用于识别业务数据(如订单号等)的序列生成器需要是幂等的,并且在分布式系统(如C*中)中工作良好,已知C*只支持三个CAP属性中的一个

AFAIK C*不是幂等的。天真地尝试实现Oracle
nextval
功能(例如

)

在C*中,无论是在实现方面还是在设计方面,都会导致一些故障恢复能力

我们迫不及待地等待C*3.x,目前正在使用2.2.x,正在寻找其他选项


TIA.

将所有现有id转换为时间UUID,并使用UUID class+1生成时间UUID。使用时间UUID,您可以获得顺序和唯一性,而不会出现非常复杂的分布式系统问题。将所有现有id转换为时间UUID,并使用UUID class+1生成时间UUID,使用时间UUID生成时间UUID,你得到了一个顺序和唯一性,而没有一个非常复杂的分布式系统问题。
start with 1000008
increment by 1
maxvalue 1000000000