1 .一种分布式数据库中针对序列的处理方法,其特征在于,包括:
S100,接收序列值获取请求;
S200,对序列对象元数据进行存储及缓存处理;
S300,对序列对象值进行存取及持久化处理;
S400,对序列对象值进行缓存、预分配及缓存加速处理;
S500,对本地序列进行缓存并发访问控制处理;以及全局保序控制处理,以及对序列对
象版本进行检查;
所述S500中对本地序列进行缓存并发访问控制处理包括:
S501,计算节点的序列对象缓存使用读写锁实现缓存对象的保护并提供并发访问控
制;当创建、删除序列对象时,获取写锁并对缓存内的条目进行增删;SQL语句parse阶段查
询、获取序列值、修改序列对象操作时只对序列对象缓存使用读锁;
S502,每个序列对象的缓存条目内部包含一个互斥锁,用于获取序列值、修改序列对象
的并发控制;通过二级加锁模式减少锁等待,提高并发处理能力;
所述S500中全局保序控制处理包括:
S503,全局保序作为序列的属性在创建序列时被指定;
S504,当指定全局属性后,预分配数值区间时被强制分配一个可用数值,该数值被消费
掉,新的序列请求到来时,重新进行一次预分配流程并强制读最新的当前值的操作;
所述S500中对序列对象版本进行检查包括:
S505,序列对象在创建时,为其分配一个初始版本号,默认值为0;
S506,每次修改该序列的属性成功后,对其版本号+1;当需要检查序列版本时,访问序
列对象时记录序列当前的版本;在下次访问时,检查当前序列对象版本号是否与上次访问
的版本号一致。
2.根据权利要求1所述的分布式数据库中针对序列的处理方法,其特征在于,所述S100
包括:
S101,序列值获取请求包含在SQL语句中,根据需返回的行数确定需要的序列值个数;
S102,当单并发获取单个序列值时,不考虑并发问题;
S103,当本地多并发获取序列值时,按请求的目标序列对象进行分组;如存在对某个序
列对象的多个并发请求,对该序列上的多个并发请求做互斥、排队等待处理;
S104,当分布式数据库系统的多个节点同时接收序列值获取请求时,各个节点生成的
序列值是全局唯一,当创建序列对象时设置了保序属性时,各个节点按照全局单调递增保
序。
3 .根据权利要求1所述的分布式数据库中针对序列的处理方法,其特征在于,所述S200
包括:
S201,每个计算节点包含一份记录序列对象的元数据定义和对应的元数据定义缓存;
序列对象在创建时通过分布式数据库内部的同步机制将序列对象的DDL定义同步到各个计
算节点;其它计算节点收到创建序列的消息后,以slave角色在内部执行一次序列对象创
建,并保存一份该对象的定义,同时加载到序列对象缓存;
S202,序列对象缓存用于语句的解析,参与判断语句中的序列值请求是否合法并提供
访问加速;请求访问数据库序列对象时,直接检查该对象是否存在于序列对象缓存中;
权 利 要 求 书
1/3 页
2
相关文档
评论