问题描述
我有一个我不明白的 WSREP 错误问题。如果有人解释发生了什么以及如何解决,我会很高兴。
我的应用有一个用于创建帐户的端点。在端点中,有几个请求 DB 检查帐户是否已经存在,并在必要时创建一个新帐户。新的“帐户”有两部分 - 用户和身份。用户和相应身份的创建不在事务中发生,但两个数据库请求都应用于集群的同一个节点(但其他用户和身份的创建可能发生在其他节点上)。
出于某种原因,有时我会在创建身份(插入)时遇到 WSREP(检测到死锁/冲突)错误。我确信没有任何具有相同数据的冲突插入请求,因为之后我在数据库中没有身份。为什么会发生?会不会是一些索引/外键问题?
我在这里完全不知所措。任何帮助表示赞赏!
配置:
MysqLd Ver 5.7.23-23-57 for Linux on x86_64 (Percona XTradB Cluster (GPL),Release rel23,Revision f5578f0,WSREP version 31.31,wsrep_31.31)
表格(有点简化):
create table users
(
id bigint auto_increment
primary key,profile json null,is_active tinyint(1) default 1 null,is_email_confirmed tinyint(1) default 0 null,is_phone_confirmed tinyint(1) default 0 null,created_at datetime default CURRENT_TIMESTAMP null,modified_at datetime null,email varchar(200) null,);
create index ix_users_email
on users (email);
create index ix_users_phone_number
on users (phone_number);
create table identities
(
id bigint auto_increment
primary key,user_id bigint null,provider_id bigint null,email varchar(200) null,password varchar(200) null,first_name varchar(200) null,last_name varchar(200) null,last_login datetime(6) null,created_at datetime(6) default CURRENT_TIMESTAMP(6) null,modified_at datetime(6) default CURRENT_TIMESTAMP(6) null,is_deleted tinyint(1) default 0 null,constraint identities_ibfk_1
foreign key (user_id) references users (id),);
create index provider_id
on identities (provider_id);
create index user_id
on identities (user_id);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)