System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于键值存储系统的数据管理方法及其相关设备技术方案_技高网

一种基于键值存储系统的数据管理方法及其相关设备技术方案

技术编号:40303772 阅读:4 留言:0更新日期:2024-02-07 20:49
本申请公开一种基于键值存储系统的数据管理方法及基于文件系统的元数据管理方法,可充分利用键值存储系统所在的服务器的CPU资源以及内存资源,且可有效地发挥键值存储系统的并发能力。本申请的键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,该方法包括:键值存储系统可获取用户的事务中所需读取的多个键,并从多个键所在的存储实例读取多个键的值。系统还可获取事务中所需写入的多个键的新值,若这多个键位于不同的存储实例,系统可先完成前台操作,以提前通知用户多个键的新值已写入成功,然后在后台操作中,向多个键所在的若干个存储实例并发写入多个键的新值,从而完成用户的事务。

【技术实现步骤摘要】

本申请实施例涉及计算机,尤其涉及一种基于键值存储系统的数据管理方法及其相关设备


技术介绍

1、键值(key-value,kv)存储系统凭借着其具备高性能高扩展、可伸缩性强以及接口简单易用等等优点,被广泛应用在计算机中,键值存储系统可通过键值对的形式来统筹管理用户数据,例如,用户的文件的数据,用户的文件的元数据等等。

2、目前,当用户存在添加、读取、写入和删除键值对的需求时,可调用键值存储系统来实现这些针对键值对的操作。具体地,键值存储系统在用户的调用下,可创建用户的事务,该事务可包含用户对多个键值对的操作。由于该系统包含存储有键值对的数据库实例,故该系统可在该实例中,完成对这多个键值对的操作,从而完成该事务。

3、然而,该系统仅提供了单个实例,无法充分利用该系统所在服务器的中央处理器(entral processing unit,cpu)资源以及内存资源,且限制了该系统的并发能力。


技术实现思路

1、本申请实施例提供了一种基于键值存储系统的数据管理方法及其相关设备,可充分利用键值存储系统所在的服务器的cpu资源以及内存资源,且可有效地发挥键值存储系统的并发能力。

2、本申请实施例的第一方面提供了一种基于键值存储系统的数据管理方法,该键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,该方法包括:

3、某个用户可调用键值存储系统,以使得键值存储系统可为该用户创建专属的事务,并为该用户的事务分配唯一的时间戳。键值存储系统为该用户创建该用户的事务后,该用户还可调用键值存储系统,以使得键值存储系统获取该用户在其事务中所需读取的多个键。

4、确定这多个键后,键值存储系统可先在缓存中,对这多个键添加该用户的事务的前台锁。对这多个键添加前台锁后,键值存储系统可检测缓存是否存储有这多个键的值,则存在以下两种情况:

5、若缓存存储有这多个键的值,键值存储系统可成功从缓存中读取到这多个键的值,并将这多个键的值返回给用户。

6、若缓存未存储有这多个键的值,键值存储系统则无法从缓存中读取到这多个键的值,故键值存储系统可先在多个存储实例中,确定这多个键所在的一个或若干个存储实例。接着,键值存储系统从这些存储实例的用户数据表中,读取这多个键的值。然后,键值存储系统可将这多个键的值返回给用户,并向缓存写入这多个键的值。

7、向用户返回这多个键的值后,键值存储系统可对这多个键解除用户的事务的前台锁。至此,该用户已成功读取到这多个键的值,故该用户可调用键值存储系统,以使得键值存储系统结束该用户的事务。

8、从上述方法可以看出:键值存储系统在创建用户的事务后,可获取事务中所需读取的多个键,并对多个键添加事务的前台锁。若缓存中存储有多个键的值,键值存储系统则从缓存中读取多个键的值,并向用户提供多个键的值,若缓存中未存储有多个键的值,则从多个存储实例中确定多个键所在的存储实例,从多个键所在的存储实例的用户数据表中,读取多个键的值,向用户提供多个键的值,并向缓存写入多个键的值。然后,键值存储系统可对多个键解除前台锁,并结束用户的事务。基于前述过程可知,键值存储系统包含多个存储实例,可充分利用键值存储系统所在的服务器的cpu资源以及内存资源,且当用户需要读取多个键的值时,键值存储系统在多个键所在的存储实例中,既可逐个读取这多个键的值,也可以并发读取这多个键的值,以返回给用户使用,这样可以有效地发挥键值存储系统的并发能力。

9、在一种可能实现的方式中,对多个键解除前台锁之前,该方法还包括:获取事务中所需写入的多个键的新值,多个键的新值由用户对多个键的值进行修改得到;若多个键存储于同一个存储实例中,则对多个键添加事务的后台锁,将多个键的新值写入存储实例的用户数据表以及缓存,对多个键解除事务的后台锁;对多个键解除前台锁之后,该方法还包括:通知用户已成功写入多个键的新值。前述实现方式中,用户得到这多个键的值后,可对这多个键的值进行修改,从而得到这多个键的新值。那么,该用户还可调用键值存储系统,以使得键值存储系统获取该用户在其事务中所需写入的这多个键的新值。若这多个键存储于同一个存储实例中,键值存储系统可对多个键添加该用户的事务的后台锁。接着,键值存储系统可将多个键的新值写入该存储实例的用户数据表以及缓存中。然后,键值存储系统可对多个键解除该用户的事务的后台锁。随后,键值存储系统可对多个键解除该用户的事务的前台锁,再通知该用户已成功写入多个键的新值。至此,该用户已成功读取到这多个键的值并写入这多个键的新值,故该用户可调用键值存储系统,以使得键值存储系统结束该用户的事务。

10、在一种可能实现的方式中,每个存储实例还包含事务状态表,对多个键解除前台锁之前,该方法还包括:获取事务中所需写入的多个键的新值,多个键的新值由用户对多个键的值进行修改得到;若多个键存储于若干个存储实例中,则在多个键中选择目标键,并将多个键的新值写入目标键所在的存储实例的事务状态表以及缓存;对多个键解除前台锁之后,该方法还包括:通知用户已成功写入多个键的新值;对多个键添加事务的后台锁,将多个键的新值并发写入若干个存储实例的用户数据表,对多个键解除事务的后台锁,并在目标键所在的存储实例的事务状态表中,删除多个键的新值。前述实现方式中,用户得到这多个键的值后,可对这多个键的值进行修改,从而得到这多个键的新值。那么,该用户还可调用键值存储系统,以使得键值存储系统获取该用户在其事务中所需写入的这多个键的新值。若这多个键存储于若干个存储实例中,键值存储系统可先在多个键中选择目标键。接着,键值存储系统将这多个键的新值写入目标键所在的存储实例的事务状态表以及缓存中。然后,键值存储系统可对多个键解除前台锁,再通知该用户已成功写入多个键的新值,至此前台操作结束。随后,键值存储系统可对多个键添加事务的后台锁。紧接着,键值存储系统可将多个键的新值并发写入这若干个存储实例的用户数据表中。之后,键值存储系统可对多个键解除事务的后台锁。最后,在目标键所在的存储实例的事务状态表中,删除多个键的新值,至此,后台操作结束。至此,该用户已成功读取到这多个键的值并写入这多个键的新值,故该用户可调用键值存储系统,以使得键值存储系统结束该用户的事务。

11、在一种可能实现的方式中,从多个存储实例中确定多个键所在的存储实例包括:确定多个键对应的存储实例编号,并基于多个键对应的存储实例编号,确定多个键所在的存储实例。前述实现方式中,键值存储系统为多个存储实例中的每个存储实例设置有唯一的存储实例编号,且维护有存储实例编号与键之间的数学关系。那么,基于该数学关系,键值存储系统可确定多个键对应的存储实例编号,并基于多个键对应的存储实例编号,确定多个键所在的存储实例。

12、在一种可能实现的方式中,键值存储系统设置于文件系统中,在多个键中,每个键包含文件或目录的元数据,元数据包含文件或目录的索引编号,确定多个键对应的存储实例编号包括:将多个键包含的索引编号除以多个存储本文档来自技高网...

【技术保护点】

1.一种基于键值存储系统的数据管理方法,其特征在于,所述键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述多个键解除所述前台锁之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,每个存储实例还包含事务状态表,所述对所述多个键解除所述前台锁之前,所述方法还包括:

4.根据权利要求1至3任意一项所述的方法,其特征在于,所述从所述多个存储实例中确定所述多个键所在的存储实例包括:

5.根据权利要求4所述的方法,其特征在于,所述键值存储系统设置于文件系统中,在所述多个键中,每个键包含文件或目录的元数据,所述元数据包含文件或目录的索引编号,所述确定所述多个键对应的存储实例编号包括:

6.根据权利要求2或3所述的方法,其特征在于,对所述多个键添加或解除所述前台锁的操作在所述缓存中实现,且对所述多个键添加或解除所述后台锁的操作在所述缓存中实现。

7.根据权利要求1至6任意一项所述的方法,其特征在于,所述缓存还存储有以下至少一项:与所述多个键相关联的时间戳,与所述事务相关联的时间戳以及所述事务的状态。

8.一种基于键值存储系统的数据管理装置,其特征在于,所述键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,所述装置包括:

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:

10.根据权利要求8所述的装置,其特征在于,每个存储实例还包含事务状态表,所述装置还包括:

11.根据权利要求8至10任意一项所述的装置,其特征在于,所述第二读取模块,用于确定所述多个键对应的存储实例编号,并基于所述多个键对应的存储实例编号,确定所述多个键所在的存储实例。

12.根据权利要求11所述的装置,其特征在于,所述键值存储系统设置于文件系统中,在所述多个键中,每个键包含文件或目录的元数据,所述元数据包含文件或目录的索引编号,所述第二读取模块,用于将所述多个键包含的索引编号除以所述多个存储实例的数量所得到的余数,作为所述多个键对应的存储实例编号。

13.根据权利要求9或10所述的装置,其特征在于,对所述多个键添加或解除所述前台锁的操作在所述缓存中实现,且对所述多个键添加或解除所述后台锁的操作在所述缓存中实现。

14.根据权利要求8至13任意一项所述的装置,其特征在于,所述缓存还存储有以下至少一项:与所述多个键相关联的时间戳,与所述事务相关联的时间戳以及所述事务的状态。

15.一种基于键值存储系统的数据管理装置,其特征在于,所述装置包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述装置执行如权利要求1至7任意一项所述的方法。

16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实施权利要求1至7任一所述的方法。

17.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施权利要求1至7任意一项所述的方法。

...

【技术特征摘要】

1.一种基于键值存储系统的数据管理方法,其特征在于,所述键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述多个键解除所述前台锁之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,每个存储实例还包含事务状态表,所述对所述多个键解除所述前台锁之前,所述方法还包括:

4.根据权利要求1至3任意一项所述的方法,其特征在于,所述从所述多个存储实例中确定所述多个键所在的存储实例包括:

5.根据权利要求4所述的方法,其特征在于,所述键值存储系统设置于文件系统中,在所述多个键中,每个键包含文件或目录的元数据,所述元数据包含文件或目录的索引编号,所述确定所述多个键对应的存储实例编号包括:

6.根据权利要求2或3所述的方法,其特征在于,对所述多个键添加或解除所述前台锁的操作在所述缓存中实现,且对所述多个键添加或解除所述后台锁的操作在所述缓存中实现。

7.根据权利要求1至6任意一项所述的方法,其特征在于,所述缓存还存储有以下至少一项:与所述多个键相关联的时间戳,与所述事务相关联的时间戳以及所述事务的状态。

8.一种基于键值存储系统的数据管理装置,其特征在于,所述键值存储系统包含缓存以及多个存储实例,每个存储实例的用户数据表存储有键值对,所述装置包括:

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:

10.根据权利要求8所述的装置,其特征在于,每个存储实例还包含事务状态表,所述装置还包括...

【专利技术属性】
技术研发人员:姚婷朱挺炜苏晓航王道辉
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

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

1