一种数据合并方法和设备的制造方法

文档序号:9687195阅读:181来源:国知局
一种数据合并方法和设备的制造方法
【技术领域】
[0001]本申请涉及互联网技术领域,尤其是涉及一种数据合并方法和设备。
【背景技术】
[0002]LSM Tree (Log Structured Merge Tree,日志结构归并树)是一种数据存储模型,该数据存储模型通常将数据划分为内存和磁盘多级。其中,对于数据的写操作,并不将数据直接写入到磁盘上,即不直接修改磁盘上的数据,而是将数据写入内存,因而具备较高的写入性能。进一步的,为了释放内存或者提高读性能,通过合并操作将内存中的数据持久化到磁盘文件中(或者将多个磁盘文件进行合并),即通过合并操作将内存中的数据写入到磁盘中。
[0003]但是,执行合并操作会占用系统大量的10(输入输出)资源,直接影响系统正常读写操作的吞吐和响应时间,导致系统读写服务发生强烈抖动,这种抖动在高并发情况下对延时的影响非常大,导致系统的整体稳定性很差。

【发明内容】

[0004]本申请实施例提供一种数据合并方法和设备,以有效的控制合并操作对资源的消耗情况,有效避免了对读写服务的影响,提高系统的整体稳定性。
[0005]本申请实施例提供一种数据合并方法,该方法应用于包括数据平台、数据更新服务器和多个数据存储服务器的系统中,在需要将所述数据更新服务器内的数据合并到所述多个数据存储服务器时,所述方法包括以下步骤:
[0006]所述数据平台确定当前需要进行数据合并的数据存储服务器,并将所述数据存储服务器的外部读写流量切换到其它数据存储服务器;
[0007]在外部读写流量被切换到其它数据存储服务器之后,所述数据平台将所述数据更新服务器内的数据合并到所述数据存储服务器中;
[0008]在数据被合并到所述数据存储服务器完成之后,所述数据平台将所述数据存储服务器的已经切换到其它数据存储服务器的外部读写流量恢复到所述数据存储服务器。
[0009]所述方法进一步包括:
[0010]在确定当前需要进行数据合并的数据存储服务器的过程中,所述数据平台判断当前是否存在没有合并数据更新服务器内数据的数据存储服务器;如果存在,则所述数据平台从没有合并数据更新服务器内数据的数据存储服务器中选择一个当前需要进行数据合并的数据存储服务器;如果不存在,则所述数据平台从数据更新服务器内删除已经合并到数据存储服务器的数据。
[0011]所述数据平台将所述数据存储服务器的外部读写流量切换到其它数据存储服务器,具体包括:
[0012]所述数据平台生成流量控制表,在所述流量控制表中,所述数据存储服务器的流量比重为O ;以使所述客户端从所述数据平台读取所述流量控制表,并在发送外部读写流量时,按照所述流量控制表中记录的数据存储服务器的流量比重向所述数据存储服务器发送外部读写流量;
[0013]所述数据平台将所述数据存储服务器的已经切换到其它数据存储服务器的外部读写流量恢复到所述数据存储服务器,具体包括:所述数据平台生成流量控制表,在所述流量控制表中,所述数据存储服务器的流量比重为特定比重数值,所述特定比重数值是未对所述数据存储服务器进行数据合并时,所述数据存储服务器对应的流量比重;以使所述客户端从所述数据平台读取所述流量控制表,并在发送外部读写流量时,按照所述流量控制表中记录的数据存储服务器的流量比重向所述数据存储服务器发送外部读写流量。
[0014]所述方法进一步包括:
[0015]在将所述数据更新服务器内的数据合并到所述数据存储服务器的过程中,如果有外部读写流量需要由所述数据存储服务器进行处理,则所述数据平台监测所述数据存储服务器的资源消耗情况;如果所述资源消耗情况满足预设策略,则所述数据平台停止将所述数据更新服务器内的数据合并到所述数据存储服务器中;如果所述资源消耗情况不满足预设策略,则所述数据平台继续将所述数据更新服务器内的数据合并到所述数据存储服务器中。
[0016]所述资源消耗情况具体包括以下之一或者任意组合:内存资源消耗情况、线程资源消耗情况、中央处理器CPU资源消耗情况、输入输出1资源消耗情况、网络资源消耗情况。
[0017]所述数据更新服务器用于存储增量数据,各数据存储服务器用于存储基准数据,所述基准数据为按照一定的规则划分的不存在交叉的数据分片;
[0018]在所述数据更新服务器内写入的增量数据的数据量达到预设阈值时,需要将所述数据更新服务器内的增量数据合并到所述多个数据存储服务器。
[0019]本申请实施例提供一种数据平台,应用于包括所述数据平台、数据更新服务器和多个数据存储服务器的系统中,在需要将所述数据更新服务器内的数据合并到所述多个数据存储服务器时,所述数据平台具体包括:
[0020]判定模块,用于确定当前需要进行数据合并的数据存储服务器;
[0021]切换模块,用于将所述数据存储服务器的外部读写流量切换到其它数据存储服务器;以及,在数据被合并到所述数据存储服务器完成之后,将所述数据存储服务器的已经切换到其它数据存储服务器的外部读写流量恢复到所述数据存储服务器;
[0022]合并模块,用于在外部读写流量被切换到其它数据存储服务器之后,将所述数据更新服务器内的数据合并到所述数据存储服务器中。
[0023]所述判定模块,进一步用于在确定当前需要进行数据合并的数据存储服务器的过程中,判断当前是否存在没有合并数据更新服务器内数据的数据存储服务器;如果存在,则从没有合并数据更新服务器内数据的数据存储服务器中选择一个当前需要进行数据合并的数据存储服务器;如果不存在,则从数据更新服务器内删除已经合并到数据存储服务器的数据。
[0024]所述切换模块,具体用于在将所述数据存储服务器的外部读写流量切换到其它数据存储服务器时,生成流量控制表,在所述流量控制表中,所述数据存储服务器的流量比重为O ;以使所述客户端从所述数据平台读取所述流量控制表,并在发送外部读写流量时,按照所述流量控制表中记录的数据存储服务器的流量比重向所述数据存储服务器发送外部读写流量;
[0025]在将所述数据存储服务器的已经切换到其它数据存储服务器的外部读写流量恢复到所述数据存储服务器时,生成流量控制表,在所述流量控制表中,所述数据存储服务器的流量比重为特定比重数值,所述特定比重数值是未对所述数据存储服务器进行数据合并时,所述数据存储服务器对应的流量比重;以使所述客户端从所述数据平台读取所述流量控制表,并在发送外部读写流量时,按照所述流量控制表中记录的数据存储服务器的流量比重向所述数据存储服务器发送外部读写流量。
[0026]还包括:控制模块,用于在将所述数据更新服务器内的数据合并到所述数据存储服务器的过程中,如果有外部读写流量需要由所述数据存储服务器进行处理,则监测所述数据存储服务器的资源消耗情况;如果所述资源消耗情况满足预设策略,则停止将所述数据更新服务器内的数据合并到所述数据存储服务器中;如果所述资源消耗情况不满足预设策略,则继续将所述数据更新服务器内的数据合并到所述数据存储服务器中。
[0027]所述资源消耗情况包括以下之一或者任意组合:内存资源消耗情况、线程资源消耗情况、中央处理器CPU资源消耗情况、输入输出1资源消耗情况、网络资源消耗情况。
[0028]所述数据更新服务器用于存储增量数据,各数据存储服务器用于存储基准数据,所述基准数据为按照一定的规则划分的不存在交叉的数据分片;
[0029]在所述数据更新服务器内写入的增量数据的数据量达到预设阈值时,需要将所述数据更新服务器内的增量数据合并到所述多个数据存储服务器。
[0030]与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,针对多个数据存储服务器,通过将一个数据存储服务器的外部读写流量切换到其它数据存储服务器,并在外部读写流量被切换到其它数据存储服务器之后,当前只对该一个数据存储服务器进行数据合并操作,即将数据更新服务器内的数据合并到该数据存储服务器,从而每次只对一个数据存储服务器进行合并操作,并由其它数据存储服务器对外部读写流量进行处理,从而错峰进行数据合并,能够自主进行流量切换,有效的控制合并操作对资源的消耗情况,有效的避免了对读写服务的影响,提高系统的整体稳定性。进一步的,上述方式可以减少运维的复杂度,不需要手工运维操作。上述方式能够自主迁移在线读写流量,将内部合并操作和在线服务进行了彻底的隔离,使合并不影响在线服务。上述方式能够在发生合并时将流量分流到未发生合并的数据存储服务器,完成引流后再开始执行合并操作,并在合并完成后将切走的流量进行自动恢复,整个过程做到对外部服务的透明化。上述方式可以针对不同的应用采用不同的合并策略,可以多次发起数据合并,可以在存储相同数据量的情况下有效减少存储分级等,从而有效的优化了读性能。
【附图说明】
[0031]为了更加清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本申请实施例的这些附图获得其他的附图。
[0032]图1和图2是本申请实施例一中提出的应用场景示意图;
[0033]图3是本申请实施例一中提出的一种数据合并方法流程示意图;
[0034]图4是本申请实施例二中提出的一种数据平台
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1