使用Vertica数据库系统获取Java JPA的行级锁 [英] Using the vertica database system to get row level locks for java jpa

查看:132
本文介绍了使用Vertica数据库系统获取Java JPA的行级锁的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当多个线程试图更新同一个表中的不同记录时,我收到死锁X。在使用Vertica DB系统和Java JPA时,有没有方法获得行级锁而不是表级锁?

推荐答案

Vertica是一款专用的大数据数据库,在15年前设计时考虑到了OLAP工作负载--损害了对OLTP工作负载的支持。

行级锁定是OLTP数据库的特点。

Vertica可以在没有任何压力的情况下提交和回滚数百万行的事务。为了能够做到这一点,它必须限制对单行事务的支持。

支持此行为的设计的一部分是它是一个仅插入的数据库。删除是稍后在后台解析的删除标记;该行仍保留,标记为已删除。在后台运行碎片整理期间,删除的行稍后会被物理删除。

更新是先删除后插入。

每个Delete事务在事务期间获取并保持受影响表上的独占‘X’锁。

这篇关于使用Vertica数据库系统获取Java JPA的行级锁的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆