redis Redshift删除显式锁会导致丢失行/重复行,最佳解决方案?

zbdgwd5y  于 2023-01-20  发布在  Redis
关注(0)|答案(1)|浏览(170)

我有一个用例,我们的一些红移表被多个数据科学家同时用于调优。如果他们同时调优并同时导入数据,我们最终会得到丢失的行和重复的行。
不久前,他们从表中删除了显式锁,以减少挂在这些锁上的负载量。
我假设删除显式锁会导致重复和丢失行。
在前进的道路上,我在考虑将kinesis、redis或类似于批处理的东西作为一个导入而不是插入(无论如何对红移来说不是很好),或者真实的的解决方案是将显式锁定添加回表并处理挂起的负载。
如有任何指导,将不胜感激。谢谢
重新设置显式锁是有效的,但是其他过程会挂在表/进程锁后面,速度会大大降低。

00jrzges

00jrzges1#

是的,是拆锁造成的,他们不应该这样做。告诉他们停止。
他们很可能会遇到这种情况,因为他们没有提交更改。将他们的连接更改为AUTOCOMMIT可能会解决问题。如果一个人更改了一个表,但没有提交更改,那么在提交更改之前,他们将拥有一个本地副本和一个锁。如果他们从未断开连接,那么这种情况可能会永远持续下去。如果许多人都这样做,那么您将拥有一堆等待解决的本地副本和锁,但没有人提交更改。
当人们从写锁定数据库中出来时,他们可能会对正在发生的事情感到困惑。阅读MVCC数据库一致性。

相关问题