【技术实现步骤摘要】
【国外来华专利技术】分布式存储系统的数据更新方法及服务器
本专利技术涉及数据处理领域,特别是涉及处理索引节点的方法及服务器。
技术介绍
随着电子通信技术的发展,电子数据的存储量不断增大,用户对于数据存储系统的容量要求也不断提高。作为具有具备高可用性、高可扩展性以及大容量特点的分布式键值对Key-Value存储系统受到广大用户的欢迎。分布式键值对Key-Value存储系统是以键值对Key-Value作为数据的组织方式,按照一定的哈希算法,将这些Key-Value分配在海量的节点上的存储系统。对于分布式Key-Value存储系统中的节点数据的处理,可以通过基于分布式Key-Value存储系统之上的分布式简单数据库系统SimpleDB实施查询及增加、修改、删除等操作。在对节点数据实施查询及增加、修改、删除等操作过程中,需要通过分布式索引来查找分布式Key-Value存储系统中的节点数据,该分布式索引是由大量的Key-Value构成,通常呈树状结构,存在一个根节点,对应于分布式索引中的节点上的数据存储在分布式Key-Value系统中。当通过分布式索引进行处理节点数据时,存在同时进行写和读请求的情况,这将导致读取的数据可能是脏数据,而非所要读取的修改前或修改后的数据。为了避免读取到脏数据,目前主要是采用分布式锁控制并发的方法进行读和写操作。具体的,当实施读请求时,需要获取一个分布式的共享锁,对目标节点加共享锁,使得在读操作时,对该目标节点的写请求被阻塞;当实施写请求时,需要获取一个分布式的排他锁,对目标节点加排他锁,使得在写操作时,对该目标节点的读请求被阻塞。因此,采用分布式锁 ...
【技术保护点】
一种分布式键值对Key?Value存储系统的数据更新方法,其特征在于,所述分布式Key?Value存储系统中的存储层包括第一存储树,所述第一存储树包括第一根节点,所述方法包括:获取第一数据更新请求,其中,所述第一数据更新请求包括需要在所述第一存储树中增加第一节点的键值和内容;复制所述第一根节点到所述分布式Key?Value存储系统的缓冲层中;确定所述第一节点在所述第一存储树中的父节点,复制所述父节点到所述分布式Key?Value存储系统的缓冲层中,为所述父节点分配新键值,在所述父节点的内容中增加对所述第一节点的指向,其中,所述父节点的新键值与所述父节点的原始键值不同;依次复制所述父节点到所述第一根节点的分支上的其它上级节点到所述分布式Key?Value存储系统的缓冲层中,直到到达所述根节点,并为每个上级节点分配新键值,以及在所述每个上级节点的内容中分别增加对分配新键值的下一级节点的指向,其中,所述每个上级节点的新键值与其对应的原始键值不同;在所述第一根节点的内容中增加对所述上级节点的第一级节点的指向,其中,所述第一级节点为所述父节点到所述第一根节点的分支上距离所述根节点最近的节点;将所 ...
【技术特征摘要】
【国外来华专利技术】1.一种分布式键值对Key-Value存储系统的数据更新方法,其特征在于,所述分布式Key-Value存储系统中的存储层包括第一存储树,所述第一存储树包括第一根节点,所述方法包括: 获取第一数据更新请求,其中,所述第一数据更新请求包括需要在所述第一存储树中增加第一节点的键值和内容; 复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中; 确定所述第一节点在所述第一存储树中的父节点,复制所述父节点到所述分布式Key-Value存储系统的缓冲层中,为所述父节点分配新键值,在所述父节点的内容中增加对所述第一节点的指向,其中,所述父节点的新键值与所述父节点的原始键值不同; 依次复制所述父节点到所述第一根节点的分支上的其它上级节点到所述分布式Key-Value存储系统的缓冲层中,直到到达所述根节点,并为每个上级节点分配新键值,以及在所述每个上级节点的内容中分别增加对分配新键值的下一级节点的指向,其中,所述每个上级节点的新键值与其对应的原始键值不同; 在所述第一根节点的内容中增加对所述上级节点的第一级节点的指向,其中,所述第一级节点为所述父节点到所述第一根节点的分支上距离所述根节点最近的节点; 将所述第一节点、所述第一节点的父节点以及所述父节点的上级节点存储到所述分布式Key-Value存储系统中的存储层中; 将所述第一根节点存储到所述分布式Key-Value存储系统中的存储层中的所述第一存储树中。2.如权利要求1所述的方法,其特征在于,所述父节点的新键值和每个所述上级节点的新键值都是所述第一存储树中的唯一键值。3.如权利要求2所述的方法,其特征在于,在复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中之后,还包括: 为复制的第一根节点分配新的版本号; 贝U,所述父节点的新的键值为将所述父节点的原始键值中的版本号更换为所述新的版本号后得到的键值,所述每个上级节点的新的键值为将所述每个上级节点对应的原始键值中的版本号更换为所述新的版本号后得到的键值。4.一种分布式键值对Key-Value存储系统的数据更新方法,其特征在于,所述分布式Key-Value存储系统中的存储层包括第一存储树,所述第一存储树包括第一根节点,所述方法包括: 获取第二数据更新请求,其中,所述第二数据更新请求包括需要更新的第二节点的新内容; 复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中; 复制所述第二节点的原始键值和原始内容到所述分布式Key-Value存储系统的缓冲层中,为所述第二节点分配新的键值,并将所述第二节点的原始内容更新为所述第二节点的新内容,其中,所述第二节点的新键值与所述第二节点的原始键值不同; 确定所述第二节点的父节点,复制所述父节点到所述分布式Key-Value存储系统的缓冲层中,为所述父节点分配新键值,将所述父节点的内容中对具有原始键值的第二节点的指向修改为具有新键值的第二节点的指向,其中,所述父节点的新键值与所述父节点的原始键值不同; 依次复制所述父节点到所述第一根节点的分支上的其它上级节点到所述分布式Key-Value存储系统的缓冲层中,直到到达所述根节点,并为每个上级节点分配新键值,以及在所述每个上级节点的内容中分别增加对分配新键值的下一级节点的指向,其中,所述每个上级节点的新键值与其对应的原始键值不同; 在所述第一根节点的内容中增加对所述上级节点的第一级节点的指向,其中所述第一级节点为所述父节点到所述第一根节点的分支上距离所述根节点最近的节点; 将所述第二节点、所述第二节点的父节点以及所述父节点的上级节点存储到所述分布式Key-Value存储系统中的存储层中; 将所述第一根节点存储到所述分布式Key-Value存储系统中的存储层中的所述第一存储树中。5.如权利要求4所述的方法,其特征在于,所述第二节点的新键值、父节点的新键值和每个所述上级节点的新键值都是所述第一存储树中的唯一键值。6.如权利要求5所述的方法,其特征在于,在复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中之后,还包括: 为所述复制的第一根节点分配新的版本号; 贝U,所述第二节点的新键值为将所述第二节点的原始键值中的版本号更换为所述新的版本号后得到的键值,所述父节点的新的键值为将所述父节点的原始键值中的版本号更换为所述新的版本号后得到的键值,所述每个上级节点的新的键值为将所述每个上级节点对应的原始键值中的版本号更换为所述新的版本号后得到的键值。7.一种分布式键值对Key -Value存储系统的数据更新方法,其特征在于,所述分布式Key-Value存储系统中的存储层包括第一存储树,所述第一存储树包括第一根节点,所述方法包括: 获取第三数据更新请求,其中,所述第三数据更新请求包括需要删除的第三节点; 复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中; 确定所述第三节点的父节点,复制所述父节点到所述分布式Key-Value存储系统的缓冲层中,为所述父节点分配新键值,删除所述父节点的内容中对所述第三节点的指向,其中,所述父节点的新键值与所述父节点的原始键值不同; 依次复制所述父节点到所述第一根节点的分支上的其它上级节点到所述分布式Key-Value存储系统的缓冲层中,直到到达所述根节点,并为每个上级节点分配新键值,以及在所述每个上级节点的内容中分别增加对分配新键值的下一级节点的指向,其中,所述每个上级节点的新键值与其对应的原始键值不同; 在所述第一根节点的内容中增加对所述上级节点的第一级节点的指向,其中所述第一级节点为所述父节点到所述第一根节点的分支上距离所述根节点最近的节点; 将所述第三节点的父节点以及所述父节点的上级节点存储到所述分布式Key-Value存储系统中的存储层中; 将所述第一根节点存储到所述分布式Key-Value存储系统中的存储层中的所述第一存储树中。8.如权利要求7所述的方法,其特征在于,所述第三节点的父节点的新键值和每个所述上级节点的新键值都是所述第一存储树中的唯一键值。9.如权利要求8所述的方法,其特征在于,在复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中之后,还包括: 为所述复制的第一根节点分配新的版本号; 贝U,所述父节点的新的键值为将所述父节点的原始键值中的版本号更换为所述新的版本号后得到的键值,所述每个上级节点的新的键值为将所述每个上级节点对应的原始键值中的版本号更换为所述新的版本号后得到的键值。10.一种读索引节点的方法,其特征在于,包括: 读取索引中的根节点; 获取与当前读取的根节点的版本号对应的共享锁; 在获取所述共享锁之后,重新读取所述根节点; 验证所述共享锁对应的版本号与重新读取后的根节点的版本号是否一致,若所述共享锁对应的版本号与重新读取后的根节点的版本号一致,则对所述重新读取后的根节点加所述共孚锁; 在对所述重新读取后的根节点加所述共享锁之后,执行从键值对Key-Value系统的存储层中读取所述根节点下的目标节点的操作。11.根据权利要求10所述的读索引节点的方法,其特征在于,还包括:若所述共享锁对应的版本号与重新读取后的根节点的版本号不一致,则将所述重新读取后的根节点的版本号作为当前读取的根节点的版本号,返回所述获取与当前读取的根节点的版本号相对应的共享锁的步骤。12.一种服务器,其特征在于,包括: 获取单元,用于获取第一数据更新请求,其中,所述第一数据更新请求包括需要在分布式Key-Value存储系统中的存储层中的第一存储树中增加第一节点的键值和内容,所述第一存储树包括第一根节点; 处理单元,用于复制所述第一根节点到所述分布式Key-Value存储系统的缓冲层中;还用于确定所述第一节点的父节点,复制所述父节点到所述分布式Key-Value存储系...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。