书签 分享 收藏 举报 版权申诉 / 16

数据存储、读取方法及数据存储、读取装置.pdf

  • 上传人:奻奴
  • 文档编号:6113302
  • 上传时间:2019-04-12
  • 格式:PDF
  • 页数:16
  • 大小:4.43MB
  • 摘要
    申请专利号:

    CN201210507382.8

    申请日:

    2012.12.03

    公开号:

    CN103856516A

    公开日:

    2014.06.11

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20121203|||公开

    IPC分类号:

    H04L29/08; G06F3/06

    主分类号:

    H04L29/08

    申请人:

    腾讯科技(深圳)有限公司

    发明人:

    吴宏杰; 李钟伟; 田明

    地址:

    518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

    优先权:

    专利代理机构:

    上海波拓知识产权代理有限公司 31264

    代理人:

    杨波

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及数据存储、读取方法及数据存储、读取装置,其中数据存储方法包括:接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元,写请求用于请求将客户端当前待存储数据存储到第一存储设备中;判断第一存储设备的文件中是否存储有相应的客户端数据;以及若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。本发明可以提高数据存储、读取的速度、解决数据存储、读取过程中网络流量消耗过大的问题。

    权利要求书

    权利要求书
    1.  一种数据存储方法,其特征是:包括步骤:
    接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元,该写请求用于请求将客户端当前待存储数据存储到第一存储设备中;
    判断第一存储设备的文件中是否存储有相应的客户端数据;以及
    若是,则从该第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在该文件中的起始存储位置,根据该起始存储位置读取存储于该文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到该文件的相应的客户端数据中。

    2.  根据权利要求1所述的数据存储方法,其特征是:在执行判断该文件中是否存储有相应的客户端数据的步骤中,还包括步骤:
    若该文件中未存储有相应的客户端数据,则将相应的客户端当前待存储数据存储至该文件的末尾;以及
    记录该客户端数据在该文件中的起始存储位置。

    3.  根据权利要求1所述的数据存储方法,其特征是:还包括步骤:
    判断相应的客户端当前待存储数据更新到该文件中是否更新成功,若成功,则将相应的客户端当前待存储数据更新到该文件的对应的第二存储设备中,以保证该第一存储设备的文件中与对应的该第二存储设备中的各客户端数据保持一致。

    4.  根据权利要求3所述的数据存储方法,其特征是:还包括步骤:
    判断相应的客户端当前待存储数据更新到第二存储设备是否更新成功,若不成功,则记录未更新成功的错误校正日志,该错误校正日志包括将相应的客户端当前待存储数据更新到该第二存储设备的操作类型、出错时间、相应的客户端关键数据、出错前后文件中的相应的客户端数据。

    5.  根据权利要求4所述的数据存储方法,其特征是:还包括步骤:
    根据该错误校正日志校正该文件中的相应的客户端数据,以使该第一存储设备的文件中与对应的该第二存储设备中的各客户端数据保持一致。

    6.  根据权利要求5所述的数据存储方法,其特征是:还包括步骤:
    将预先存储于该文件中的相应的客户端数据的键值与该校正日志的键值进行比较,若两者的键值相同,则将该校正日志中记录的出错前文件中的相应的客户端数据更新到该文件的相应的客户端数据中,以对该文件的相应的客户端数据进行恢复。

    7.  一种数据存储装置,其特征在于,其包括:
    请求接收模块,用于接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元,该写请求用于请求将客户端当前待存储数据存储到第一存储设备中;以及
    判断模块,用于判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则从该第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在该文件中的起始存储位置,根据该起始存储位置读取存储于该文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到该文件的相应的客户端数据中。

    8.  根据权利要求7所述的数据存储装置,其特征在于,该判断模块,还用于判断若该文件中未存储有相应的客户端数据,则将相应的客户端当前待存储数据存储至该文件的末尾,并记录该客户端数据在该文件中的起始存储位置。

    9.  根据权利要求7所述的数据存储装置,其特征在于,其进一步包括:
    更新模块,用于判断相应的客户端当前待存储数据更新到该文件中是否更新成功,若成功,则将相应的客户端当前待存储数据更新到该文件的 对应的第二存储设备中,以保证该第一存储设备的文件中与对应的该第二存储设备中的各客户端数据保持一致。

    10.  根据权利要求9所述的数据存储装置,其特征在于,其进一步包括:
    错误校正模块,用于判断相应的客户端当前待存储数据更新到第二存储设备是否更新成功,若不成功,则记录未更新成功的错误校正日志,该错误校正日志包括将相应的客户端当前待存储数据更新到该第二存储设备的操作类型、出错时间、相应的客户端关键数据、出错前后文件中的相应的客户端数据。

    11.  根据权利要求10所述的数据存储装置,其特征在于,该错误校正模块,还用于根据该错误校正日志校正该文件中的相应的客户端数据,以使该第一存储设备的文件中与对应的该第二存储设备中的各客户端数据保持一致。

    12.  根据权利要求11所述的数据存储装置,其特征在于,该错误校正模块,还用于将预先存储于该文件中的相应的客户端数据的键值与该校正日志的键值进行比较,若两者的键值相同,则将该校正日志中记录的出错前文件中的相应的客户端数据更新到该文件的相应的客户端数据中,以对该文件的相应的客户端数据进行恢复。

    13.  一种数据读取方法,其特征是:包括步骤:
    接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元,该读请求用于请求读取客户端数据,该读服务处理单元对应第一存储设备的文件及第二存储设备;以及
    从该服务处理单元对应的该第二存储设备中获得相应的客户端数据的起始存储位置,根据该起始存储位置读取存储于该第二存储设备中的相应的客户端数据。

    14.  根据权利要求13所述的数据读取方法,其特征是:还包括步骤:
    在该第一存储设备文件中的客户端数据更新后,判断该第二存储设备中是否存储有相应的客户端数据;
    若是,则从该第二存储设备中获得相应的客户端数据的起始存储位置,根据该起始存储位置读取存储于该第二存储设备中的相应的客户端数据,将该第一存储设备文件中的客户端数据更新到该第二存储设备的相应的客户端数据中。

    15.  一种数据读取装置,其特征是:其包括:
    接收模块,用于接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元,该读请求用于请求读取客户端数据,该读服务处理单元对应第一存储设备的文件及第二存储设备;以及
    读取模块,用于从该服务处理单元对应的该第二存储设备中获得相应的客户端数据的起始存储位置,根据该起始存储位置读取存储于该第二存储设备中的相应的客户端数据。

    16.  根据权利要求15所述的数据读取装置,其特征在于,其进一步包括:
    更新模块,用于在该第一存储设备文件中的客户端数据更新后,判断该第二存储设备中是否存储有相应的客户端数据;若是,则从该第二存储设备中获得相应的客户端数据的起始存储位置,根据该起始存储位置读取存储于该第二存储设备中的相应的客户端数据,将该第一存储设备文件中的客户端数据更新到该第二存储设备的相应的客户端数据中。

    说明书

    说明书数据存储、读取方法及数据存储、读取装置
    技术领域
    本发明涉及数据存取技术领域,尤其涉及数据存储方法、数据存储装置、数据读取方法以及数据读取装置。
    背景技术
    随着互联网技术的不断发展,各类网络应用及其产生的网络信息量也在逐渐增涨。例如微博是用户在互联网上进行消息分享、传播的一种新方式,微博系统具有亿级别的用户,生产着海量级的用户数据,如何有效对这些海量数据进行存储同时又能支持快速、可靠的对外服务是目前面临的主要问题,因此,设计一种高效的数据存储、读取系统及数据存储、读取方法是非常有意义的。
    现有的数据存储、读取系统其主要的存储介质是用于服务读请求的单个读服务处理单元和存储器、用于服务写请求的单个写服务处理单元和数据库、及其它备份设备。其存储方法为:当接收到对数据的写入请求时,此单个写服务处理单元将数据存储到此数据库中,再将存储到数据库中的数据更新到各个存储器和其它的备份设备中,以使各个存储器和其它的备份设备中的数据同步更新。其读取方法为:当接收到对数据的读取请求时,此读取服务处理单元从存储器中读取数据。但是,这种数据存储、读取系统及数据存储、读取方法存在如下缺点:首先,由于写服务处理单元及读服务处理单元是一个单点模块,因此成为整个系统的瓶颈,严重影响了存储、读取速度。此外,写服务处理单元负责将数据的更新操作同步到各个存储器及其它的备份设备,这是一个一对多的操作,该操作及读取服务处 理单元从存储器中读取数据的操作产生的网络包量和数据流量对网络的带宽消耗很大。再者,写服务请求处理模块对数据库的操作会产生锁表现象,从而导致系统的性能不理想。
    发明内容
    因此,本发明提供数据存储方法、数据存储装置、数据读取方法以及数据读取装置,可以提高数据存储、读取的速度、解决数据存储、读取过程中网络流量消耗过大的问题。
    具体地,本发明实施例提出的一种数据存储方法,包括步骤:接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元,写请求用于请求将客户端当前待存储数据存储到第一存储设备中;判断第一存储设备的文件中是否存储有相应的客户端的数据;以及若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。
    另外,本发明实施例提出的一种数据存储装置,包括请求接收模块、以及判断模块,请求接收模块,用于接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元,写请求用于请求将客户端当前待存储数据存储到第一存储设备中;判断模块,用于判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。
    此外,本发明实施例提出的一种数据读取方法,包括步骤:接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元, 读请求用于请求读取客户端数据,读服务处理单元对应第一存储设备的文件及第二存储设备;以及从服务处理单元对应的第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。
    再者,本发明实施例提出的一种数据读取装置,包括接收模块、以及读取模块,接收模块,用于接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元,读请求用于请求读取客户端数据,读服务处理单元对应第一存储设备的文件及第二存储设备;读取模块,用于从服务处理单元对应的第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。
    由上述实施例可知,本发明通过各写请求根据客户端关键数据将各写请求映射到相应的写服务处理单元,判断文件中是否存储有相应的客户端数据,若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将客户端当前待存储数据更新到文件的相应的客户端数据中。还根据客户端关键数据将各读请求映射到相应的读服务处理单元,再从第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。这样,采用第一存储设备结合第二存储设备实现了对客户端数据的双层存储。另外,多个写操作及读操作可以同时进行,可以将写请求及读请求分别均摊到各个写操作及读操作中,从而解决了仅有单个写操作及读操作时数据存储、读取过程中网络流量消耗过大的问题,不会出现存储时的锁表问题,还提高了存储、读取速度。
    上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的 技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
    附图说明
    图1是本发明实施例提出的数据存储方法的步骤流程图;
    图2是本发明另一实施例提出的数据存储方法的步骤流程图;
    图3是本发明实施例提出的客户端数据在文件中存储的示意图;
    图4是本发明实施例提出的数据存储装置的主要架构框图;
    图5是本发明实施例提出的数据读取方法的步骤流程图;
    图6是本发明实施例提出的数据读取装置的主要架构框图。
    具体实施方式
    为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的数据存储方法、数据存储装置、数据读取方法以及数据读取装置其具体实施方式、结构、特征及功效,详细说明如后。
    有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
    图1是本发明实施例提出的数据存储方法的步骤流程图。图3是本发明实施例提出的客户端数据在文件中存储的示意图。请参阅图1及图3,本发明实施例的数据存储方法可包括以下步骤S101-S105:
    步骤S101:接收至少一写请求,并根据客户端关键数据将各写请求映 射到相应的写服务处理单元。其中,写请求用于请求将客户端当前待存储数据存储到第一存储设备中。
    本步骤中,各个客户端当前待存储数据可以为各个客户端的操作数据,例如客户端用户更新微博等的内容,包括对微博的修改、删除或新增的内容,修改、删除或新增的时间等。如图3所示,客户端数据包括键值和独立数据逻辑结构,键值包括时间戳和客户端关键数据。时间戳可以为客户端数据更新的时间信息。客户端关键数据可以为客户端的识别信息,例如客户端的账号或ID等信息。独立数据逻辑结构可以为客户端的操作数据。可以有多个写服务处理单元,各个写服务处理单元将写请求进行合理映射(即各个写请求对应到相应的写服务处理单元中),以达到同时可以处理多个写操作的目的。
    步骤S103:判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则进行步骤S105。
    本步骤中,可以通过判断文件中是否存储有客户端名称而获知文件中是否存储有相应的客户端数据。即若判断文件中存储有客户端名称,则表示文件中存储有相应的客户端数据,反之,则表示文件中未存储有此客户端数据。
    步骤S105:从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。
    本步骤中,可以根据实际需要预先将相应的客户端数据在文件中的起始存储位置存储在第二存储设备中。第二存储设备例如可以为缓存,其存取速度快,因此,本步骤中,通过快速从第二存储设备中读取客户端数据在文件中的起始存储位置,从而可以快速获得客户端数据在文件中的起始 存储位置。得到客户端数据在文件中的起始存储位置后,再从文件中读取客户端的原始数据进行修改后并覆盖式写回到文件中。客户端数据在文件中存储的格式可以如图3所示,即可以采用定长的数据组织方式,包括4K(可以根据实际需要自行定义)的文件头和文件内容。文件头可以记录文件名、文件编号、存储的客户端数据的数量等头部信息,而文件内容包括多个定长的客户端数据块。客户端数据块的具体长度根据实际需要进行相应设定。
    在本发明实施例中,本发明通过各写请求根据客户端关键数据将各写请求映射到相应的写服务处理单元,判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将客户端当前待存储数据更新到文件的相应的客户端数据中。这样,采用第一存储设备结合第二存储设备实现了对客户端数据的双层存储。另外,多个写操作可以同时进行,解决了单点问题,可以将写请求均摊到各个写操作中,从而解决了仅有单个写操作时数据存储过程中网络流量消耗过大的问题,不会出现锁表的问题,还提高了存储速度。
    图2是本发明另一实施例提供的数据存储方法的步骤流程图。图2是在图1的基础上改进而来的。请参阅图2及图3,本发明实施例的数据存储方法可包括以下步骤S201-S211:
    步骤S201:接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元。其中,写请求用于请求将客户端当前待存储数据存储到第一存储设备中。
    本步骤中,各个客户端当前待存储数据可以为各个客户端的操作数据,例如客户端用户更新微博等的内容,包括对微博的修改、删除或新增的内 容,修改、删除或新增的时间等。如图3所示,客户端数据包括键值和独立数据逻辑结构,键值包括时间戳和客户端关键数据。时间戳可以为客户端数据更新的时间信息。客户端关键数据可以为客户端的识别信息,例如客户端的账号或ID等信息。独立数据逻辑结构可以为客户端的操作数据。可以有多个写服务处理单元,各个写服务处理单元将写请求进行合理映射(即各个写请求对应到相应的写服务处理单元中),以达到同时可以处理多个写操作的目的。
    步骤S202:判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则进行步骤S203。若否,则进行步骤S205。
    本步骤中,可以通过判断文件中是否存储有客户端名称而获知文件中是否存储有相应的客户端数据。即若判断文件中存储有客户端名称,则表示文件中存储有相应的客户端数据,反之,则表示文件中未存储有此客户端数据。
    步骤S203:从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。
    本步骤中,可以根据实际需要预先将相应的客户端数据在文件中的起始存储位置存储在第二存储设备中。第二存储设备例如可以为缓存,其存取速度快,因此,本步骤中,通过快速从第二存储设备中读取客户端数据在文件中的起始存储位置,从而可以快速获得客户端数据在文件中的起始存储位置。得到客户端数据在文件中的起始存储位置后,再从文件中读取客户端的原始数据进行修改后并覆盖式写回到文件中。客户端数据在文件中存储的格式可以如图3所示,即可以采用定长的数据组织方式,包括4K(可以根据实际需要自行定义)的文件头和文件内容。文件头可以记录文 件名、文件编号、存储的客户端数据的数量等头部信息,而文件内容包括多个定长的客户端数据块。客户端数据块的具体长度根据实际需要进行相应设定。
    步骤S205:将相应的客户端当前待存储数据存储至文件的末尾。
    本步骤中,以图3为例进行说明,客户端数据在文件中的存储方式是将客户端数据按照存储时间先后的次序依次进行存储。因此,本步骤中,新增的客户端数据存储在文件的末尾。在其他实施方式中,也可以根据实际需要而采用其他方式设置各客户端数据在文件中的存储位置。
    步骤S205中具体还可包括步骤:记录客户端数据在文件中的起始存储位置。
    本步骤中,可以将客户端数据在文件中的起始存储位置记录在文件中的某一位置,以便于通过起始存储位置查找到各个客户端数据。
    步骤S206:判断相应的客户端当前待存储数据更新到文件中是否更新成功,若成功,则进行步骤S207,若不成功,则结束。
    步骤S207:将相应的客户端当前待存储数据更新到文件的对应的第二存储设备中,以保证第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。
    本步骤中,更新文件成功后,会继续更新第二存储设备中的客户端数据,以保证第二存储设备与第一存储设备的文件中的内容保持一致。
    步骤S207中具体还可包括步骤:
    若客户端数据首次更新到第二存储设备中,则将相应的客户端数据在文件中的起始存储位置更新到第二存储设备中。
    步骤S209:判断相应的客户端当前待存储数据更新到第二存储设备是否更新成功,若成功,则结束,若不成功,则进行步骤S210。
    步骤S210:记录未更新成功的错误校正日志。
    本步骤中,错误校正日志包括将相应的客户端当前待存储数据更新到第二存储设备的操作类型、出错时间、相应的客户端关键数据、出错前后文件中的相应的客户端数据等。例如对于不同的操作类型,错误日志的格式分别可以表示如下:“操作类型(新增类型)+键值(时间戳+客户端关键数据)+原始文件记录内容(即更新前的文件的内容)”或者“操作类型(修改类型)+键值(时间戳+客户端关键数据)+新文件记录内容(即更新后的文件的内容)+原始文件记录内容(即更新前的文件的内容)”。其中,时间戳可以为出错时间,客户端关键数据可以为客户端的识别信息,例如客户端的账号或ID等信息。
    步骤S211:根据错误校正日志校正文件中的相应的客户端数据,以使文件中与对应的第二存储设备中的各客户端的数据保持一致。
    本步骤中,当数据成功更新到第一存储设备的文件和第二存储设备中,这样,第一存储设备的文件中和第二存储设备中数据一致,则整个操作成功。当数据未更新成功到第二存储设备与第一存储设备的文件中的任意一个,则可以认为整个操作失败。若将文件中的数据更新到第二存储设备时失败,则认为文件中的此部分数据也存在错误,可以通过文件中的数据与错误校正日志对文件中的数据进行恢复。如果文件中的数据记录的键值(包括时间戳和客户端关键数据)与错误校正日志记录的键值相同,则表明出现了数据更新到文件成功但更新到第二存储设备中失败的情况。在这种情况下,可以通过错误校正日志校正文件中的相应的客户端数据,以使第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。
    步骤S211中具体还可包括步骤:
    若将客户端当前待存储数据更新到第二存储设备的操作类型为新增数据操作,则将预先存储于文件中的各客户端数据的键值与校正日志的键值进行比较,若两者的键值相同,则判断为与校正日志相同的键值下的文件 中的客户端数据记录无效,将校正日志中记录的出错前文件中的相应的客户端数据更新到文件的相应的客户端数据中,以对文件的相应的客户端数据进行恢复。
    若将客户端当前待存储数据更新到第二存储设备的操作类型为修改数据操作,则将预先存储于文件中的各用户操作数据的键值与校正日志的键值进行比较,若两者的键值相同,则将校正日志中记录的出错前文件中的相应的客户端数据更新到文件的相应的客户端数据中,以对文件的相应的客户端数据进行恢复。若校正日志中记录有文件的原始数据,则用校正日志中记录的文件的原始数据替换客户端的当前数据。
    若将客户端当前待存储数据更新到第二存储设备的更新操作类型为删除数据操作,则将预先存储于文件中的各客户端数据的键值与校正日志的键值进行比较,若两者的键值相同,则将校正日志中记录的出错前文件中的相应的客户端数据更新到文件的相应的客户端数据中,以对文件的相应的客户端数据进行恢复。
    在本发明的实施例中,本发明通过各写请求根据客户端关键数据将各写请求映射到相应的写服务处理单元,判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将客户端当前待存储数据更新到文件的相应的客户端数据中。还在数据成功更新到文件中后,再将各客户端当前待存储数据更新到文件的对应的第二存储设备中,以保证第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。并在数据未成功更新到第二存储设备时,记录未更新成功的错误校正日志。并根据错误校正日志校正文件中的相应的客户端数据,以使第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。这样,采用第 一存储设备结合第二存储设备实现了对客户端数据的双层存储。另外,多个写操作可以同时进行,可以将写请求均摊到各个写操作中,从而解决了仅有单个写操作时数据存储过程中网络流量消耗过大的问题,不会出现锁表的问题,还提高了存储速度。此外,通过将数据更新到文件和第二存储设备中以及出错时通过记录错误日志的方式进行数据恢复,从而保证了第二存储设备和第一存储设备的文件中存储的数据的强一致性,并且出错时能够对数据进行有效恢复。
    图4是本发明实施例提出的数据存储装置的主要架构框图。请参阅图4,数据存储装置包括:请求接收模块401、以及写服务处理单元,写服务处理单元包括判断模块403。
    更具体地,请求接收模块401,用于接收至少一写请求,并根据客户端关键数据将各写请求映射到相应的写服务处理单元。
    其中,写请求用于请求将客户端当前待存储数据存储到第一存储设备409中。客户端关键数据可以为客户端的识别信息,例如客户端的账号或ID等信息。
    判断模块403,用于判断第一存储设备409的文件中是否存储有相应的客户端数据,若是,则从第一存储设备409的文件对应的第二存储设备411(例如缓存)中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将相应的客户端当前待存储数据更新到文件的相应的客户端数据中。
    此外,判断模块403,还用于判断若文件中未存储有相应的客户端数据,则将相应的客户端当前待存储数据存储至文件的末尾,并记录客户端数据在文件中的起始存储位置。
    此外,数据存储装置的写服务处理单元还可以包括:更新模块405、以及错误校正模块407。
    更新模块405,用于判断相应的客户端当前待存储数据更新到文件中是否更新成功,若成功,则将相应的客户端当前待存储数据更新到文件的对应的第二存储设备411中,以保证第一存储设备409的文件中与对应的第二存储设备411中的各客户端数据保持一致。
    错误校正模块407,用于判断相应的客户端当前待存储数据更新到第二存储设备411是否更新成功,若不成功,则记录未更新成功的错误校正日志。
    其中,错误校正日志包括将相应的客户端当前待存储数据更新到第二存储设备411的操作类型、出错时间、相应的客户端关键数据、出错前后文件中的相应的客户端数据。
    此外,错误校正模块407,还用于根据错误校正日志校正文件中的相应的客户端数据,以使第一存储设备409的文件中与对应的第二存储设备411中的各客户端数据保持一致。
    此外,错误校正模块407,还用于将预先存储于文件中的相应的客户端数据的键值与校正日志的键值进行比较,若两者的键值相同,则将校正日志中记录的出错前文件中的相应的客户端数据更新到文件的相应的客户端数据中,以对文件的相应的客户端数据进行恢复。
    在本发明实施例中,本发明通过各写请求根据客户端关键数据将各写请求映射到相应的写服务处理单元,判断第一存储设备的文件中是否存储有相应的客户端数据,若是,则从第一存储设备的文件对应的第二存储设备中获得相应的客户端数据在文件中的起始存储位置,根据起始存储位置读取存储于文件中的相应的客户端数据,将客户端当前待存储数据更新到文件的相应的客户端数据中。还在数据成功更新到文件中后,再将各客户端当前待存储数据更新到文件的对应的第二存储设备中,以保证第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。并在数 据未成功更新到第二存储设备时,记录未更新成功的错误校正日志。并根据错误校正日志校正文件中的相应的客户端数据,以使第一存储设备的文件中与对应的第二存储设备中的各客户端数据保持一致。这样,采用第一存储设备结合第二存储设备实现了对客户端数据的双层存储。另外,多个写操作可以同时进行,可以将写请求均摊到各个写操作中,从而解决了仅有单个写操作时数据存储过程中网络流量消耗过大的问题,不会出现锁表的问题,还提高了存储速度。此外,通过将数据更新到文件和第二存储设备中以及出错时通过记录错误日志的方式进行数据恢复,从而保证了第二存储设备和第一存储设备的文件中存储的数据的强一致性,并且出错时能够对数据进行有效恢复。
    图5是本发明实施例提出的数据读取方法的步骤流程图。请参阅图5,本发明实施例的数据读取方法可包括以下步骤S501-S503:
    步骤S501:接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元。其中,此读请求用于请求读取客户端数据,此读服务处理单元对应第一存储设备的文件及第二存储设备。
    本步骤中,客户端关键数据可以为客户端的识别信息,例如客户端的账号或ID等信息。可以有多个读服务处理单元,各个读服务处理单元将读请求进行合理映射(即各个读请求对应到相应的读服务处理单元中),以达到同时可以处理多个读操作的目的。
    步骤S501前具体还可包括步骤:在第一存储设备文件中的客户端数据更新后,将第一存储设备文件中的客户端数据实时更新到第一存储设备的文件对应的第二存储设备中。
    其中,第一存储设备文件中的客户端数据与第一存储设备的文件对应的第二存储设备中存储的客户端数据的存储方式可以相同,即都以相同的文件存储形式。
    将第一存储设备文件中的客户端数据实时更新到第一存储设备的文件对应的第二存储设备中的方法可以如下:判断第二存储设备中是否存储有相应的客户端数据;若是,则从第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据,将第一存储设备文件中的客户端数据更新到第二存储设备的相应的客户端数据中。若第二存储设备中未存储有相应的客户端数据,则将相应的第一存储设备文件中的客户端数据存储至第二存储设备的文件的末尾。
    步骤S503:从服务处理单元对应的第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。
    本步骤中,可以根据实际需要预先将相应的客户端数据的起始存储位置存储在存储设备中。该第二存储设备例如可以为缓存,其存取速度快,因此,本步骤中,通过快速从第二存储设备中读取客户端数据的起始存储位置,从而可以快速读取存储于第二存储设备中的客户端的数据。
    在本发明实施例中,本发明根据客户端关键数据将各读请求映射到相应的读服务处理单元,再从第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。这样,多个读操作可以同时进行,可以将读请求均摊到各个读操作中,从而解决了仅有单个读操作时数据读取过程中网络流量消耗过大的问题,此外,还通过读取起始位置再获取客户端数据的流程,极大地提高了读取速度。
    图6是本发明实施例提出的数据读取装置的主要架构框图。请参阅图6,数据读取装置包括:接收模块601、以及读服务处理单元,读服务处理单元包括读取模块603。
    更具体地,接收模块601,用于接收至少一读请求,根据客户端关键数据将各读请求映射到相应的读服务处理单元,读请求用于请求读取客户端数据,读服务处理单元对应第一存储设备的文件及第二存储设备。
    读取模块603,用于从服务处理单元对应的第二存储设备(例如存储设备605)中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。
    此外,数据读取装置还可以包括:更新模块607。
    更新模块607,用于在第一存储设备文件中的客户端数据更新后,将第一存储设备文件中的客户端数据实时更新到第一存储设备的文件对应的第二存储设备中。
    此外,更新模块607,还用于在第一存储设备文件中的客户端数据更新后,判断第二存储设备中是否存储有相应的客户端数据;若是,则从第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据,将第一存储设备文件中的客户端数据更新到第二存储设备的相应的客户端数据中。
    此外,更新模块607,还用于判断若第二存储设备中未存储有相应的客户端数据,则将相应的第一存储设备文件中的客户端数据存储至第二存储设备的文件的末尾。
    在本发明实施例中,本发明根据客户端关键数据将各读请求映射到相应的读服务处理单元,再从第二存储设备中获得相应的客户端数据的起始存储位置,根据起始存储位置读取存储于第二存储设备中的相应的客户端数据。这样,多个读操作可以同时进行,可以将读请求均摊到各个读操作中,从而解决了仅有单个读操作时数据读取过程中网络流量消耗过大的问题,此外,还通过读取起始位置再获取客户端数据的流程,极大地提高了读取速度。
    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
    以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

    关 键  词:
    数据 存储 读取 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:数据存储、读取方法及数据存储、读取装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6113302.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1