一种集群数据库分布式存储的方法和装置
技术领域
本发明属于数据存储技术领域,尤其涉及一种集群数据库分布式存储的方法和装置。
背景技术
传统的网络存储***采用集中的存储服务器存放所有的数据,存储服务器成为***性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。
目前的分布式存储***,是将数据分散存储在多***立的设备上。采用可扩展的***结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,这种方案虽然在一定程度上缓解了单一存储服务器的压力,提高了***的可靠性、可用性和存取效率、易于扩展。但需要依赖存储服务器的读写与存储的效率,对于大规模的数据,存储服务器的要求也相应提高,多个服务器数据节点意味着要在多个存储服务器上存储数据,存储服务器的磁盘大小与读写数据都会降低存储服务器的读取效率。
故,有必要提出一种新的技术方案,以解决上述技术问题。
发明内容
鉴于此,本发明实施例提供一种集群数据库分布式存储的方法和装置,以提高存储服务器的数据读取效率。
本发明实施例的第一方面,提供一种集群数据库分布式存储的方法,所述方法包括:
接收数据处理请求信息,所述处理请求信息包括待处理数据的关键字;
根据所述关键字,查询所述存储服务器的缓存中是否存在所述待处理的数据;
若否,查询所述存储服务器的节点数据库中是否存在所述待处理的数据,若存在,则对所述待处理的数据进行处理,并将处理结果反馈至所述存储服务器的缓存,以使所述存储服务器的缓存将所述处理结果发送至客户端。
本发明实施例的第二方面,提供一种集群数据库分布式存储的装置,所述装置包括:
接收模块、查询模块以及处理模块;
所述接收模块,用于接收数据处理请求信息,所述处理请求信息包括待处理数据的关键字;
所述查询模块,用于根据所述关键字,查询所述存储服务器的缓存中是否存在所述待处理的数据;
所述处理模块,用于若否,查询所述存储服务器的节点数据库中是否存在所述待处理的数据,若存在,则对所述待处理的数据进行处理,并将处理结果反馈至所述存储服务器的缓存,以使所述存储服务器的缓存将所述处理结果发送至客户端。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例接收数据处理请求信息,所述处理请求信息包括待处理数据的关键字,根据所述关键字,查询所述存储服务器的缓存中是否存在所述待处理的数据,若否,查询所述存储服务器的节点数据库中是否存在所述待处理的数据,若存在,则对所述待处理的数据进行处理,并将处理结果反馈至所述存储服务器的缓存,以使所述存储服务器的缓存将所述处理结果发送至客户端,当所述存储服务器再次接收相同的数据处理请求信息时,就不再需要从所述存储服务器的节点数据库中进行读取,而是直接从所述存储服务器的缓存中读取,提高了存储服务器的数据读取效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的集群数据库分布式存储方法的实现流程图;
图2是本发明实施例二提供的集群数据库分布式存储装置的组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
图1示出了本发明实施例一提供的集群数据库分布式存储方法的实现流程,所述实现流程详述如下:
在步骤S101中,接收数据处理请求信息,所述处理请求信息包括待处理数据的关键字;
在本发明实施例中,存储服务器接收客户端发送的数据处理请求信息,所述处理请求信息包括待处理数据的关键字,所述关键字包括但不限于数据表名、数据库表中的字段名等。
在步骤S102中,根据所述关键字,查询所述存储服务器的缓存中是否存在所述待处理的数据;
在本发明实施例中,所述存储服务器包括多个节点数据库和一个缓存,所述缓存用于缓存节点数据库中的部分数据,与一个或多个节点数据库连接。所述多个节点数据库可以提供统一、完整的数据库视图。所述缓存为所述存储服务器的内存。
在步骤S103中,若否,查询所述存储服务器的节点数据库中是否存在所述待处理的数据,若存在,则对所述待处理的数据进行处理,并将处理结果反馈至所述存储服务器的缓存,以使所述存储服务器的缓存将所述处理结果发送至客户端。
需要说明的是,当不同节点数据库中都存在待处理的数据时,则选择数据库状态相对空闲的节点,例如,三个节点数据库A、B、C中都存在待处理的数据,若节点数据库A当前的读取操作量小于节点数据库B、C当前的读取操作量,则选择节点数据库A对所述待处理的数据进行处理;当不同节点数据库中都存在待处理的数据,且数据库状态相同时,则按照节点数据库的数据存储顺序进行优先选取,均衡节点数据库的数据处理压力。所述数据存储顺序为在对节点数据库分配数据时,将待处理的数据分配给不同节点数据库的顺序。
在本发明实施例中,所述处理请求信息还可以包括处理结果的返回类型,所述处理结果可以为处理后的数据和/或处理完成与否的信息。
进一步的,在将所述处理结果发送至客户端之前,还包括:
将所述处理结果缓存至所述存储服务器的缓存。
进一步的,当所述存储服务器的缓存中存在待处理的数据时,则直接对所述待处理的数据进行处理,并将处理结果发送至客户端。
在本发明实施例中,所述对所述待处理的数据进行处理包括但不限于对所述待处理的数据进行查询、增加、删除和/或修改等。
在本发明实施例中,基于集群数据库分布式存储的概念,使用存储服务器的节点数据库和存储服务器的缓存来存储数据,并使用存储服务器的缓存进行节点数据库数据的查询。
本发明实施例通过存储服务器的节点数据库和存储服务器的缓存来存储数据,当所述存储服务器再次接收相同的数据处理请求信息时,就不再需要从所述存储服务器的节点数据库中进行读取,而是直接从所述存储服务器的缓存中读取,提高了存储服务器的数据读取效率,同时,由于所述存储服务器中的多个节点数据库之间不需要进行数据同步,提高了存储服务器的性能。
实施例二:
图2示出了本发明实施例二提供的集群数据库分布式存储装置的组成示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
接收模块21,用于接收数据处理请求信息,所述处理请求信息包括待处理数据的关键字;
在本发明实施例中,接收模块21接收客户端发送的数据处理请求信息,所述处理请求信息包括待处理数据的关键字,所述关键字包括但不限于数据表名、数据库表中的字段名等。
查询模块22,用于根据所述关键字,查询所述存储服务器的缓存中是否存在所述待处理的数据;
在本发明实施例中,所述存储服务器包括多个节点数据库和一个缓存,所述缓存用于缓存节点数据库中的部分数据,与一个或多个节点数据库连接。所述多个节点数据库可以提供统一、完整的数据库视图。所述缓存为所述存储服务器的内存。
处理模块23,用于若否,查询所述存储服务器的节点数据库中是否存在所述待处理的数据,若存在,则对所述待处理的数据进行处理,并将处理结果反馈至所述存储服务器的缓存,以使所述存储服务器的缓存将所述处理结果发送至客户端。
需要说明的是,当不同节点数据库中都存在待处理的数据时,则选择数据库状态相对空闲的节点,例如,三个节点数据库A、B、C中都存在待处理的数据,若节点数据库A当前的读取操作量小于节点数据库B、C当前的读取操作量,则选择节点数据库A对所述待处理的数据进行处理;当不同节点数据库中都存在待处理的数据,且数据库状态相同时,则按照节点数据库的数据存储顺序进行优先选取,均衡节点数据库的数据处理压力。所述数据存储顺序为在对节点数据库分配数据时,将待处理数据分配给不同节点数据库的顺序。
在本发明实施例中,所述处理请求信息还可以包括处理结果的返回类型,所述处理结果可以为处理后的数据和/或处理完成与否的信息。
进一步的,所述处理模块23还用于:
将所述处理结果缓存至所述存储服务器的缓存。
进一步的,所述处理模块23还用于:
当所述存储服务器的缓存中存在待处理的数据时,则直接对所述待处理的数据进行处理,并将处理结果发送至客户端。
在本发明实施例中,所述对所述待处理的数据进行处理包括但不限于对所述待处理的数据进行查询、增加、删除和/或修改等。
在本发明实施例中,基于集群数据库分布式存储的概念,使用存储服务器的节点数据库和存储服务器的缓存来存储数据,并使用存储服务器的缓存进行节点数据库数据的查询。
本发明实施例提供的集群数据库分布式存储装置可以使用在前述对应的方法实施例一中。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即所述装置的内部结构划分成不同的功能模块,上述功能模块既可以采用硬件的形式实现,也可以采用软件的形式实现。另外,各功能模块的具体名称也只是为了便于相互区别,并不用于限制本申请的保护范围。
综上所述,本发明实施例通过存储服务器的节点数据库和存储服务器的缓存来存储数据,当所述存储服务器再次接收相同的数据处理请求信息时,就不再需要从所述存储服务器的节点数据库中进行读取,而是直接从所述存储服务器的缓存中读取,提高了存储服务器的数据读取效率,同时,由于所述存储服务器中的多个节点数据库之间不需要进行数据同步,提高了存储服务器的性能。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。