The invention provides a method for retrieving common prefixes of keys in key-value databases, including steps: searching the first record in key-value databases containing or greater than the prefix provided by users and recording it as current record; the keys of current record are composed of prefixes provided by users, separators provided by users and remaining parts, if the remaining part contains user-provided prefixes. Separator, then the position of the first user-provided separator in the remaining part to the beginning of the current record is recorded as the first result, which is added to the common prefix of the key. Find the next character of the last character in the first result, replace the last character of the first result with the found character, and get the second result. Find the first character in the key value database. A prefix contains or greater than the record of the second result, and the key to get the new record and the new record. The invention does not need to traverse all key value pairs, and effectively shortens the time of acquiring common prefixes in tens of millions of key value pair level scenarios.
【技术实现步骤摘要】
一种检索键值数据库中键的共同前缀的方法、设备、介质
本专利技术涉及键值数据库
,尤其涉及一种检索键值数据库中键的共同前缀的方法、设备、介质。
技术介绍
键值数据库是一种使用键值对存储检索和管理数据存储的模型。由于其接口简单,性能高而被广泛应用于
键值数据库的另一个特点是所有的键是有序排列的,以便使用高效的搜索算法检索键值。对象存储是一种根据对象名称获得对象数据的存储产品,被各大云厂商所采用。键值数据库被用来实现对象元数据的存储,以对象名称为键,以对象元数据为值。对象元数据是指对象的创建时间,对象的读写权限,对象数据的存储路径等信息。对象存储可以根据使用者提供的分隔符和前缀获得该前缀下的所有对象,如果前缀之后的部分还存在分隔符,就需要将这些对象聚合成一个共同前缀发送给用户。由于键值数据库接口简单,无法直接根据分隔符计算出所有的共同前缀。现有技术中,采用遍历所有对象,记录出现的所有共同前缀的方法,但键值数据库存储的键值非常多,尤其在云环境中,一个共同前缀下对象可能会有上万个,而且共同前缀的数目非常大,现有算法以一种O(n)的实现方式,随着键值对的增多,检索效率明显下降。
技术实现思路
为了克服现有技术的不足,本专利技术的目的之一在于提供一种检索键值数据库中键的共同前缀的方法,解决了现有技术采用遍历所有对象,记录出现的所有共同前缀的方法造成检索效率低的问题。本专利技术提供一种检索键值数据库中键的共同前缀的方法,包括以下步骤:查找第一条记录,根据用户提供的前缀查找键值数据库中第一条包含或者大于所述用户提供的前缀的记录,记为当前记录;查找共同前缀,若当前记 ...
【技术保护点】
1.一种检索键值数据库中键的共同前缀的方法,其特征在于包括以下步骤:查找第一条记录,根据用户提供的前缀查找键值数据库中第一条包含或者大于所述用户提供的前缀的记录,记为当前记录;查找共同前缀,若当前记录的键包含所述用户提供的前缀,则所述当前记录的键由用户提供的前缀、用户提供的分隔符、剩余部分组成,若所述剩余部分中包含所述用户提供的分隔符,则将所述剩余部分中第一个所述用户提供的分隔符的位置至所述当前记录的开始位置的字符记为第一结果,并将所述第一结果添加至键的共同前缀中;查找新记录和键,查找所述第一结果中最后一个字符的下一个字符,并用查找到的字符替换所述第一结果的最后一个字符,得到第二结果,查找键值数据库中第一条前缀包含或者大于所述第二结果的记录,得到新记录和所述新记录的键,将所述新记录更新为当前记录,并跳转至所述查找共同前缀步骤。
【技术特征摘要】
1.一种检索键值数据库中键的共同前缀的方法,其特征在于包括以下步骤:查找第一条记录,根据用户提供的前缀查找键值数据库中第一条包含或者大于所述用户提供的前缀的记录,记为当前记录;查找共同前缀,若当前记录的键包含所述用户提供的前缀,则所述当前记录的键由用户提供的前缀、用户提供的分隔符、剩余部分组成,若所述剩余部分中包含所述用户提供的分隔符,则将所述剩余部分中第一个所述用户提供的分隔符的位置至所述当前记录的开始位置的字符记为第一结果,并将所述第一结果添加至键的共同前缀中;查找新记录和键,查找所述第一结果中最后一个字符的下一个字符,并用查找到的字符替换所述第一结果的最后一个字符,得到第二结果,查找键值数据库中第一条前缀包含或者大于所述第二结果的记录,得到新记录和所述新记录的键,将所述新记录更新为当前记录,并跳转至所述查找共同前缀步骤。2.如权利要求1所述的一种检索键值数据库中键的共同前缀的方法,其特征在于:在所述查找第一条记录步骤和所述查找共同前缀步骤之间还包括判断当前记录的键步骤,若当前记录的键不包含所述用户提供的前缀,则退出并返回键的共同前缀和所述用户提供的前缀下的对象。3.如权利要求2所述的一种检索键值数据...
【专利技术属性】
技术研发人员:许广彬,谭瑞忠,濮天晖,张银滨,张欢,刘庆,
申请(专利权)人:无锡华云数据技术服务有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。