CN116561203A - 一种数据访问方法及其数据访问系统 - Google Patents

一种数据访问方法及其数据访问系统 Download PDF

Info

Publication number
CN116561203A
CN116561203A CN202210103374.0A CN202210103374A CN116561203A CN 116561203 A CN116561203 A CN 116561203A CN 202210103374 A CN202210103374 A CN 202210103374A CN 116561203 A CN116561203 A CN 116561203A
Authority
CN
China
Prior art keywords
cloud service
key value
service provider
key
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210103374.0A
Other languages
English (en)
Inventor
潘浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210103374.0A priority Critical patent/CN116561203A/zh
Priority to PCT/CN2023/071628 priority patent/WO2023143061A1/zh
Publication of CN116561203A publication Critical patent/CN116561203A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据访问方法及其数据访问系统,应用于采用云服务提供键值存储的应用场景中。其方法包括:基于键值获取第一对象,其中,第一对象用于支持键值对应的操作。然后再基于键值以及第一对象得到目标对象。在得到目标对象后,向第一云服务商和第二云服务商发送该目标对象,以使得第一云服务商和第二云服务商基于该目标对象完成键值对应操作的执行,其中的第一云服务商和第二云服务商为具备第一对象的云服务提供商。本申请确保了不同的云服务提供商具备相同的对象,以确保不同的云服务提供商能为相同的键值提供服务,解决了云服务提供键值存储的可靠性问题,且减少了跨云服务提供商提供键值存储可靠性的运维成本。

Description

一种数据访问方法及其数据访问系统
技术领域
本申请实施例涉及通信领域,尤其涉及一种数据访问方法及其数据访问系统。
背景技术
键值存储在互联网行业被广泛采用。例如云服务大多采用键值存储的存储形式支持数据的查询、插入、删除以及修改等操作,用于支撑网络业务,例如保存图片、视频、应用程序等许多项目,已经形成了事实标准。
当前的云服务提供的键值存储服务,多依靠一家供应商或者开源的键值存储项目支撑。例如各种非关系型(not only structured query language,NoSQL)数据库,均可以保存键值数据,这些键值存储服务由对应的云服务提供商。但是,在当前云服务提供键值存储的方式中,在云服务发生故障或访问异常的情况下,容易出现可靠性问题。
发明内容
本申请提供了数据访问方法及其数据访问系统,应用于采用云服务的应用场景中,能够跨云服务提供商支持键值存储的可靠性问题,且能够减少跨云服务提供商提供键值存储可靠性的成本。
本申请第一方面提供了一种数据访问方法,包括:
基于键值获取第一对象,该第一对象用于支持键值对应的操作。其中,键值包括关键值以及与关键值对应的目标值;
然后,基于键值以及第一对象得到目标对象,且目标对象的数量至少为一个;
得到目标对象后,向第一云服务商和第二云服务商发送目标对象,以使得第一云服务商和第二云服务商基于目标对象完成键值对应操作的执行,该第一云服务商和第二云服务商为具备第一对象的云服务提供商。
在本申请的实施方式中,基于键值获取第一对象,第一对象用于支持键值对应的操作,然后基于键值以及第一对象得到目标对象,再将目标对象发送给第一云服务商以及第二云服务商,使得第一云服务商以及第二云服务商基于目标对象执行键值对应的操作,该第一云服务商以及第二云服务商为具备第一对象的云服务提供商。其中,第一云服务商以及第二云服务商具备第一对象以及目标对象,确保了不同云服务提供商之间具备相同的对象,即确保了不同云服务提供商能为相同的键值提供服务,解决云服务提供键值存储的可靠性问题,且减少了跨云服务提供商提供键值存储可靠性的运维成本。
在第一方面的一种可能的实现方式中,在第一云服务商访问异常的情况下,通过第二云服务商上的第一对象和/或目标对象完成键值对应操作的执行。
在本申请的实施方式中,在第一云服务商访问异常的情况下,通过第二云服务商上的第一对象和/或目标对象完成键值对应操作的执行,确保了在某个云服务提供商访问异常时,可以通过另一个云服务提供商继续完成操作,体现了本方案键值存储的可靠性支撑,保证了键值存储的实时访问以及操作。
在第一方面的一种可能的实现方式中,基于键值以及第一对象获取第二对象,且该第二对象的数量为至少一个,然后基于键值对第二对象更新得到目标对象。
在本申请的实施方式中,基于键值以及第一对象获取第二对象,并根据键值对第二对象进行更新,能确保键值存储的准确性,更精准以及灵活的更新键值存储的对象,确保提供保障性的服务。
在第一方面的一种可能的实现方式中,从第一云服务商以及第二云服务商分别获取至少一个第一关键值对应的第一目标值,以及至少一个第二关键值对应的第二目标值,该第一关键值以及第二关键值属于待查询目标值的关键值。
在本申请的实施方式中,可以从第一云服务商以及第二云服务商分别获取关键值的目标值,完成多个键值的查询操作,能减少云服务提供商的工作负载,且能提供工作效率。
在第一方面的一种可能的实现方式中,在向第一云服务商以及第二云服务商发送目标对象之后,获取应答信息,该应答信息用于表示发送应答信息的云服务提供商已经保存目标对象,或者,在获取应答信息异常的情况下,向获取应答信息异常的云服务提供商再次发送目标对象。
在本申请的实施方式中,获取应答信息以及在获取应答信息异常的情况下再次发送目标对象,确保第一云服务商以及第二云服务商都保存目标对象,保证不同的云服务提供商实时具备相同的对象,均能为相同的键值提供服务。
在第一方面的一种可能的实现方式中,键值至少包括以下任意一种:
待修改的键值、待插入的键值或待删除的键值。
在本申请的实施方式中,说明了键值的具体形式,体现了方案的可选择性、可靠性以及灵活性。
在本申请的第二方面提供一种数据访问系统,该数据访问系统具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请第二方面的数据访问系统执行本申请第一方面或第一方面任意一种可能实现方式所描述的方法。
在第二方面的一种可能的实现方式中,该数据访问系统还包括第二计算机设备,且第一云服务商或第二云服务商还用于通过至少一个第三关键值确定第三关键值对应的第三目标值,并向第一计算机设备和/或第二计算机设备发送第三目标值,该第三关键值由第一计算机设备和/或第二计算机设备向第一云服务商或第二云服务商发送。
在本申请的实施方式中,该数据访问系统支持多个计算机设备从第一云服务商或第二云服务商查询键值,获取关键值对应的目标值,适用于广泛的网络环境,提高工作效率。
本申请第三方面提供一种信息处理装置,可以包括处理器,该处理器与存储器耦合,其中存储器用于存储指令,处理器用于执行存储器中的指令使得该信息处理装置执行本申请第一方面中第一方面或第一方面任意一种可能实现方式中的方法,或者执行本申请第二方面中数据访问系统中的第一计算机设备、第二计算机设备、第一云服务商或第二云服务商所实现的功能。
本申请实施例第四方面提供另一种信息处理装置,包括处理器,用于执行存储器中存储的计算机程序(或计算机可执行指令),当计算机程序(或计算机可执行指令)被执行时,使得该信息处理装置执行如第一方面或第一方面任意一种可能实现方式中的方法,或者执行本申请第二方面中数据访问系统中的第一计算机设备、第二计算机设备、第一云服务商或第二云服务商所实现的功能。
在一种可能的实现中,处理器和存储器集成在一起;
在另一种可能的实现中,上述存储器位于该信息处理装置之外。
该信息处理装置还包括通信接口,该通信接口用于该信息处理装置与其他设备进行通信,例如数据和/或信号的发送或接收。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
本申请第五方面提供一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得本申请第一方面或第一方面任意一种可能实现方式所描述的方法被执行。
本申请第六方面提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得本申请第一方面或第一方面任意一种可能实现方式所描述的方法被执行。
本申请第七方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式中的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。
附图说明
图1a为本申请实施例提供的数据访问系统的一个架构示意图;
图1b为本申请实施例提供的数据访问系统的一个应用场景示意图;
图2为本申请实施例提供的数据访问方法的一个示意图;
图3为本申请实施例提供的应用场景的一个示意图;
图4为本申请实施例提供的键值存储结构的一个示意图;
图5为本申请实施例提供的一个更新第一对象的一个示意图;
图6为本申请实施例提供的一个更新第一对象的另一个示意图;
图7为本申请实施例提供的第一对象或中间对象的一个示意图;
图8为本申请实施例提供的应用场景的另一个示意图;
图9为本申请实施例提供的查询键值的一个示意图;
图10a为本申请实施例提供的应用场景的另一个示意图;
图10b为本申请实施例提供的应用场景的另一个示意图;
图11为本申请实施例提供的数据访问系统的的一个架构示意图;
图12为本申请实施例提供的信息处理装置的一个结构示意图。
具体实施方式
本申请提供了数据访问方法及其数据访问系统,应用于采用云服务的应用场景中,能够跨云服务提供商支持键值存储的可靠性问题,且能够减少跨云服务提供商提供键值存储可靠性的成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
在介绍本申请实施例之前,先对键值存储以及目前常见的云服务提供的键值存储进行简单的介绍,以便于后续理解本申请实施例。
键值存储主要存储关键值(key)和目标值(value)之间的映射关系,类似字典的作用,提供key->value查询、插入、删除以及修改等操作。在存储系统、数据库系统或文件系统之中,会使用键值存储保存和维护大量的key和value的映射关系,这些映射关系和value的具体内容保存了上述系统的内部状态,在系统运行过程中通过查询、修改、插入或删除这些映射关系来决定程序的后续操作。例如,在存储系统中,可以使用键值存储保存用户的逻辑地址到实际保存数据的磁盘物理地址的映射关系,在用户读取逻辑地址的数据时,需要到键值存储中查询和读取实际保存所述的磁盘物理地址,查询到物理地址后,从物理地址读取数据返回给用户;若这个逻辑地址没有存储数据,则返回没有对应的映射关系,告知用户没有数据。
在云服务上的键值存储通常可以是由云服务提供商提供的,例如一些NoSQL数据库中使用完全托管的NoSQL数据库服务(DynamoDB)保存键值数据,或者使用分布式数据存储系统(Bigtable)保存键值数据,这些键值存储服务由对应的云服务提供商(例如亚马逊或者谷歌等)提供。
或者,在云服务上搭建和运行开源的键值存储项目,具体例如LeveIDB、RocksDB或HBase等键值存储项目,通过这些键值存储项目能够以访问的服务形式提供给用户在云服务上运行其他应用。
但是,在上述云服务提供键值存储的形式中,在云服务发生故障或访问异常的情况下,容易出现键值存储的可靠性问题,且在当前提供键值存储的方式上解决可靠性问题成本较大,实现困难。
为解决上述所述问题,本申请实施例提供了数据访问方法及其数据访问系统,本申请实施例应用于采用云服务的应用场景中,用于使多个云服务提供商采用相同的键值存储方式提供键值对应的操作,解决云服务提供键值存储的可靠性问题,且能减少跨云服务提供商提供键值存储可靠性的成本。
为便于理解本申请的数据访问方法,下面结合附图,对本申请实施例应用的数据访问系统进行简单描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。具体请参阅图1a,图1a为本申请实施例提供的数据访问系统的一个架构示意图,具体包括:
第一计算机设备101、第一云服务商102以及第二云服务商103。
为了便于理解图1a所示的数据访问系统,下面通过图1b所示的应用场景进行具体说明,图1b为本申请实施例提供的数据访问系统的一个应用场景示意图,其中第一云服务商102以及第二云服务商103为具备第一对象的云服务提供商,该第一对象用于支持键值对应的操作,例如支持键值的查询、删除、插入或修改等操作。
其中,第一计算机设备101用于基于键值从第一云服务商102或第二云服务商103获取第一对象。
然后,第一计算机设备101还用于基于上述的键值以及第一对象得到目标对象,且该目标对象的数量为至少一个。
在得到目标对象后,第一计算机设备101还用于向第一云服务商102以及第二云服务商103发送目标对象。
其中,第一云服务商102以及第二云服务商103在接收到目标对象后,用于基于该目标对象完成键值对应操作的执行。
在本申请实施例所述的数据访问系统中,第一计算机设备基于键值获取第一对象,并基于键值以及第一对象确定目标对象,然后向第一云服务商以及第二云服务商发送目标对象。其中,第一云服务商以及第二云服务商为具备第一对象的云服务提供商,因此第一计算机设备向不同的云服务提供商发送目标对象,确保了不同云服务提供商具备相同的对象,能同时为相同的键值提供对应的操作,解决云服务提供键值存储的可靠性问题,且减少了跨云服务提供商提供键值存储可靠性的运维成本。
可选的,第一计算机设备101可以是具有通信功能的终端设备。例如物联网(internet of things,IoT)设备(例如,传感器,电表,水表等)、车联网(vehicle toeverything,V2X)设备、无线局域网(wireless local area networks,WLAN)中的站点(station,ST)、个人数字处理(personal digital assistant,PDA)设备、具有无线通信功能的手持设备(如手机)、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备(也可以称为穿戴式智能设备)、平板电脑或带无线收发功能的电脑,或者为云侧设备,例如云服务器或者控制器等。
可选的,第一云服务商102以及第二云服务商103可以是目前市面上的各个云服务的提供商,也可以是以后同样适用于本方案的云服务的提供商。
需要说明的是,本申请实施例描述的数据访问系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面结合附图,更直观的对本申请实施例的数据访问方法进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。具体请参阅图2,图2为本申请实施例提供的数据访问方法的一个示意图,具体包括:
201、基于键值获取第一对象。
基于键值获取第一对象,其中,第一对象用于支持键值对应的操作,且键值包括关键值以及与关键值对应的目标值。
示例性的,请参阅图3的示例进行说明,图3为本申请实施例提供的应用场景的一个示意图,其中,第一云服务商以及第二云服务商为具备第一对象的云服务提供商,在第一计算机设备具备至少一个待处理的键值的情况下,第一计算机设备会根据键值从图3所示的第一云服务商或者第二云服务商任一一个获取第一对象,该第一对象用于支持键值对应的操作,例如预设在第一云服务商以及第二云服务商的用于支持键值存储相关操作的数据接口或数据结构,具体如支持键值存储的存储树的根对象,可以理解的是,实际情况中,还可以是其他的具体形式支持键值对应操作的对象。
为便于理解,下面以第一对象为根对象举例说明。由于对象存储是一种互联网广泛可以获得的存储服务,所以具体示例如各个云服务提供商通过树形结构组织键值数据,而树形结构中每个节点为对象存储的一个对象,其中第一对象为该树形结构的根对象,具体为用于支持键值对应的操作的数据接口。树形结构至少包含一个第一对象即根对象,且第一对象具备对应的身份标识(identity document,ID),第一计算机设备可以通过第一对象的ID获取第一对象。树形结构的具体形式请参阅图4的示例,图4为本申请实施例提供的键值存储结构的一个示意图。可以理解的是,第一对象的ID可以由数值、字符、汉字及其各种组合表示,实际情况中根据具体需求确定,具体此处不做限定。
可选的,由于更新对象的成本较高,所以可以在键值的数量达到阈值的情况下,再获取第一对象进行后续的更新,以此减少修改对象的成本。
另外,可选的,上述图3中第一计算机设备在从第一云服务商获取第一对象失败后,切换为从第二云服务商获取第一对象,或者第一计算机设备从第二云服务商获取第一对象失败后,切换为从第一云服务商获取第一对象。
可以理解的是,上述图3以及图4仅仅作为示例,用于理解本申请实施例,不对本申请实施例产生实质性的限定,实际情况中,除了从第一云服务商或第二云服务商获取第一对象,还可以从其他具备第一对象的云服务提供商获取第一对象,具体此处不做限定,且具备第一对象的云服务提供商的数量为至少两个,具体此处不做限定。
202、基于键值以及第一对象得到目标对象。
基于键值以及第一对象得到目标对象,且目标对象的数量为至少一个。
其中,键值至少包括待修改的键值、待插入的键值或待删除的键值中的任意一种。
示例性的,以上述图3继续进行说明,第一计算机设备在获取到第一对象后,会根据键值对第一对象进行更新,具体例如,键值为待插入的键值,则第一计算机设备会先在第一对象中增加记录待插入的键值,在第一对象的键值缓存空间没有超过阈值的情况下,将当前第一对象中的键值(key/value)缓存与新增加记录的待插入的键值进行合并更新得到目标对象,且该目标对象的ID与第一对象的ID一致。具体请参阅图5,图5为本申请实施例提供的一个更新第一对象的一个示意图,其中,键值key4/value为待插入的键值,插入第一对象保存在key/value缓存即key/value Buffer中,后得到目标对象。
例如待处理的键值为待修改的键值,在待修改的键值包含的key存储在第一对象时,第一计算机设备将第一对象中待修改的键值包含的key对应的value 1替换成待修改的键值包含的value 2,得到更新后的目标对象。具体请参阅图6,图6为本申请实施例提供的一个更新第一对象的另一个示意图,待修改的键值为key3/value 2,将key3在第一对象中对应的目标值value 1修改为value 2得到目标对象。
例如待处理的键值为待删除的键值,在待删除的键值存储在第一对象时,第一计算机设备在第一对象中将待删除的键值标记为删除,具体可以采用插入墓碑的方式标记键值,完成键值的删除操作。可以理解的是,在实际情况中,还能以其他形式完成键值的删除操作,具体此处不做限定。
一种可能的实现方式中,基于键值以及第一对象获取第二对象,然后基于键值对第二对象更新得到目标对象。示例性的,存储的键值越来越多,会超过第一对象存储键值的阈值,因此第一对象将键值存储到多个叶子对象中,但随着叶子对象的增多,会通过一层或多层中间对象来保持单个对象存储的键值不超过阈值,如图4所示的示例,树形结构还包括中间对象以及叶子对象。在第一对象和/或中间对象中至少包括指向下层对象的查找表、key/value缓存以及汇总信息的版本号。
其中,汇总信息的版本号用于在修改对象时检查对象是否发生了变化,可以通过操作发生时的时间或者由一个递增且唯一的整数表示,可以理解的是,也可以由字符、字符组合、汉字、汉字组合、数值以及字符组合或其他形式表示,实际情况中根据具体需求确定,具体此处不做限定。
key/value缓存用于保存新插入的键值以及修改的键值。可选的,key/value缓存具备一个阈值,该阈值可以是缓存的键值数量,或者缓存的键值占据的内存空间大小,可以理解的是,实际情况中可以根据具体需求确定,具体此处不做限定。另外,由于叶子对象没有指向的下层对象,所以叶子对象的阈值可以大于第一对象和/中间对象。且key/value缓存的具体格式可以采用排序数组、哈希表或树形结构,方便用户快速查找key是否属于缓存,查找对应的value。可以理解的是,实际情况中,key/value缓存还可以采用其他格式实现,具体此处不做限定。
对象查找表用于记录上层对象关联的下层对象的信息,例如下层对象存储的key范围以及下层对象的ID,示例性的,请参阅图7,图7为本申请实施例提供的第一对象或中间对象的一个示意图,其中range key表示key范围,下层object表示下层对象,具体可以是下层对象的ID,具体此处不做限定。第一对象中的对象查找表包括中间对象的ID,每个中间对象的对象查找表包括对应的叶子对象的ID,另外中间对象以及叶子对象的ID与前述第一对象的ID类似,具体此处不再赘述。可选的,在第一对象或中间对象存储的键值超过先插入的键值超过阈值的情况下,第一对象将存储的键值以及新插入的键值,通过key范围内的起始key划分为多个分组,然后将不同分组根据对应的起始key发送给对应的下层对象存储。在超过下层对象的阈值的情况下,仍然依此发送给该下层对象的下层对象存储。通过起始key划分键值分组,能避免出现数据空洞,保证数据的准确性。
下面以图3以及图4为例具体说明,在第一计算机设备获取到第一对象后,根据键值确定第二对象。具体例如,键值为待插入的键值,在超过第一对象缓存的阈值的情况下,或者键值为待修改的键值或待删除的键值,在该键值的key不属于第一对象的key/value缓存的情况下,在对象查找表中查找该键值的key属于某个中间对象包含的key范围,确定该中间对象为第二对象。然后第一计算机设备从第一云服务商或第二云服务商获取该第二对象,然后根据键值对第二对象更新得到目标对象,其中更新第二对象得到目标对象与前述更新第一对象得到目标对象类似,具体此处不再赘述。
一种可能的实现方式中,在键值超过中间对象的阈值和/或不属于中间对象的key/value缓存的情况下,第二对象可以是上述图4中的叶子对象,具体的确定方式与上述确定中间对象为第二对象类似,具体此处不再赘述。
且由于不同的键值对应的第二对象可能不同,则第二对象的数量可以为多个。
在本申请的实施方式中,基于键值以及第一对象获取第二对象,然后再基于键值更新第二对象得到目标对象。能确保键值存储的准确性,更精准以及灵活的更新键值存储的对象,确保提供保障性的服务。
203、向第一云服务商和第二云服务商发送目标对象。
向第一云服务商和第二云服务商发送目标对象,以使得第一云服务商和第二云服务商基于目标对象完成键值对应操作的执行,且第一云服务商和第二云服务商为具备第一对象的云服务提供商。
示例性的,以图3的示例继续说明,第一计算机设备在得到目标对象后,向第一云服务商以及第二云服务商发送目标对象,然后第一云服务商以及第二云服务商可以根据目标对象完成键值对应的操作,例如插入、修改、查询或删除等。
可以理解的是,上述图3仅仅用于示例理解本申请实施例,具体不对本申请实施例产生实质性的限定,实际情况中,还可以是三个云服务提供商、四个云服务提供商或者更多数量的云服务提供商,具体此处不做限定。
在本申请实施例中,基于键值获取第一对象,然后再基于键值以及第一对象得到目标对象,再将目标对象发送给第一云服务商和第二云服务商,能确保至少两个不同的云服务提供商具备相同的对象,能为相同的键值提供服务,解决云服务提供键值存储的可靠性问题,且能减少跨云服务提供商提供键值存储可靠性的运维成本。
一种可能的实现方式中,在向第一云服务商和第二云服务商发送目标对象之后,还会获取应答信息,该应答信息用于表示发送应答信息的云服务提供商已经完成更新目标对象,或者,在获取该应答信息异常的情况下,向获取该应答信息异常的云服务提供商再次发送目标对象。
可选的,获取应答信息异常至少包括获取应答信息超时,或获取应答信息失败中任一一种情况,可以理解的是,实际情况中还具备其他方式确定获取应答信息异常,具体此处不做限定。
示例性的,请参阅图8,图8为本申请实施例提供的应用场景的另一个示意图。其中,第一计算机设备在向第一云服务商以及第二云服务商发送目标对象后,从第一云服务商和/或第二云服务商获取到应答信息,然后第一计算机设备确定对方将第一对象或第二对象更新为目标对象。或者,如图8所示,第一计算机设备从第一云服务商获取应答信息异常,即获取应答信息超时或者获取应答信息失败,然后再次向第一云服务商发送目标对象,确保第一云服务商将第一对象或第二对象替换为目标对象。
在本申请的实施方式中,获取应答信息或者在获取应答信息异常的情况下,向获取应答信息异常的云服务提供商发送目标对象,确保不同云服务提供商都保存目标对象,保证不同云服务提供商实时具备相同的对象,能为相同的键值提供服务。
一种可能的实现方式中,从第一云服务商和第二云服务商分别获取至少一个关键值对应的第一目标值,以及至少一个第二关键值对应的第二目标值。其中,第一关键值以及第二关键值属于待查询目标值的关键值。
示例性的,请参阅图9,图9为本申请实施例提供的查询键值的一个示意图,其中,第一计算机设备上需要查询目标值的关键值为key1,key2,key3,key4以及key5,将其分为两组,一组包括key1以及key2,另一组包括key3、key4以及key5,然后从第一云服务商获取key1以及key2对应的目标值,从第二云服务商获取key3,key4以及key5对应的目标值。可以理解的是,图9作为示例,仅仅用于理解本申请实施例,不对本申请实施例产生实质性的限定,实际情况中,还能分为三组或多组,然后分别从三个或多个云服务提供商获取对应的目标值,具体此处不做限定。
在本申请的实施方式中,可以将待查询目标值的关键值分为多个组,然后分别从不同的云服务提供商获取关键值对应的目标值,能够减轻云服务提供商的工作负载,且高效完成查询任务,提高工作效率。
一种可能的实现方式中,在第一云服务商访问异常的情况下,通过第二云服务商上的第一对象和/或目标对象执行键值对应的操作。
示例性的,请参阅图10a,图10a为本申请实施例提供的应用场景的另一个示意图。其中,第一计算机设备访问第一云服务商异常,此时第一计算机设备可以访问第二云服务商获取第一对象得到目标对象并发送给第一云服务商和第二云服务商以完成键值的插入、修改或删除等操作,或者通过第一对象和/或目标对象完成键值的查询,确保能实时顺利的完成键值操作。
在本申请的实施方式中,在第一云服务商访问异常的情况下,通过第二云服务商上的第一对象和/或目标对象执行键值对应的操作,确保了在某个云服务提供商访问异常时,可以通过另一个云服务提供商继续完成操作,体现了键值存储的可靠性支撑,保证了键值存储的实时访问以及操作。
一种可能的实现方式中,同一个时间段内,只能有一个计算机设备向第一云服务商和第二云服务商发送目标对象。示例性的,可以是只由固定的计算机设备更新得到目标对象,或者是定义不同的时间段内由预设的计算机设备更新得到目标对象,然后向第一云服务商和第二云服务商发送目标对象,可以理解的是,实际情况中可以根据具体需求确定,具体此处不做限定。能够确保云服务提供商具备的对象的实时性以及准确性。
一种可能的实现方式中,第一云服务商或第二云服务商通过至少一个第三关键值确定第三关键值对应的第三目标值,并向对应的第一计算机设备和/或第二计算机设备发送第三目标值,其中第三关键值由第一计算机设备和/或第二计算机设备向第一云服务商或第二云服务商发送。示例性的,请参阅图10b,图10b为本申请实施例提供的应用场景的另一个示意图,其中,第一计算机设备以及第二计算机设备从第一云服务商和/或第二云服务商查询键值。可以理解的是,实际情况中,还可以是三个或多个计算机设备从第一云服务商或第二云服务商查询键值,查询键值的计算机设备的数量具体此处不做限定。多个计算机设备从云服务提供商查询键值能够适应广泛的网络,提供工作效率。
在本申请实施例中,通过键值获取第一对象,并得到目标对象,向具备第一对象的不同云服务提供商发送目标对象,以确保不同云服务提供商具备相同的对象,能为相同的键值提供对应的操作,解决了云服务提供键值存储的可靠性问题。且减少了跨云服务提供商提供键值存储可靠性的运维成本。在其中访问某个云服务提供商异常的情况下,切换为另一个云服务提供商完成键值对应的操作,能实时的提供键值存储的服务,保证业务的正常进行,提高工作效率。
为了实现上述本申请实施例提供的方法中的各功能,数据处理系统均可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图11所示,本申请实施例还提供了一种数据访问系统。具体请参阅图11,图11为本申请实施例提供的数据访问系统的的一个架构示意图。一种可能的实现中,该数据访问系统可以包括执行上述方法实施例中的方法/操作/步骤/动作所一一对应的模块或单元,该单元可以是硬件电路,也可以是软件,也可以是硬件电路结合软件实现。一种可能的实现中,该数据访问系统可以包括:第一计算机设备1101、第一云服务商1102以及第二云服务商1103。第一计算机设备1101可以用于执行如上述方法实施例中基于键值获取第一对象以及得到目标对象的步骤,以及向第一云服务商和第二云服务商发送目标对象的步骤,第一云服务商1102以及第二云服务商1103可以用于执行如上述方法实施例中基于目标对象执行键值对应的操作的步骤。
另一种可能的设计中,数据访问系统还包括第二计算机设备1104,其中,第一云服务商1102和/或第二云服务商1103还用于通过第三关键值确定第三关键值对应的第三目标值,并向对应的第一计算机设备1101和/或第二计算机设备1104发送第三目标值,该第三关键值由第一计算机设备和/或第二计算机设备1104向第一云服务商或第二云服务商发送。
在本申请实施例中,第一计算机设备1101基于键值获取第一对象,并根据键值以及第一对象得到目标对象,并向第一云服务商1102以及第二云服务商1103发送目标对象,且第一云服务商和第二云服务商为具备第一对象的云服务提供商,然后第一云服务商1102以及第二云服务商1103基于目标对象执行键值对应的操作。其中,不同云服务提供商具备相同的对象,能为相同的键值完成对应操作的执行,解决了云服务提供键值存储的可靠性问题。且减少了跨云服务提供商提供键值存储可靠性的运维成本。
在其他可能的设计中,上述第一计算机设备1101、第一云服务商1102、第二云服务商1103或第二计算机设备1104可以一一对应的执行上述方法实施例中对应的各种可能的实现方式中的方法/操作/步骤/动作。
在一种可能的设计中,上述第一计算机设备1101,还用于在第一云服务商1102访问异常的情况下,通过第二云服务商上的第一对象和/或目标对象执行键值对应的操作。
在一种可能的设计中,上述第一计算机设备1101,具体用于基于键值以及第一对象获取第二对象;
还具体用于基于键值对第二对象更新得到目标对象。
在一种可能的设计中,上述第一计算机设备1101,还用于从第一云服务商和第二云服务商分别获取至少一个第一关键值对应的第一目标值,以及至少一个第二关键值对应的第二目标值,该第一关键值以及第二关键值属于待查询目标值的关键值。
在一种可能的设计中,键值至少包括以下任意一种:
待修改的键值、待插入的键值或待删除的键值。
本申请上述的各种设计的有益效果请参考上述图2中方法实施例中一一对应的各种实现方式的有益效果,具体此处不再赘述。
需要说明的是,图11对应实施例所述的数据访问系统中各模块/单元之间的信息交互、执行过程等内容,与本申请中图2对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,具体此处不再赘述。
接下来介绍本申请实施例提供的一种信息处理装置,请参阅图12,图12为本申请实施例提供的信息处理装置的一个结构示意图,信息处理装置1200上可以为图11中对应实施例中对应第一计算机设备、第二计算机设备、第一云服务商或第二云服务商,用于实现图11中第一计算机设备、第二计算机设备、第一云服务商或第二云服务商的功能,具体的,信息处理装置1200由一个或多个服务器实现,信息处理装置1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1222(例如,一个或一个以上中央处理器)和存储器1232,一个或一个以上的存储介质1230(例如一个或一个以上存储设备)。其中,存储器1232和存储介质1230可以是短暂存储或持久存储。存储在存储介质1230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对信息处理装置1200中的一系列指令操作。更进一步地,中央处理器1222可以设置为与存储介质1230通信,在信息处理装置1200上执行存储介质1230中的一系列指令操作。
信息处理装置1200还可以包括一个或一个以上电源1226,一个或一个以上有线或无线网络接口1250,和/或,一个或一个以上输入输出接口1258。
本申请实施例中,中央处理器1222,用于执行图2对应实施例中的方法。例如,中央处理器1222可以用于:基于键值获取第一对象,然后基于键值以及第一对象得到目标对象,再向第一云服务商和第二云服务商发送目标对象,以使得第一云服务商和第二云服务商基于目标对象执行键值对应的操作,该第一云服务商和第二云服务商为具备第一对象的云服务提供商。
或中央处理器1222可以用于:获取目标对象以及基于第一对象和/或目标对象完成键值对应操作的执行。
或中央处理器1222可以用于:向第一云服务商或第二云服务商发送第三关键值获取第三关键值对应的目标值。
需要说明的是,中央处理器1222还可以用于执行与本申请中图2对应的方法实施例中任意一个步骤,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,包括计算机可读指令,当计算机可读指令在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。
本申请实施例还提供的一种计算机程序产品,计算机程序产品包括计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。
本申请还提供一种芯片或芯片系统,该芯片可包括处理器。该芯片还可包括存储器(或存储模块)和/或收发器(或通信模块),或者,该芯片与存储器(或存储模块)和/或收发器(或通信模块)耦合,其中,收发器(或通信模块)可用于支持该芯片进行有线和/或无线通信,存储器(或存储模块)可用于存储程序或一组指令,该处理器调用该程序或该组指令可用于实现上述方法实施例、方法实施例的任意一种可能的实现方式中由终端或者网络设备执行的操作。该芯片系统可包括以上芯片,也可以包含上述芯片和其他分立器件,如存储器(或存储模块)和/或收发器(或通信模块)。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid statedrive,SSD))等。

Claims (14)

1.一种数据访问方法,其特征在于,包括:
基于键值获取第一对象,所述第一对象用于支持键值对应的操作;
基于所述键值以及所述第一对象得到目标对象;
向第一云服务商和第二云服务商发送所述目标对象,以使得所述第一云服务商和所述第二云服务商基于所述目标对象完成所述键值对应操作的执行,所述第一云服务商和所述第二云服务商为具备所述第一对象的云服务提供商。
2.根据权利要求1所述的方法,其特征在于,在所述第一云服务商访问异常的情况下,所述方法还包括:
通过所述第二云服务商上的所述第一对象和/或所述目标对象完成所述键值对应操作的执行。
3.根据权利要求1或2中任一项所述的方法,其特征在于,所述基于所述键值以及所述第一对象得到目标对象包括:
基于所述键值以及所述第一对象获取第二对象;
基于所述键值对所述第二对象更新得到所述目标对象。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
从所述第一云服务商以及所述第二云服务商分别获取至少一个第一关键值对应的第一目标值,以及至少一个第二关键值对应的第二目标值,所述第一关键值以及所述第二关键值属于待查询目标值的关键值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述键值至少包括以下任意一种:
待修改的键值、待插入的键值或待删除的键值。
6.一种数据访问系统,其特征在于,包括:
第一计算机设备、第一云服务商以及第二云服务商,所述第一云服务商以及所述第二云服务商为具备第一对象的云服务提供商,所述第一对象用于支持键值对应的操作;
所述第一计算机设备,用于基于所述键值从所述第一云服务商或第二云服务商获取所述第一对象;
所述第一计算机设备,还用于基于所述键值以及所述第一对象得到目标对象;
所述第一计算机设备,还用于向所述第一云服务商以及所述第二云服务商发送所述目标对象;
所述第一云服务商以及所述第二云服务商,用于基于所述目标对象完成所述键值对应操作的执行。
7.根据权利要求6所述的数据访问系统,其特征在于,在所述第一云服务商访问异常的情况下,所述第一计算机设备,还用于通过所述第二云服务商上的所述第一对象和/或目标对象完成所述键值对应操作的执行。
8.根据权利要求6或7所述的数据访问系统,其特征在于,所述第一计算机设备,具体用于基于所述键值以及所述第一对象获取第二对象;
并具体用于基于所述键值对所述第二对象更新得到所述目标对象。
9.根据权利要求6-8中任一项所述的数据访问系统,其特征在于,所述第一计算机设备,还用于从所述第一云服务商以及所述第二云服务商分别获取至少一个第一关键值对应的第一目标值,以及至少一个第二关键值对应的第二目标值,所述第一关键值以及所述第二关键值属于待查询目标值的关键值。
10.根据权利要求6-9中任一项所述的数据访问系统,其特征在于,所述数据访问系统还包括第二计算机设备,其中,所述第一云服务商或所述第二云服务商,还用于通过至少一个第三关键值确定所述第三关键值对应的第三目标值,并向所述第一计算机设备和/或所述第二计算机设备发送所述第三目标值,所述第三关键值由所述第一计算机设备和/或所述第二计算机设备向所述第一云服务商或所述第二云服务商发送。
11.根据权利要求6-10中任一项所述的数据访问系统,其特征在于,所述键值至少包括以下任意一种:
待修改的键值、待插入的键值或待删除的键值。
12.一种数据访问系统,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器存储指令,所述处理器用于执行所述指令,使得所述数据访问系统执行权利要求1至5中任意一项所述的方法。
13.一种计算机可读存储介质,包括计算机可读指令,其特征在于,当所述计算机可读指令在计算机上运行时,使得如权利要求1-5中任一项所述的方法被执行。
14.一种计算机程序产品,包括计算机可读指令,其特征在于,当所述计算机可读指令在计算机上运行时,使得如权利要求1-5中任一项所述的方法被执行。
CN202210103374.0A 2022-01-27 2022-01-27 一种数据访问方法及其数据访问系统 Pending CN116561203A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210103374.0A CN116561203A (zh) 2022-01-27 2022-01-27 一种数据访问方法及其数据访问系统
PCT/CN2023/071628 WO2023143061A1 (zh) 2022-01-27 2023-01-10 一种数据访问方法及其数据访问系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210103374.0A CN116561203A (zh) 2022-01-27 2022-01-27 一种数据访问方法及其数据访问系统

Publications (1)

Publication Number Publication Date
CN116561203A true CN116561203A (zh) 2023-08-08

Family

ID=87470433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210103374.0A Pending CN116561203A (zh) 2022-01-27 2022-01-27 一种数据访问方法及其数据访问系统

Country Status (2)

Country Link
CN (1) CN116561203A (zh)
WO (1) WO2023143061A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882927B (zh) * 2012-08-29 2016-12-21 华南理工大学 一种云存储数据同步框架及其实现方法
US10291488B1 (en) * 2012-09-27 2019-05-14 EMC IP Holding Company LLC Workload management in multi cloud environment
CN103268318B (zh) * 2013-04-16 2016-04-13 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法
CN113704261B (zh) * 2021-08-26 2024-05-24 平凯星辰(北京)科技有限公司 基于云存储的键值存储系统

Also Published As

Publication number Publication date
WO2023143061A1 (zh) 2023-08-03

Similar Documents

Publication Publication Date Title
CN107704202B (zh) 一种数据快速读写的方法和装置
CN110413845B (zh) 基于物联网操作系统的资源存储方法及装置
CN111258978B (zh) 一种数据存储的方法
CN109669980B (zh) 数据跨库访问方法及装置
US20170289243A1 (en) Domain name resolution method and electronic device
CN105095313A (zh) 一种数据访问方法和设备
CN111737564A (zh) 一种信息查询方法、装置、设备及介质
CN114090388A (zh) 信息获取方法、服务器集群、服务器及设备
CN113779452B (zh) 数据处理方法、装置、设备及存储介质
CN113157609A (zh) 存储系统、数据处理方法、装置、电子设备及存储介质
CN113761016A (zh) 数据查询方法、装置、设备及存储介质
CN104536785A (zh) 实时系统更新方法及装置
CN115374078A (zh) 一种数据存储与读取系统及其工作方法
CN116561203A (zh) 一种数据访问方法及其数据访问系统
CN115277707A (zh) 业务处理方法、装置、电子设备和存储介质
US10114864B1 (en) List element query support and processing
CN113468275A (zh) 图数据库的数据导入方法和装置、存储介质及电子设备
EP3046307B1 (en) Processing method, device and system for data of distributed storage system
CN112699149A (zh) 目标数据获取方法、装置和存储介质及电子装置
CN109325057B (zh) 中间件管理方法、装置、计算机设备以及存储介质
CN111078736A (zh) 一种数据聚合处理方法、装置、终端及存储介质
CN116561106B (zh) 一种配置项数据管理方法及系统
CN116594848B (zh) 一种任务监控方法、装置、设备、终端设备及存储介质
CN114866594B (zh) 设备连接管理方法、装置、系统、服务器及可读存储介质
CN110858201A (zh) 数据处理方法及系统、处理器、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination