一种中央服务器的数据转移存储实现方法及系统的制作方法_2

文档序号:9750877阅读:来源:国知局
实施例的示意图。
[0024]图7为本发明所述中央服务器的数据转移存储实现方法第二具体实施例的示意图。
[0025]图8为本发明所述中央服务器的数据转移存储实现系统较佳实施例的结构框图。
【具体实施方式】
[0026]本发明提供一种中央服务器的数据转移存储实现方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0027]请参见图3,图3是本发明所述中央服务器的数据转移存储实现方法较佳实施例的流程图。如图3所示,其包括以下步骤:
步骤SlOO、当中央服务器检测到原数据中的数据集发生更新时,则存储所述更新后的数据集,并将所述更新后的数据集发送至对应的本地服务器。
[0028]步骤S200、本地服务器根据所述更新后的数据集及对应的业务需求生成衍生数据,并将所述衍生数据存储在本地服务器。
[0029]本发明的实施例中,将数据分为两种,分别为原数据和衍生数据。其中,原数据是指由中央服务器收集得到,不能由其他数据推导而得到的数据;衍生数据是指可由其他数据推导得到,即只需知道原数据和业务需求,就可从原数据中推导出来。
[0030]具体实施时,在步骤SlOO之前还包括:组建由中央服务器和本地服务器组成的通讯网络。
[0031]当中央服务器收集到原数据时,则将原数据直接存储在中央服务器,这与现有技术做相同处理。但与现有技术的不同之处在于,本发明的步骤S200中,将由原数据中发生改变的数据集推导而得到的衍生数据并未存储在中央服务器,而是存储至与数据集相对应的本地服务器。这样每个与中央服务器连接的本地服务器,只需从原数据中提取相应的数据集生成自己所需要的衍生数据即可,即两个本地服务器中的数据并不一定是相同的,这样中央服务器的内存中不需要存衍生数据,内存利用率会大大增加。而衍生数据多为本地服务器中的本地业务使用,而不需要共享与同步,所以只需要在有新的原数据产生的时候通过消息机制通知相应的本地服务即可,本地服务器接收到通知消息后再从中央服务器中抽取并生成衍生数据。这样在数据插入中央服务器的时候减少了衍生数据的提前生成,这样屏蔽掉事务特性,减少了赃数据产生的可能性,也降低了数据维护的成本。
[0032]进一步的,如图4所示,所述步骤SlOO中中央服务器收集原数据进行处理的具体流程包括:
步骤S101、当中央服务器检测到原数据中的数据集发生更新时,则以通用唯一识别码为键将更新后的数据集存储。
[0033]在中央服务器中,原数据中包括的多个数据集以通用唯一识别码为键分别存储。由于每一数据集的通用唯一识别码具有唯一性,当以通用唯一识别码为键分别存储后,不会产生重复数据,而以其他值为键则会造成数据的重复,从而增大中央服务器内存的使用率。
[0034]步骤S102、获取更新后的数据集所对应的本地服务器,并向所述本地服务器发送更新通知消息。
[0035]步骤S103、当中央服务器接收到本地服务器发送的与更新通知消息对应的数据抽取请求时,则将更新后的数据集发送至本地服务器。
[0036]在步骤S102中、由于只是在中央服务器中的原数据所包括的数据集有更新时,才通知与数据集相应的本地服务器重新从中央服务器抽取更新后的数据集,降低了中央服务器的通讯压力。
[0037]作为另一种较佳实施例,步骤SlOO在具体实施时包括以下步骤:
步骤SI 1、与中央服务器通讯连接的本地服务器按指定周期定时访问中央服务器;
步骤S12、当本地服务器访问中央服务器时判断中央服务器的原数据中与本地服务器相对应的数据集发生更新时,则向中央服务器发送数据抽取请求;
步骤S13、中央服务器接收所述数据抽取请求,并将更新后的数据集发送至本地服务器。
[0038]可见,在上述实施例中,是每一本地服务器定时去访问中央服务器,并判断原数据中与该本地服务器相对应的数据集是否发生更新,当数据集发生更新时才向中央服务器发送数据抽取请求,并提取对应的更新后的数据集。在步骤S11-S103以及步骤S11-S13中的两种【具体实施方式】都实现了将更新后的数据集发送至对应的本地服务器。
[0039]进一步的,如图5所示,所述步骤S200中本地服务器接收原数据并生成衍生数据存储的具体流程包括:
步骤S201、本地服务器接收更新后的数据集,并以通用唯一识别码为键遍历获取更新后的数据集中包括的数据库表;
步骤S202、依次获取各数据表相对应的数据类型,并判断本地服务器中是否有该数据类型的键存在;当本地服务器中存在该数据类型的键时,则将该数据库表存储至该数据类型的键所对应数据库表中;当本地服务器中不存在该数据类型的键时,则新建以该数据类型为键的数据库表,并将该数据库表存储至该新建的数据库表中。
[0040]在步骤S201和步骤S202中,是以通用唯一识别码为键遍历更新后的数据集中包括的数据库表,依次获取各数据库表相对应的数据类型,将具有相同数据类型的数据库表放在以该数据类型为键的数据库表中,进而得到多个不同数据类型为键的数据库表。
[0041]若将衍生数据存储在中央服务器中,当衍生数据发生异常时需要回滚,如果要保证数据中不出现脏数据一方面需要在写入程序中加入事务逻辑,保证同一时刻对写入部分只能有一个线程,如果处理的表越多,那么阻塞的时间则越长,这样对大并发其实是一个灾难。如果上述回滚过程是发生在中央服务器中,则极大的提高了数据处理压力,只有对中央服务器进行硬件扩展才能提高处理速度。而将衍生数据存储在本地服务器中,减少了衍生数据的在中央服务器中提前生成,屏蔽掉事务特性,同时减少了脏数据产生的可能性,也降低了数据维护的成本。
[0042]步骤S203、将以数据类型为键的数据库表所组成的衍生数据存储在本地服务器。
[0043]为了更清楚的理解本发明所述步骤S201-S203中本地服务器对原数据的处理过程,下面以一具体实施例来说明。
[0044]假设目前有一个业务需要存储视频基本数据(为了便于理解,只取其中很小一部分),其数据为ID,Name,Type,其中ID为唯一标识,视频全局标识;Name为视频名称;Type为视频类型,如爱情、动画等。
[0045]现在有以下业务需求要完成。
[0046]I).根据ID获取单个视频的全部信息 2).根据Type获该类型下的全部视频数据
从上面三个需求可以推出要以ID存一份数据、以Type存一份数据。而视频点播次数更改频率较高并且被多个服务端改写所以归为共享数据。那么中央服务器需要存储的数据为:{ID, Name, Type, Count};本地服务器内存需要存储的为:{ID, Name ,Type , Count}和{Type, [ {ID, Name ,Type, Count },...]}。
[0047]实现的具体过程如下:
I)根据ID获取单个视频的全部信息,即直接在本地服务器内存通过ID作为Key值获取。
[0048]2)根据Type获该类型下的全部视频数据,即启动服务的时候,从中央服务器转存{ID, Name,Type,Count}数据时按下面步骤创建Type数据:
2.1)遍历中央服务器获取每一个{ID,Name,Type,Count};
2.2)每一次获取到{ID,Name,Type,Count },查看是否有该Type的Key存在,如果存在则存入该Key下的List中;如果不存在则先创建该Key的List然后把值写入(如果是Map,则先判断Key是否存在,如果存在则获取该Key的List然后把值存入;如果不存在,则创建一个List然后把Key和该新建List存入Map),且上述过程只有在启动的时候执行一次。
[0049]在步骤2.2)中获取数据的时候只需要在本地内存以Type值来查对应的List或者Map即可。
[0050]可见,将衍生数据存储在本地服务器中,减少了衍生数据的在中央服务器中提前生成,屏蔽掉事务特性,同时减少了脏数据产生的可能性,也降低了数据维护的成本。
[0051]具体实施时,中央服务器中的原数据既可以存储在本地服务器中,也可以不存储于本地服务器中
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1