【技术实现步骤摘要】
一种基于cassandra数据库的分布式事务管理方法
[0001]本专利技术涉及数据库系统
,尤其涉及了一种基于cassandra数据库的分布式事务管理方法。
技术介绍
[0002]当前,业界在使用mysql等关系数据库时,受mysql存储和处理能力的局限,通常使用分库分表的方法,将一张表切分成多个子表,分散存储到多个mysql数据库实例中;当应用程序需要数据时,不得不从多个mysql数据库捞取数据,再计算出最终的结果。这种分库分表的方法,给应用程序的开发带来很大的挑战。传统关系数据的存储和处理能力很有限,并且难以横向扩展。
[0003]Cassandra是一种NOSQL数据库管理系统,它以集群方式运行在多个主机上,可以跨越机架/机房;提供海量的存储;每一数据项有多个副本分散到多台主机上,提供高可用能力;提供可配置的的数据一致性,提供强一致性或最终一致性。Cassandra不能提供传统关系数据库的SQL能力。
[0004]新兴的NOSQL数据库天然具有海量存储能力,易于横向扩展伸缩,但不能提供关系数据库 ...
【技术保护点】
【技术特征摘要】
1.一种基于cassandra数据库的分布式事务管理方法,其特征在于,包括如下步骤:建立数据模型,在一个或多个关系数据库中建立第一关系表与等数量的cassandra数据库的第二关系表对应;在第一关系表和第二关系表中,增加隐藏列包括唯一识别ID记为rowid、版本号记为version和对该行更新版本记录操作次数记为rowver,在关系数据库内创建索引,索引键为rowid,对应的内容为rowver;在关系数据库进行插入操作每一行数据后,通过全局事务管理器对第二关系表中插入一行数据,其中包括rowval字段存储关系数据库中的一整行数据;关系数据库进行更新、删除操作每一行数据后,生成新的行版本号并对旧版本进行加锁,成功锁定旧版本的事务,将新版本插入cassandra;写入cassandra后,通知其它所有关系数据库去读取并应用新的事务,通过索引查询数据,从而达到所有关系数据库中的数据和cassandra中数据保持一致。2.根据权利要求1所述的一种基于cassandra数据库的分布式事务管理方法,其特征在于:插入操作包括:当关系数据库为插入数据操作时,生成全局唯一的rowid,同时多个关系数据库生成的同一个第一关系表的rowid。3.根据权利要求2所述的一种基于cassandra数据库的分布式事务管理方法,其特征在于:当关系数据库完成插入数据操作后,再通过全局事务管理器提交到cassandra,在cassandra中插入数据时使用INSERT
‑
IF语句,插入到rowval,rowval内通过locked和lockowner字段记录当前版本是否加锁,新插入的行的locked字段值为0和lockowner字段值为null。4.根据权利要求3所述的一种基于cassandra数据库的分布式事务管理方法,其特征在于:更新操作包括:对rowval中是否加锁进行判断,如未加锁则表示版本未更新,则rowver列的值加1,并通过全局事务管理器提交到cassandra,cassandra中用UPDATE
‑
IF语句将旧版本的locked字段改成1,lockonwer改成当前事务id;若成功,则可以在cassnadra中插入新版本,并修改locked字段值为0,lockonwer字段值为null;否则,则判断当前版本已经被更新过,本次更新失败,回滚事务。5.根据权利要求3所述的一种基于cassandra数据库的分布式事务管理方法,其特征在于:删除操作包括:关系数据库删除本地数据...
【专利技术属性】
技术研发人员:李建辉,尚世友,张文件,陈栋,罗春,李春,魏兴华,吴炎,臧冰凌,
申请(专利权)人:杭州沃趣科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。