CN109446214A - 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 - Google Patents
大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 Download PDFInfo
- Publication number
- CN109446214A CN109446214A CN201811231504.9A CN201811231504A CN109446214A CN 109446214 A CN109446214 A CN 109446214A CN 201811231504 A CN201811231504 A CN 201811231504A CN 109446214 A CN109446214 A CN 109446214A
- Authority
- CN
- China
- Prior art keywords
- master data
- version
- clash handle
- strategy
- lock mechanism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种大数据背景下基于乐观锁机制实现主数据版本管理的系统,包括乐观锁初始化模块;版本比对执行模块根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对;冲突处理策略池用于将比对结果匹配相应的冲突处理策略;冲突处理模块用于将处理策略针对产生的主数据版本冲突按照匹配策略进行处理。本发明还涉及一种利用该系统在大数据背景下基于乐观锁机制实现主数据版本管理的方法。采用了该系统及方法,解决了大数据背景下主数据在多节点部署或者多线程执行等高并发环境下更新冲突的问题,从而减轻了主数据版本维护的工作量,实现了主数据版本精细化管理,提高了主数据更新的并发性,为企业及政府部门主数据实施及应用奠定了良好的基础。
Description
技术领域
本发明涉及数据管理领域,尤其涉及主数据版本管理领域,具体是指一种大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法。
背景技术
随着我国信息化建设的不断发展,企业及政府部门信息化建设的不断深入,所建设的业务系统越来越多,因此随之产生的数据库也越来越多,逐渐形成了大数据的环境背景。这些数据互相交叉融合,造成了针对同一业务多套系统在提供数据来源,但是数据的格式类型又不尽相同,造成了数据无法共享,信息孤岛问题突出,同时数据的一致性,权威性也受到严重的挑战,影响了企业及政府部门正常业务开展和决策分析。
主数据作为企业或政府部门的核心数据资产,对信息化建设起到至关重要的作用,主数据通常是那些基础的、变动不频繁且被广泛使用的数据。主数据对于解决业务数据存在的多来源,不统一的问题起到了很好的作用,将核心业务数据识别为主数据后通过主数据平台统一管理,统一维护,然后再提供给其他系统使用,通过这样的方式提高了数据的使用率,保证了数据的统一。
但是,对于数据而言,其本身是会发生变化的,特别是在大数据背景下,这样变化的几率更大。虽然作为主数据而言这种变化通常是不频繁的,但是主数据一旦发生变化,即表示其版本更新了,这就需要通过版本管理解决主数据版本更新之间的冲突。特别是在多节点部署或者多线程执行等高并发的环境下,会导致同一份主数据被施加不同的修改,从而产生冲突。
针对主数据的版本管理,现有技术通常是通过每行设置主数据的状态及版本进行管理。
首先,定义不同的数据状态:如“编辑”状态、“生效”状态、“停用”状态、“作废”状态等,不同的应用场景定义的数据状态存在差别,但是都大同小异。
其次,定义管理规则,针对主数据的“新增”、“发布”、“修订”、“停用”、“作废”等操作定义不同的管理规则,如当新增主数据时,则将数据状态置为编辑,并且存入临时表;数据编辑完成,发布后,则将临时表数据迁移至正式表;当数据重新修订后,则将修订后的数据存入正式表,修订前的数据存入历史表。
最后,定义主数据版本更新规则,针对主数据不同的操作定义不同的主数据版本更新规则,如新增主数据时主数据版本置为1,编辑主数据时主数据版本加1,停用及作废主数据版本不变。
现有技术实现了主数据版本在单一环境下的管理需求,但是无法满足多节点部署或者多线程执行的环境下主数据版本精细化管理需求。
现有技术基本上能满足单一环境下主数据版本管理的需求,但是对于多节点部署或者多线程执行的环境下,目前的主数据版本管理技术存在明显的不足。同时,现有技术无法提供冲突策略的管理,不利于主数据版本管理功能的拓展。
在多节点部署或者多线程执行等高并发环境下,同一个时间可能有多个线程更新相同主数据,从而产生冲突,现有的技术对于这样的冲突未提供有效的解决策略,不能满足高并发场景下的应用需求,最终会造成主数据更新丢失、脏读或者幻读,造成主数据版本的混乱,从而影响其他系统对于主数据的使用。
如主数据表(MDM_TABLE)包含下列字段及内容,分别表示有三个不同的主数据字段值及数据版本:
MDM_ID | MDM_A | MDM_B | MDM_C | MDM_VERSION |
a001 | 1 | 2 | 3 | 1 |
操作1:update MDM_TABLE set MDM_A=2,MDM_B=0,MDM_C=1 where id=A001;
操作2:update MDM_TABLE set MDM_A=0,MDM_B=1,MDM_C=2 where id=A001;
操作3:update MDM_TABLE set MDM_A=0,MDM_B=3,MDM_C=2 where id=A001;
在现有主数据版本管理技术的情况下,顺序执行以上3个操作,最后前两个操作会被直接覆盖。这样的话,在实际的主数据应用过程中,就会造成主数据版本的丢失,甚至对业务系统造成影响。
另外,现有的主数据版本管理方法是通过每行设置版本号的方式,这种方式无法满足主数据版本的精细化管理需求,即无法针对单一的主数据字段进行版本管理,在行中的任意主数据字段更新后,该行中的所有主数据版本号都会加1。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种精细化管理、操作简便、适用性强的大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法。
为了实现上述目的,本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法如下:
该大数据背景下基于乐观锁机制实现主数据版本管理的系统,其主要特点是,所述的系统包括:
乐观锁初始化模块,用于实现数据表的初始化;
版本比对执行模块,该版本比对执行模块的输入端与所述的乐观锁初始化模块的输出端相连接,用于根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对;
冲突处理策略池,该冲突处理策略池的输入端与所述的版本比对执行模块的输出端相连接,用于将接收到的比对结果匹配相应的冲突处理策略;
冲突处理模块,该冲突处理模块的输入端与所述的冲突处理策略池的输出端相连接,用于将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理。
较佳地,所述的数据表包括还未实施的主数据库表和已经实施的主数据库表。
较佳地,所述的冲突处理策略池包括:
冲突处理策略定义单元,用于根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
比对结果输入单元,用于接收乐观锁比对结果,将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照;
冲突处理策略输出单元,用于将输出参数输出到冲突处理模块。
较佳地,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
较佳地,所述的不同的冲突处理策略包括根据实际的业务需要结合输出结果定义多种冲突处理策略。
该大数据背景下基于乐观锁机制实现主数据版本管理的方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的乐观锁初始化模块对数据表进行初始化;
(2)所述的版本比对执行模块根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对,并将结果输出到冲突处理策略池;
(3)所述的冲突处理策略池将所述的比对结果匹配相应的冲突处理策略;
(4)所述的冲突处理模块将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理。
较佳地,所述的步骤(1)包括以下步骤:
(1.1)在需要使用乐观锁的主数据字段中分别新增一个数据版本字段;
(1.2)所述的数据版本字段在主数据修改时版本值增加1。
较佳地,所述的步骤(2)包括以下步骤:
(2.1)所述的版本比对模块将读取到的版本字段值与当前数据库中的版本字段值进行比对;
(2.2)判断主数据版本是否一致,如果是,则主数据版本更新正常;否则,将版本比对结果输出到冲突处理策略池。
较佳地,所述的步骤(3)包括以下步骤:
(3.1)所述的冲突处理策略定义单元根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
(3.2)所述的比对结果输入单元接收所述的版本比对模块的比对结果;
(3.3)所述的比对结果输入单元将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照,并选取合适的冲突处理策略;
(3.4)所述的冲突处理策略输出单元将所述的冲突处理策略输出到冲突处理模块。
较佳地,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
较佳地,所述的步骤(4)包括以下步骤:
(4.1)根据所述的冲突处理策略进行处理;
(4.2)判断是否存在数据更新冲突,如果是,则继续步骤(1);否则,完成数据更新。
采用了该大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法,解决了大数据背景下主数据在多节点部署或者多线程执行等高并发环境下更新冲突的问题,从而减轻了主数据版本维护的工作量,实现了主数据版本精细化管理,提高了主数据更新的并发性,为企业及政府部门主数据实施及应用奠定了良好的基础。同时本发明支持主数据冲突处理策略池功能,通过策略池,主数据版本管理可以实现针对不同的业务场景配置不同的策略,即主数据可根据其业务内涵采取不同的版本更新策略,从而提高了主数据版本管理的灵活性和适应性,满足多行业多领域的主数据管理需求。
附图说明
图1为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统的构成图。
图2为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统的版本比对执行模块在相邻版本更新时流程图。
图3为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统的版本比对执行模块在基于前一版本同时更新时流程图。
图4为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统的冲突处理策略池模块的构成图。
图5为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统的冲突处理策略池模块的处理过程流程图。
图6为本发明的大数据背景下基于乐观锁机制实现主数据版本管理的系统在实施例中冲突处理策略池模块的处理过程流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该大数据背景下基于乐观锁机制实现主数据版本管理的系统,其主要特点是,所述的系统包括:
乐观锁初始化模块,用于实现数据表的初始化;
版本比对执行模块,该版本比对执行模块的输入端与所述的乐观锁初始化模块的输出端相连接,用于根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对;
冲突处理策略池,该冲突处理策略池的输入端与所述的版本比对执行模块的输出端相连接,用于将接收到的比对结果匹配相应的冲突处理策略;
冲突处理模块,该冲突处理模块的输入端与所述的冲突处理策略池的输出端相连接,用于将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理。
较佳地,所述的数据表包括还未实施的主数据库表和已经实施的主数据库表。
较佳地,所述的冲突处理策略池包括:
冲突处理策略定义单元,用于根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
比对结果输入单元,用于接收乐观锁比对结果,将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照;
冲突处理策略输出单元,用于将输出参数输出到冲突处理模块。
较佳地,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
较佳地,所述的不同的冲突处理策略包括根据实际的业务需要结合输出结果定义多种冲突处理策略。
该大数据背景下基于乐观锁机制实现主数据版本管理的方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的乐观锁初始化模块对数据表进行初始化;
(1.1)在需要使用乐观锁的主数据字段中分别新增一个数据版本字段;
(1.2)所述的数据版本字段在主数据修改时版本值增加1;
(2)所述的版本比对执行模块根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对,并将结果输出到冲突处理策略池;
(2.1)所述的版本比对模块将读取到的版本字段值与当前数据库中的版本字段值进行比对;
(2.2)判断主数据版本是否一致,如果是,则主数据版本更新正常;否则,将版本比对结果输出到冲突处理策略池;
(3)所述的冲突处理策略池将所述的比对结果匹配相应的冲突处理策略;
(3.1)所述的冲突处理策略定义单元根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
(3.2)所述的比对结果输入单元接收所述的版本比对模块的比对结果;
(3.3)所述的比对结果输入单元将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照,并选取合适的冲突处理策略;
(3.4)所述的冲突处理策略输出单元将所述的冲突处理策略输出到冲突处理模块;
(4)所述的冲突处理模块将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理;
(4.1)根据所述的冲突处理策略进行处理;
(4.2)判断是否存在数据更新冲突,如果是,则继续步骤(1);否则,完成数据更新。
较佳地,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
本发明的具体实施方式中,本发明通过乐观锁机制实现主数据的版本管理,解决了多节点部署或者多线程执行等高并发环境下主数据版本更新冲突问题,实现了主数据版本的精细化管理,同时本发明提供主数据冲突处理策略池,解决了主数据冲突处理策略的调整问题,方便用户根据实际业务场景调整冲突处理策略,提高了主数据版本处理方法的适应性。
本发明分为乐观锁初始化模块、版本比对执行模块、冲突处理策略池和冲突处理模块。
乐观锁初始化模块实现数据表的初始化,版本比对执行模块中采用乐观锁机制在执行主数据更新操作时对主数据版本进行比对,并将比对结果作为输出参数输入到冲突处理策略池中,冲突处理策略池接收到比对结果后匹配相应的冲突处理策略,将处理策略输出到冲突处理模块,冲突处理模块接收处理策略后针对产生的主数据版本冲突按照匹配的策略进行处理,从而保证了在多节点部署或者多线程执行环境下更新主数据产生的版本冲突得到有效的解决,避免了主数据更新版本丢失、脏读或者幻读,同时实现了主数据版本的精细化管理。
下面将详细描述乐观锁初始化模块、版本比对执行模块、冲突处理策略池和冲突处理模块的构成及原理。
一、乐观锁初始化模块
乐观锁初始化模块针对还未实施的主数据库表或者已经实施的主数据库表进行初始化操作。在需要使用乐观锁的主数据字段中分别新增一个数据版本(VERSION)字段,即主数据字段分别拥有自己的乐观锁版本号,用于表示主数据被修改的次数。主数据更新时分别只关注自己的版本号,这样使得主数据的版本管理能够精确到每一个主数据字段,而非主数据所在的行,更进一步的这样的方式不会因为同时单独对一行中的两个主数据字段进行更新操作(两条SQL语句分别单独执行)而造成后执行的一条因为先执行的一条更新了版本号字段而失败的情况发生,而且还能提高并发性。
针对还未实施的主数据库表乐观锁初始化核心SQL代码如下:
其中MDM_TABLE_NAME、MDM_ID、MDM_A、MDM_A_VERSION、MDM_B、MDM_B_VERSION、MDM_C、MDM_C_VERSION……等表名、字段名及字段类型在具体实施过程中可根据实际情况设定,MDM_A_VERSION、MDM_B_VERSION、MDM_C_VERSION为根据主数据表中需要乐观锁的字段单独设置的版本字段,需要设置版本号的字段可根据具体实施过程确定。
针对已经实施的主数据库表乐观锁初始化核心SQL代码如下:
ALTER TABLE MDM_TABLE_NAME ADD(MDM_A_VERSION INT NOT NULL,MDM_B_VERSION INT NOT NULL,MDM_C_VERSION INT NOT NULL……);
其中MDM_TABLE_NAME在具体实施过程中为主数据库中已经存在的表,MDM_A_VERSION、MDM_B_VERSION、MDM_C_VERSION为根据主数据表中需要乐观锁的字段单独设置的版本字段,需要设置版本号的字段可根据具体实施过程确定。
二、版本比对执行模块
版本比对执行模块根据乐观锁机制,在操作数据库时(更新主数据操作),假设这次的操作不会导致冲突,在操作主数据时,不进行加锁操作,而在主数据更新后,再去判断是否有冲突发生。
结合乐观锁初始化模块的内容,在需要乐观锁的主数据字段中都单独设置了版本字段,用于表示主数据被修改的次数,当主数据被修改时,版本值会加一。当某线程需要更新主数据值时,在读取主数据的同时也会读取版本值,在提交更新时,版本比对模块对刚才读取到的版本字段值与当前数据库中的版本字段值进行比对,并将比对结果输入冲突处理策略池。例如,版本一致,则返回结果1,版本不一致返回0以及其他情况及返回结果,在具体的实施过程中可结合实际场景定义两种及以上的输出结果。
核心代码如下:
如图2、3所示,主数据更新过程中存在相邻版本顺序更新、基于前一版本同时更新两类情况:
1.A和B顺序对同一版本的主数据进行修改,则主数据正常更新,不会出现问题;
2.A和B对同一版本的主数据进行修改,那么,先提交操作的B会把主数据版本更新为2,当A在B之后提交更新时发现主数据版本已经被修改了,此时会产生冲突,版本比对模块会将比对结果输入到冲突处理策略池中做下一步处理。
核心SQL代码如下:
三、冲突处理策略池
冲突处理策略池包含冲突处理策略定义模块、比对结果输入模块和冲突处理策略输出模块。
冲突处理策略定义模块针对可能发生的主数据版本冲突定义不同的处理策略,如主数据版本一致、主数据版本不一致及其他可能的情况。具体的处理策略可根据实际实施要求设置,在实际场景中可根据实际的业务需要结合输出结果定义多种冲突处理策略。冲突处理策略定义如下表所示:
比对结果 | 冲突处理策略 | 策略输出 |
0 | 拒绝更新 | A |
1 | 执行更新 | B |
… | … | … |
比对结果输入模块接收乐观锁比对结果,将比对结果与冲突策略定义模块中已定义的冲突处理策略进行对照并获取冲突处理策略输出,该输出参数通过冲突处理策略输出模块输入到冲突处理模块中。
四、冲突处理模块
冲突处理模块接收冲突处理策略池输出的处理策略,并按照处理策略对产生的冲突进行相应的处理。例如,对输出策略为A的情况,首先查询当前最新版本的数据,并将客户端希望保存的数据返回到客户端,并且采用友好的用户体验提醒方式引导数据在最新版本上更新,循环此过程,直到不发生数据更新冲突,完成数据更新、版本升级为止。
一种本发明的具体实施方式中,以在地产行业通过乐观锁机制实现主数据版本管理为例来说明本发明的实现。
在某地产主数据实施案例中,通过业务调研,识别出客户主数据信息,如下表所示:
在得到客户主数据表后,根据本发明的方法,主要实施步骤如图6所示
一、为客户主数据增加版本字段
本例中根据识别出的客户主数据创建客户主数据表M_CUSTOMER及主数据字段,并为主数据字段增加版本字段。
SQL代码如下:
为了方便说明及理解本发明的方法,下面将以CSTNAME(客户姓名)为例进行详细说明客户姓名主数据版本管理方法,其他主数据字段实施方法一致。
二、识别客户姓名主数据更新冲突
场景:两个客户端(A、B)发送了更新同一条主数据CSTNAME(客户姓名)字段的业务请求,更新CSTNAME字段内容,主数据初始版本CSTNAME_VERSION=1。
主数据更新过程中存在相邻版本顺序更新、基于前一版本同时更新两类情况:
1、A查到的CSTNAME_VERSION=1,更新的时候CSTNAME_VERSION=1,更新后CSTNAME_VERSION=2;在A更新之后,B查到CSTNAME_VERSION=2,更新的时候CSTNAME_VERSION=2,更新后CSTNAME_VERSION=3,B是在A的基础上更新的,则主数据版本更新正常不会产生冲突;
2、A、B同时查到CSTNAME_VERSION=1,此时A更新了CSTNAME字段,更新的时候CSTNAME_VERSION=1,更新后CSTNAME_VERSION=2;在A更新之后,B更新CSTNAME字段,此时B查到CSTNAME_VERSION=2,与一开始查到的CSTNAME_VERSION=1不符,返回结果为0,代码如下:
三、匹配客户姓名主数据冲突解决策略
首先可以设置客户姓名主数据冲突解决策略,如下表所示:
根据客户姓名主数据冲突解决策略,结合识别客户姓名主数据更新冲突的结果,程序输出冲突处理策略代码,如比对结果为0,则输出冲突处理策略代码A。
四、执行客户姓名主数据冲突处理策略
根据策略代码A,在冲突执行模块中首先拒绝用户的本次更新,并查询当前最新版本的数据,并且采用友好的用户体验提醒方式引导数据在最新版本上更新,循环此过程,直到不发生数据更新冲突,完成数据更新、版本升级为止。
采用了该大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法,解决了大数据背景下主数据在多节点部署或者多线程执行等高并发环境下更新冲突的问题,从而减轻了主数据版本维护的工作量,实现了主数据版本精细化管理,提高了主数据更新的并发性,为企业及政府部门主数据实施及应用奠定了良好的基础。同时本发明支持主数据冲突处理策略池功能,通过策略池,主数据版本管理可以实现针对不同的业务场景配置不同的策略,即主数据可根据其业务内涵采取不同的版本更新策略,从而提高了主数据版本管理的灵活性和适应性,满足多行业多领域的主数据管理需求。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (11)
1.一种大数据背景下基于乐观锁机制实现主数据版本管理的系统,其特征在于,所述的系统包括:
乐观锁初始化模块,用于实现数据表的初始化;
版本比对执行模块,该版本比对执行模块的输入端与所述的乐观锁初始化模块的输出端相连接,用于根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对;
冲突处理策略池,该冲突处理策略池的输入端与所述的版本比对执行模块的输出端相连接,用于将接收到的比对结果匹配相应的冲突处理策略;
冲突处理模块,该冲突处理模块的输入端与所述的冲突处理策略池的输出端相连接,用于将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理。
2.根据权利要求1所述的大数据背景下基于乐观锁机制实现主数据版本管理的系统,其特征在于,所述的数据表包括还未实施的主数据库表和已经实施的主数据库表。
3.根据权利要求1所述的大数据背景下基于乐观锁机制实现主数据版本管理的系统,其特征在于,所述的冲突处理策略池包括:
冲突处理策略定义单元,用于根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
比对结果输入单元,用于接收乐观锁比对结果,将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照;
冲突处理策略输出单元,用于将输出参数输出到冲突处理模块。
4.根据权利要求3所述的大数据背景下基于乐观锁机制实现主数据版本管理的系统,其特征在于,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
5.根据权利要求3所述的大数据背景下基于乐观锁机制实现主数据版本管理的系统,其特征在于,所述的不同的冲突处理策略包括根据实际的业务需要结合输出结果定义多种冲突处理策略。
6.一种利用权利要求1所述的系统在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的乐观锁初始化模块对数据表进行初始化;
(2)所述的版本比对执行模块根据乐观锁机制在执行主数据更新操作时对主数据版本进行比对,并将结果输出到冲突处理策略池;
(3)所述的冲突处理策略池将所述的比对结果匹配相应的冲突处理策略;
(4)所述的冲突处理模块将接收到的处理策略针对产生的主数据版本冲突按照匹配的策略进行处理。
7.根据权利要求6所述的在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的步骤(1)包括以下步骤:
(1.1)在需要使用乐观锁的主数据字段中分别新增一个数据版本字段;
(1.2)所述的数据版本字段在主数据修改时版本值增加1。
8.根据权利要求6所述的在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的步骤(2)包括以下步骤:
(2.1)所述的版本比对模块将读取到的版本字段值与当前数据库中的版本字段值进行比对;
(2.2)判断主数据版本是否一致,如果是,则主数据版本更新正常;否则,将版本比对结果输出到冲突处理策略池。
9.根据权利要求6所述的在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的步骤(3)包括以下步骤:
(3.1)所述的冲突处理策略定义单元根据主数据版本冲突的可能性情况定义不同的冲突处理策略;
(3.2)所述的比对结果输入单元接收所述的版本比对模块的比对结果;
(3.3)所述的比对结果输入单元将比对结果与所述的冲突策略定义单元中的冲突处理策略进行对照,并选取合适的冲突处理策略;
(3.4)所述的冲突处理策略输出单元将所述的冲突处理策略输出到冲突处理模块。
10.根据权利要求9所述的在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的主数据版本冲突的可能性情况包括主数据版本一致的情况和主数据版本不一致的情况。
11.根据权利要求6所述的在大数据背景下基于乐观锁机制实现主数据版本管理的方法,其特征在于,所述的步骤(4)包括以下步骤:
(4.1)根据所述的冲突处理策略进行处理;
(4.2)判断是否存在数据更新冲突,如果是,则继续步骤(1);否则,完成数据更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811231504.9A CN109446214B (zh) | 2018-10-22 | 2018-10-22 | 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811231504.9A CN109446214B (zh) | 2018-10-22 | 2018-10-22 | 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446214A true CN109446214A (zh) | 2019-03-08 |
CN109446214B CN109446214B (zh) | 2021-08-06 |
Family
ID=65548398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811231504.9A Active CN109446214B (zh) | 2018-10-22 | 2018-10-22 | 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446214B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716936A (zh) * | 2019-10-12 | 2020-01-21 | 浪潮云信息技术有限公司 | 一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统 |
CN112783616A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种并发冲突处理方法、装置及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376070A (zh) * | 2014-11-12 | 2015-02-25 | 中国建设银行股份有限公司 | 更新数据库记录的控制方法和装置 |
US20160224517A1 (en) * | 2015-01-29 | 2016-08-04 | Dropbox, Inc. | Modifying Native Documents with Formulas in a Preview |
CN106503019A (zh) * | 2015-09-08 | 2017-03-15 | 中兴通讯股份有限公司 | 一种获取数据库变更信息的方法和装置 |
CN106648679A (zh) * | 2016-12-29 | 2017-05-10 | 南威软件股份有限公司 | 一种结构化数据的版本管理方法 |
CN108334334A (zh) * | 2018-03-07 | 2018-07-27 | 政采云有限公司 | 一种管理依赖包版本的方法和系统 |
-
2018
- 2018-10-22 CN CN201811231504.9A patent/CN109446214B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376070A (zh) * | 2014-11-12 | 2015-02-25 | 中国建设银行股份有限公司 | 更新数据库记录的控制方法和装置 |
US20160224517A1 (en) * | 2015-01-29 | 2016-08-04 | Dropbox, Inc. | Modifying Native Documents with Formulas in a Preview |
CN106503019A (zh) * | 2015-09-08 | 2017-03-15 | 中兴通讯股份有限公司 | 一种获取数据库变更信息的方法和装置 |
CN106648679A (zh) * | 2016-12-29 | 2017-05-10 | 南威软件股份有限公司 | 一种结构化数据的版本管理方法 |
CN108334334A (zh) * | 2018-03-07 | 2018-07-27 | 政采云有限公司 | 一种管理依赖包版本的方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716936A (zh) * | 2019-10-12 | 2020-01-21 | 浪潮云信息技术有限公司 | 一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统 |
CN110716936B (zh) * | 2019-10-12 | 2022-04-05 | 浪潮云信息技术股份公司 | 一种基于SpringBoot+JPA的数据库乐观锁实现方法及系统 |
CN112783616A (zh) * | 2019-11-11 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种并发冲突处理方法、装置及计算机存储介质 |
CN112783616B (zh) * | 2019-11-11 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 一种并发冲突处理方法、装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109446214B (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7577637B2 (en) | Communication optimization for parallel execution of user-defined table functions | |
CN103377336B (zh) | 一种计算机系统用户权限的控制方法和系统 | |
US9558239B2 (en) | Relational query planning for non-relational data sources | |
EP2199904A1 (en) | Flexible multi-tenant support of metadata extensions | |
US20120124015A1 (en) | Method for database consolidation and database separation | |
CN108984639B (zh) | 服务器集群的数据处理方法和装置 | |
DE112010004652T5 (de) | Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen | |
CN104965735A (zh) | 用于生成升级sql脚本的装置 | |
CN109906447A (zh) | 管理请求数据库系统中不存在的索引键的事务 | |
Ciucci et al. | The structure of oppositions in rough set theory and formal concept analysis-Toward a new bridge between the two settings | |
CN109446214A (zh) | 大数据背景下基于乐观锁机制实现主数据版本管理的系统及方法 | |
US11893026B2 (en) | Advanced multiprovider optimization | |
CN106681820A (zh) | 基于消息组合的可扩展大数据计算方法 | |
US5752028A (en) | Object-oriented query mechanism | |
CN110489446A (zh) | 基于分布式数据库的查询方法及装置 | |
CN110019314A (zh) | 基于数据项分析的动态数据封装方法、客户端和服务端 | |
CN108804580A (zh) | 一种在联邦型rdf数据库中查询关键字的方法 | |
CN114817512B (zh) | 问答推理方法及装置 | |
CN115687378A (zh) | Ddl任务的并行处理方法、计算节点、及电子设备 | |
KR101736874B1 (ko) | 매개객체를 사용하여 잠수함 시스템 모델과 통합설계를 연계하는 방법 및 이의 연계 시스템 | |
Cabibbo | On keys, foreign keys and nullable attributes in relational mapping systems | |
CN113139022A (zh) | 一种基于混合规则的企业物流数据按需融合方法 | |
CN113010230B (zh) | 配置信息处理方法、装置、设备及存储介质 | |
Kensche et al. | Transformation of Models in (to) a Generic Metamodel. | |
Ma et al. | Conflicts and their resolutions in fuzzy relational multidatabases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |