一种云原生分布式多租户数据库实现方法及系统技术方案

技术编号:37262061 阅读:32 留言:0更新日期:2023-04-20 23:35
本发明专利技术涉及数据库技术领域,具体涉及一种云原生分布式多租户数据库实现方法及系统。该方法包括基于集中式管理元数据进行统一元数据管理,将元数据管理从单机数据库系统中剥离出来并提取为公共服务,作为一个单独的服务为分布式集群提供元数据服务,本发明专利技术可以解决分布式场景下跨物理服务器的数据读写一致性问题,元数据管理内部采用Raft一致性协议来解决数据的可靠性和一致性问题;结合数据库的RLS机制实现元数据的隔离;通过并置库的方式,将租户的数据库的所有数据集中在一组分片上进行管理,不同组合的数据分布在不同的分片上,实现数据隔离存储。实现数据隔离存储。实现数据隔离存储。

【技术实现步骤摘要】
一种云原生分布式多租户数据库实现方法及系统


[0001]本专利技术涉及数据库
,尤其涉及一种云原生分布式多租户数据库实现方法及系统。

技术介绍

[0002]云原生数据库是近年来数据库领域最火热的技术方向,云原生数据库通过资源解耦和资源池化等技术,具备了高弹性、高可用性、可扩展性等特点,支撑了不同业务领域的应用对数据管理高性能、高并发和按需使用的需求。与此同时,云原生数据库对于多租户的需求也愈发迫切。
[0003]针对传统单机数据库,需要提供一种云原生分布式多租户管理的方法,以解决分布式元数据一致性问题,确保元数据在任意节点上的读写一致性;多租户元数据隔离,确保租户数据可见性、可访问性隔离;以及多租户数据负载均衡调度及物理隔离。

技术实现思路

[0004]为解决分布式场景下跨物理服务器的数据读写一致性问题,以及元数据管理内部采用Raft一致性协议来解决数据的可靠性和一致性问题,本专利技术提供了一种云原生分布式多租户数据库实现方法及系统,将元数据管理从单机数据库系统中剥离出来,作为一个单独的服务为分布式集群提供元数据服本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种云原生分布式多租户数据库实现方法,其特征在于,所述云原生分布式多租户数据库实现方法包括以下步骤:基于集中式管理元数据进行统一元数据管理,将元数据管理从单机数据库系统中进行剥离,并提取为公共服务,以为分布式集群提供元数据服务;在数据库进程中构建元数据缓存及缓存失效机制,缓存有效时直接读取缓存中的数据,缓存失效时,从元数据服务中获取数据并更新本地元数据缓存;将元数据进行分片管理,并引入Raft一致性协议,每个分片内部通过Raft Group管理一组数据副本;基于行级安全策略实现数据库元数据的多租户隔离机制,允许当前租户查询元数据表中的对应记录;基于物理隔离方式对用户业务数据进行隔离,并对租户创建的每一个数据库在存储层分配一个并置数据库,并置数据库将租户的所有表集中在一个或一组分片上。2.如权利要求1所述的云原生分布式多租户数据库实现方法,其特征在于,所述基于集中式管理元数据进行统一元数据管理,将元数据管理从单机数据库系统中进行剥离,并提取为公共服务,包括:基于单机数据库进行分布式改造,使每个节点运行一个数据库进程,所有节点显示的元数据信息一致,元数据服务提供事务级别的ACID语义保障。3.如权利要求1所述的云原生分布式多租户数据库实现方法,其特征在于,缓存失效机制进行元数据缓存失效的更新方法,包括以下步骤:S1、系统启动时从元数据服务加载元数据信息到本地缓存;并加载元数据服务器的当前版本号v1,该版本号由元数据服务维护,每次元数据发生变化就回增加该版本号;S2、当数据库实例接收到外部查询指令后,读取元数据服务最新的版本号信息v2;用最新版本号v2与上次缓存的版本号进行比较,如果不相等,则执行S21,否则执行S3;S21、若版本号不同,表示元数据发生了变化,刷新本地缓存;从元数据服务加载最新的元数据信息到本地缓存后,更新v1的值为最新的元数据服务的版本号;S3、处理用户下发的查询指令;根据指令执行具体的数据处理操作;S4、返回S2,处理用户的下一跳指令。4.如权利要求3所述的云原生分布式多租户数据库实现方法,其特征在于,元数据进行分片管理时,包括元数据高可用机制,且元数据分布方式由若干元数据节点分别对应一个数据的分片;所述元数据高可用机制实现时包括以下步骤:S101、元数据按照哈希规则被分配到不同的分片上进行存储;S102、每个分片在系统中创建三个副本,每个副本存储完全一样的数据,副本被调度到不同的节点上进行存储,分片的三个副本构成一个Raft group;S103、任意时刻只有一个副本是raft group中的leader节点,所述leader节点用于接受来自客户端的读写请求,当数据发生改动时,leader节点将变更的数据通过raft协议同步到raft group中的其他节点,当至少超过一半的节点已经确认更改生效后,leader告知客户端数据变更成功;S104、当leader节点发生故障时,raft group中的剩余节点重新选举出一个leader节
点对外提供服务;S105、当follower发生故障时,所述fol lower的数据被复制到系统中合适的节点上,系统始终保持三个副本。5.如权利要求4所述的云原生分布式多租户数据库实现方法,其特征在于,当前租户查询元数据表中的对应记录时,数据库处理租户查询请求的方法包括:S201、租户下发查询请求,基于租户下发的SQL请求在系统表中查询所有的数据库信息;S202、通过词法分析器解析目标表;S203、读取目标表的行级安全策略,其中,数据库内核查询行级安全策略表,获取系统表的策略信息;S204、查询到相关的策略信息后,内核引擎重写用户下发的查询语句;S205、使用重写后的查询语句进行数据查询;S206、根据数据查询后的结果返回租户关联的数据。6.如权利要...

【专利技术属性】
技术研发人员:张文平薛蛟龙田伟阳立堂
申请(专利权)人:敏博科技武汉有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1