1
我正在使用AWS Redshift执行分析查询。该查询执行一些计算并更新密钥的值。此结果将导出到队列系统以供异步客户端使用。但是,由于排队系统不能确保排序,我需要一种机制来确定顺序。我需要类似于“update_version”列的东西,它在每次更新操作中都会增加。这与optimistic locking类似。如何在redshift中实现行级版本控制?
如何在红移中实现此目的?
一种方法是使用时间戳,但它不可靠,因为时间戳是从群集中的单个节点中获取的,并且易于使用clock skew。
我不需要全局排序。
注意:请不要建议使用有序队列,因为这个问题的范围之外有不同的挑战。
如果两个进程同时更新密钥的值,为什么一个会比另一个更正确?换句话说,如果您的队列工作人员丢弃比最新处理的信息旧的任何新消息,那么时钟偏斜会产生什么不同? – systemjack
此外,即使给定数据点的值可能分布在多个节点上,只有选定用于运行更新查询的工作节点上的时钟才会被计数。给定更新的各个节点存储区中的所有时间戳值都是相同的。 – systemjack