CN106126374B - 数据写入方法、数据读取方法及装置 - Google Patents

数据写入方法、数据读取方法及装置 Download PDF

Info

Publication number
CN106126374B
CN106126374B CN201610457810.9A CN201610457810A CN106126374B CN 106126374 B CN106126374 B CN 106126374B CN 201610457810 A CN201610457810 A CN 201610457810A CN 106126374 B CN106126374 B CN 106126374B
Authority
CN
China
Prior art keywords
data
data center
write
center
failure
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.)
Active
Application number
CN201610457810.9A
Other languages
English (en)
Other versions
CN106126374A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610457810.9A priority Critical patent/CN106126374B/zh
Publication of CN106126374A publication Critical patent/CN106126374A/zh
Application granted granted Critical
Publication of CN106126374B publication Critical patent/CN106126374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Abstract

本发明公开了一种数据写入方法、数据读取方法及装置,属于数据读写技术领域。所述方法包括:接收终端发送的数据写入请求;数据写入请求中携带有数据;写入数据至第一数据中心和第二数据中心;若在写入数据至目标数据中心时写入失败,则记录写入失败的数据;目标数据中心为第一数据中心,或者,第二数据中心;在目标数据中心处于可写状态时,将记录的写入失败的数据再次写入至目标数据中心;当第一数据中心和/或第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,数据读取服务器从处于可读可写状态的数据中心中读取数据。解决了现有技术中数据读取效率较低的问题。

Description

数据写入方法、数据读取方法及装置
技术领域
本发明实施例涉及数据读写技术领域,特别涉及一种数据写入方法、数据读取方法及装置。
背景技术
CKV(Cloud Key Value)是高性能、低成本、高可用、持久化的数据存储中心。
为了保证数据的安全,数据写入服务器在将数据成功写入至主CKV之后,可以将主CKV中的数据备份到备CKV。此后,当数据读取服务器需要读取数据时,数据读取服务器先从主CKV中读取,若读取失败,则从备CKV中读取。
发明人在实现本发明实施例的过程中,发现现有技术至少存在以下问题:
当主CKV存在异常时,由于数据读取服务器无法从主CKV中读取到数据,而需要继续从备CKV中读取,因此上述方法中的数据读取效率较低。
发明内容
为了解决上述现有技术中数据读取效率较低的问题,本发明实施例提供了一种数据写入方法、数据读取方法及装置。所述技术方案如下:
第一方面,提供了一种数据写入方法,用于数据写入服务器中,所述方法包括:
接收终端发送的数据写入请求;所述数据写入请求中携带有数据;
写入所述数据至第一数据中心和第二数据中心;
若在写入数据至目标数据中心时写入失败,则记录写入失败的数据;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心;
在所述目标数据中心处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;其中,当所述第一数据中心和/或所述第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,所述数据读取服务器从处于可读可写状态的数据中心中读取所述数据。
第二方面,提供了一种数据读取方法,用于数据读取服务器中,所述方法包括:
接收数据读取请求;
根据所述数据读取请求,从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据;所述第一数据中心和所述第二数据中心中的数据为数据写入服务器通过预设写入方式写入的;所述预设写入方式为所述数据写入服务器同时写入所述数据至所述第一数据中心和所述第二数据中心,且在写入至目标数据中心写入失败时,记录写入失败的数据,并在所述目标数据中心之后处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心。
第三方面,提供了一种数据写入装置,用于数据写入服务器中,所述装置包括:
接收模块,用于接收终端发送的数据写入请求;所述数据写入请求中携带有数据;
写入模块,用于写入所述数据至第一数据中心和第二数据中心;
记录模块,用于在写入数据至目标数据中心时写入失败时,记录写入失败的数据;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心;
所述写入模块,还用于在所述目标数据中心处于可写状态时,将所述记录模块记录的所述写入失败的数据再次写入至所述目标数据中心;其中,当所述第一数据中心和/或所述第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,所述数据读取服务器从处于可读可写状态的数据中心中读取所述数据。
第四方面,提供了一种数据读取装置,用于数据读取服务器中,所述装置包括:
接收模块,用于接收数据读取请求;
读取模块,用于根据所述数据读取请求,从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据;所述第一数据中心和所述第二数据中心中的数据为数据写入服务器通过预设写入方式写入的;所述预设写入方式为所述数据写入服务器同时写入所述数据至所述第一数据中心和所述第二数据中心,在写入至目标数据中心写入失败时,记录写入失败的数据,并在所述目标数据中心之后处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心。
本发明实施例提供的技术方案带来的有益效果包括:
数据写入服务器通过在写入数据至第一数据中心和第二数据中心时,若其中一个写入失败,则记录写入失败的数据,并在该数据中心之后处于可写状态时,将记录的写入失败的数据再次写入至该数据中心;此后,在数据读取服务器接收到数据读取请求时,数据读取服务器从处于可读可写状态的数据中心中读取数据;由于即使某一数据中心写入失败,数据写入服务器也会在该数据中心后续处于可写状态时重新写入,所以数据读取服务器通过从处于可读可写状态的数据中心中读取数据,解决了现有技术中数据读取效率较低的问题;达到了数据读取服务器可以从处于可读可写状态的数据中心中直接读取到数据,进而提高数据读取效率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例所涉及的实施环境的示意图;
图2是本发明一个实施例提供的数据读写方法的流程图;
图3A和图3B是本发明另一个实施例提供的数据读写方法的流程图;
图4是本发明一个实施例提供的数据写入装置的结构示意图;
图5是本发明另一实施例提供的数据读取装置的结构示意图;
图6是本发明一个实施例提供的服务器的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的数据读写方法所涉及的实施环境的示意图,如图1所示,该实施环境包括数据写入服务器110、数据读取服务器120、第一数据中心130和第二数据中心140。
数据写入服务器110可以为一台服务器或者由多台服务器组成的服务器集群。数据写入服务器110通过有线或者无线网络与第一数据中心130和第二数据中心140相连,该数据写入服务器110用于写入数据至第一数据中心130和第二数据中心140。
数据读取服务器120可以为一台服务器或者由多台服务器组成的服务器集群。数据读取服务器120通过有线或者无线网络与第一数据中心130和第二数据中心140相连,该数据读取服务器120用于从第一数据中心130和第二数据中心140中读取数据。
第一数据中心130和第二数据中心140为数据存储中心,其用于存储数据。实际实现时,第一数据中心130和第二数据中心140可以分别为CKV中心。
本实施例只是以数据写入服务器110和数据读取服务器120为不同服务器来举例,可选的,数据写入服务器110和数据读取服务器120还可以实现为同一个服务器,本实施例对此并不做限定。并且,本实施例也只是以实施环境中包括上述几种设备来举例,可选的,根据实际需求,实施环境中还可以包括其他设备,本实施例对此并不做限定。
请参考图2,其示出了本发明一个实施例提供的数据读写方法的方法流程图,本实施例以该数据读写方法应用于图1所示的实施环境中来举例。如图2所示,该数据读写方法可以包括:
步骤201,数据写入服务器接收终端发送的数据写入请求;数据写入请求中携带有数据。
步骤202,数据写入服务器写入数据至第一数据中心和第二数据中心。
步骤203,若在写入数据至目标数据中心时写入失败,则数据写入服务器记录写入失败的数据。
其中,目标数据中心为第一数据中心,或者,第二数据中心。
步骤204,数据写入服务器在目标数据中心处于可写状态时,将记录的写入失败的数据再次写入至目标数据中心。
步骤205,数据读取服务器接收数据读取请求。
步骤206,数据读取服务器根据数据读取请求,从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据。
综上所述,本实施例提供的数据读写方法,数据写入服务器通过在写入数据至第一数据中心和第二数据中心时,若其中一个写入失败,则记录写入失败的数据,并在该数据中心之后处于可写状态时,将记录的写入失败的数据再次写入至该数据中心;此后,在数据读取服务器接收到数据读取请求时,数据读取服务器从处于可读可写状态的数据中心中读取数据;由于即使某一数据中心写入失败,数据写入服务器也会在该数据中心后续处于可写状态时重新写入,所以数据读取服务器通过从处于可读可写状态的数据中心中读取数据,解决了现有技术中数据读取效率较低的问题;达到了数据读取服务器可以从处于可读可写状态的数据中心中直接读取到数据,进而提高数据读取效率的效果。
请参考图3A,其示出了本发明另一实施例提供的数据读写方法的方法流程图,本实施例以该数据读写方法用于图1所示的实施环境中来举例说明。如图3A所示,该数据读写方法包括:
步骤301,数据写入服务器接收终端发送的数据写入请求;数据写入请求中携带有数据。
终端需要写入数据时,终端可以发送数据写入请求至数据写入服务器。其中,数据写入请求中携带有需要写入的数据。
步骤302,数据写入服务器写入数据至第一数据中心和第二数据中心。
数据写入服务器接收到数据写入请求之后,将数据写入请求中携带的数据同时写入至第一数据中心和第二数据中心。其中,第一数据中心和第二数据中心可以均为CKV中心。
可选的,数据写入服务器可以获取第一数据中心和第二数据中心的读写状态,当第一数据中心和第二数据中心处于可写状态时,数据写入服务器将数据同时写入至第一数据中心和第二数据中心。
数据写入服务器获取数据中心的读写状态的获取方式包括如下两种:
第一种,对于每个数据中心,数据写入服务器写入预设数据至该数据中心,若成功写入,则说明该数据中心处于可写状态,反之,则处于不可写状态。类似的,数据写入服务器还可以从数据中心中读取数据,若能够成功读取,则该数据中心处于可读状态,反之,则处于不可读状态。
第二种,数据写入服务器发送状态获取请求至状态查询服务器,接收状态查询服务器返回的第一数据中心和第二数据中心的读写状态;其中,状态查询服务器获取读写状态的获取方式与第一种实现方式中数据写入服务器获取读写状态的获取方式类似,本实施例在此不再赘述。并且,实际实现时,状态查询服务器中的状态可以为用于监控数据中心的读写状态的状态监控服务器上报的状态,本实施例对此并不做限定。
另外,本实施例以数据写入服务器同时写入数据至第一数据中心和第二数据中心为例,可选的,数据写入服务器还可以异步写入数据,本实施例对此并不做限定。
数据写入服务器写入数据至第一数据中心和第二数据中心时,可能会存在如下三种结果:第一种,第一数据中心和第二数据中心均写入成功,此时执行步骤303;第二种,第一数据中心和第二数据中心中的目标数据中心写入失败,此时,执行步骤304,其中,目标数据中心为第一数据中心,或者,第二数据中心;第三种,第一数据中心和第二数据中心均写入失败,此时执行步骤307。
步骤303,若第一数据中心和第二数据中心均写入成功,则返回写入成功信息至终端。
步骤304,若在写入数据至目标数据中心时写入失败,则数据写入服务器将写入失败的数据以及写入状态标识关联存储,写入状态标识用于表示目标数据中心写入失败。
具体的,数据服务器可以将写入失败的数据以及写入状态标识关联存储至临时表。
实际实现时,由于第一数据中心和第二数据中心中有一个数据中心已经写入成功,因此,数据写入服务器也可以返回写入成功信息至终端,本实施例在此不再赘述。
由于写入数据至目标数据中心失败,因此,数据写入服务器可以获知该目标数据中心处于不可写状态。
步骤305,数据写入服务器在目标数据中心处于可写状态时,根据写入状态标识将写入失败的数据再次写入至目标数据中心。
当第一数据中心和第二数据中心中的目标数据中心写入失败之后,数据写入服务器可以实时获取该目标数据中心的读写状态,并在该目标数据中心处于可写状态时,数据写入服务器根据对应的写入状态标识将写入失败的数据再次写入至目标数据中心。
可选地,数据写入服务器可以实时获取临时表中表示数据写入失败的写入状态标识所对应的各个数据中心的读写状态,当获取到为可写状态时,数据写入服务器将该状态写入标识所对应的数据实时写入至该数据中心。
步骤306,在将写入失败的数据成功写入至目标数据中心之后,数据写入服务器将写入状态标识更新为用于表示写入目标数据中心成功。
可选地,在将写入失败的数据成功写入至目标数据中心之后,数据写入服务器还可以直接删除存储的写入失败的数据,比如,删除临时表中存储的该写入失败的数据以及对应的写入状态标识,本实施例对此并不做限定。
通过在将写入失败的数据成功写入之后,删除已经成功写入数据,降低了存储数据时所需占用的存储空间。
步骤307,若第一数据中心和第二数据中心均写入失败,则数据写入服务器返回写入失败信息至终端,流程结束。
终端接收到该写入失败信息之后,终端可以再次请求写入数据,也即重新执行步骤301,本实施例在此不再赘述。
步骤308,数据读取服务器接收数据读取请求。
当用户需要读取数据时,用户可以通过终端发送数据读取请求至数据读取服务器,相应的,数据读取服务器可以接收到该数据读取请求。其中,数据读取请求中携带有请求读取的数据的标识。
步骤309,数据读取服务器获取第一数据中心和第二数据中心的地址信息。
数据读取服务器接收到数据读取请求之后,获取第一数据中心和第二数据中心的地址信息。其中,地址信息可以为IP(Internet Protocol,网络互连协议)地址。
步骤310,若邻近的数据中心处于可读可写状态,则数据读取服务器从邻近的数据中心中读取数据。
数据读取服务器获取到第一数据中心和第二数据中心的地址信息之后,数据读取服务器可以根据获取到的地址信息确定第一数据中心和第二数据中心中与自身邻近的数据中心,并获取邻近的该数据中心的读写状态,若获取到的读写状态为可读可写状态,则说明该数据中心中当前存储的数据为最新的数据,此时,数据读取服务器可以从该邻近的数据中心中读取该数据。
步骤311,若邻近的数据中心不处于可读可写状态且另一数据中心处于可读可写状态,则数据读取服务器从另一数据中心中读取数据。
而若邻近的数据中心不处于可读可写状态,则此时数据读取服务器获取另一数据中心的读写状态,若另一数据中心处于可读可写状态,则数据读取服务器从该另一数据中心中读取数据。
可选的,本实施例只是以数据读取服务器在步骤310和步骤311中才获取第一数据中心和第二数据中心的读写状态为例,可选的,数据读取服务器还可以在步骤310之前获取第一数据中心和第二数据中心的读写状态,本实施例对此并不做限定。
需要补充说明的一点是,在步骤309之前,该数据读写方法还可以包括如下步骤:
获取第一数据中心和第二数据中心的读写状态;若第一数据中心和第二数据中心中只有一个数据中心处于可读可写状态,则数据读取服务器直接从处于可读可写状态的数据中心中读取数据;而若第一数据中心和第二数据中心均处于可读可写状态,则数据读取服务器执行步骤308,本实施例对此并不做限定。
需要补充说明的另一点是,实际实现时,若第一数据中心和第二数据中心均不处于可读可写状态;则此时:在邻近的数据中心处于可读状态时,从邻近的数据中心中读取数据。在邻近的数据中心不处于可读状态且另一数据中心处于可读状态时,从另一数据中心中读取数据。
而若第一数据中心和第二数据中心均不处于可读可写状态,也不处于可读状态,则此时,数据读取服务器反馈数据读取失败。
综上所述,本实施例提供的数据读写方法,数据写入服务器通过在写入数据至第一数据中心和第二数据中心时,若其中一个写入失败,则记录写入失败的数据,并在该数据中心之后处于可写状态时,将记录的写入失败的数据再次写入至该数据中心;此后,在数据读取服务器接收到数据读取请求时,数据读取服务器从处于可读可写状态的数据中心中读取数据;由于即使某一数据中心写入失败,数据写入服务器也会在该数据中心后续处于可写状态时重新写入,所以数据读取服务器通过从处于可读可写状态的数据中心中读取数据,解决了现有技术中数据读取效率较低的问题;达到了数据读取服务器可以从处于可读可写状态的数据中心中直接读取到正确的数据,进而提高数据读取效率的效果。
通过优先从邻近的数据中心中读取数据,达到了可以进一步提高数据读取效率的效果。
在上述实施例中,请参考图3B,该数据读写方法还可以包括:
步骤312,数据写入服务器删除用于表示数据写入成功的写入状态标识所对应的数据。
可选的,本步骤可以包括:
第一,确定存储的各个写入状态标识中表示数据写入成功的标识。
数据写入服务器可以确定存储的各个写入状态标识中,由表示数据写入失败更新为表示数据写入成功的状态标识。
可选的,数据写入服务器可以每隔预定时间间隔确定表示数据写入成功的写入状态标识,或者定时确定表示数据写入成功的写入状态标识,本实施例对此并不做限定。
第二,数据写入服务器删除确定的写入状态标识所对应的数据。
由于写入状态表示数据写入成功时,说明对应的数据已经成功写入至数据中心,所以此时,为了降低存储数据所需占用的存储空间,数据写入服务器可以删除确定的写入状态标识所对应的数据。
通过确定各个写入状态标识中表示数据写入成功的写入状态标识,进而将确定的各个写入状态标识所对应的数据统一删除,提高了数据写入服务器删除无用数据的删除效率。
需要补充说明的是,上述实施例中有关数据写入服务器侧的步骤可以单独实现成为数据写入服务器侧的数据写入方法,有关数据读取服务器侧的步骤可以单独实现成为数据读取服务器侧的数据读取方法。
请参考图4,其示出了本发明一个实施例提供的数据写入装置的结构示意图,本实施例以该数据写入装置用于数据写入服务器中来举例。如图4所示,该数据写入装置可以包括:接收模块410、写入模块420和记录模块430。
接收模块410,用于接收终端发送的数据写入请求;所述数据写入请求中携带有数据;
写入模块420,用于写入所述数据至第一数据中心和第二数据中心;
记录模块430,用于在写入数据至目标数据中心时写入失败时,记录写入失败的数据;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心;
所述写入模块420,还用于在所述目标数据中心处于可写状态时,将所述记录模块记录的所述写入失败的数据再次写入至所述目标数据中心;其中,当所述第一数据中心和/或所述第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,所述数据读取服务器从处于可读可写状态的数据中心中读取所述数据。
综上所述,本实施例提供的数据写入装置,数据写入服务器通过在写入数据至第一数据中心和第二数据中心时,若其中一个写入失败,则记录写入失败的数据,并在该数据中心之后处于可写状态时,将记录的写入失败的数据再次写入至该数据中心;此后,在数据读取服务器接收到数据读取请求时,数据读取服务器从处于可读可写状态的数据中心中读取数据;由于即使某一数据中心写入失败,数据写入服务器也会在该数据中心后续处于可写状态时重新写入,所以数据读取服务器通过从处于可读可写状态的数据中心中读取数据,解决了现有技术中数据读取效率较低的问题;达到了数据读取服务器可以从处于可读可写状态的数据中心中直接读取到正确的数据,进而提高数据读取效率的效果。
基于上述实施例的一个可选实施例中,所述记录模块430,还用于将所述写入失败的数据以及写入状态标识关联存储,所述写入状态标识用于表示所述目标数据中心写入失败;
所述写入模块420,还用于在所述目标数据中心处于可写状态时,根据所述写入状态标识将所述写入失败的数据再次写入至所述目标数据中心;在将所述写入失败的数据成功写入至所述目标数据中心之后,将所述写入状态标识更新为用于表示所述目标数据中心写入成功。
可选的,所述装置还包括:
删除模块,用于删除用于表示数据写入成功的写入状态标识所对应的数据。
可选的,所述记录模块430,还用于将所述写入失败的数据以及所述写入状态标识关联存储至临时表。
可选的,所述装置还包括:
反馈模块,用于在写入数据至所述第一数据中心和所述第二数据中心时均写入失败时,反馈写入失败信息至所述终端。
请参考图5,其示出了本发明一个实施例提供的数据读取装置的结构示意图,本实施例以该数据读取装置用于数据读取服务器中来举例。如图5所示,该数据读取装置可以包括:接收模块510和读取模块520。
接收模块510,用于接收数据读取请求;
读取模块520,用于从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据;所述第一数据中心和所述第二数据中心中的数据为数据写入服务器同时写入至两者,且在写入至目标数据中心写入失败时,记录写入失败的数据,并在所述目标数据中心之后处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心。
综上所述,本实施例提供的数据读取装置,数据写入服务器通过在写入数据至第一数据中心和第二数据中心时,若其中一个写入失败,则记录写入失败的数据,并在该数据中心之后处于可写状态时,将记录的写入失败的数据再次写入至该数据中心;此后,在数据读取服务器接收到数据读取请求时,数据读取服务器从处于可读可写状态的数据中心中读取数据;由于即使某一数据中心写入失败,数据写入服务器也会在该数据中心后续处于可写状态时重新写入,所以数据读取服务器通过从处于可读可写状态的数据中心中读取数据,解决了现有技术中数据读取效率较低的问题;达到了数据读取服务器可以从处于可读可写状态的数据中心中直接读取到正确的数据,进而提高数据读取效率的效果。
基于上述实施例的一个可选实施例中,所述读取模块520,还用于:
获取所述第一数据中心和所述第二数据中心的地址信息;
在邻近的数据中心处于可读可写状态时,从邻近的所述数据中心中读取所述数据;
在邻近的所述数据中心不处于可读可写状态且另一数据中心处于可读可写状态时,从所述另一数据中心中读取所述数据。
可选的,所述读取模块520,还用于在所述第一数据中心和所述第二数据中心均不处于可读可写状态时:
在邻近的数据中心处于可读状态时,从邻近的所述数据中心中读取所述数据;
在邻近的所述数据中心不处于可读状态且另一数据中心处于可读状态时,从所述另一数据中心中读取所述数据。
需要说明的是,上述实施例提供的数据写入装置和数据读取装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据写入装置与数据写入方法的方法实施例属于同一构思,数据读取装置与数据读取方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图6,其示出了本发明一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的服务器侧的方法。具体来讲:
所述服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
所述基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。所述基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本发明的各种实施例,所述服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在所述系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述服务器侧的方法的指令。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种数据写入方法,其特征在于,所述方法包括:
接收终端发送的数据写入请求,所述数据写入请求中携带有数据;
写入所述数据至第一数据中心和第二数据中心;
若在写入数据至目标数据中心时写入失败,则记录写入失败的数据;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心;
在所述目标数据中心处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;其中,当所述第一数据中心和/或所述第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,所述数据读取服务器从处于可读可写状态的数据中心中读取所述数据。
2.根据权利要求1所述的方法,其特征在于,所述记录写入失败的数据,包括:
将所述写入失败的数据以及写入状态标识关联存储,所述写入状态标识用于表示写入所述目标数据中心失败;
所述在所述目标数据中心处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心,包括:
在所述目标数据中心处于可写状态时,根据所述写入状态标识将所述写入失败的数据再次写入至所述目标数据中心;
在将所述写入失败的数据成功写入至所述目标数据中心之后,将所述写入状态标识更新为用于表示写入所述目标数据中心成功。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
删除用于表示数据写入成功的写入状态标识所对应的数据。
4.根据权利要求2所述的方法,其特征在于,所述将所述写入失败的数据以及写入状态标识关联存储,包括:
将所述写入失败的数据以及所述写入状态标识关联存储至临时表。
5.根据权利要求1至4任一所述的方法,其特征在于,
若在写入数据至所述第一数据中心和所述第二数据中心时均写入失败,则反馈写入失败信息至所述终端。
6.一种数据读取方法,其特征在于,所述方法包括:
接收数据读取请求;
根据所述数据读取请求,从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据;所述第一数据中心和所述第二数据中心中的数据为数据写入服务器通过预设写入方式写入的;所述预设写入方式为所述数据写入服务器同时写入所述数据至所述第一数据中心和所述第二数据中心,在写入至目标数据中心写入失败时,记录写入失败的数据,并在所述目标数据中心之后处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心。
7.根据权利要求6所述的方法,其特征在于,所述从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据,包括:
获取所述第一数据中心和所述第二数据中心的地址信息;
若邻近的数据中心处于可读可写状态,则从邻近的所述数据中心中读取所述数据;
若邻近的所述数据中心不处于可读可写状态且另一数据中心处于可读可写状态,则从所述另一数据中心中读取所述数据。
8.根据权利要求6所述的方法,其特征在于,若所述第一数据中心和所述第二数据中心均不处于可读可写状态;
则在邻近的数据中心处于可读状态时,从邻近的所述数据中心中读取所述数据;
在邻近的所述数据中心不处于可读状态且另一数据中心处于可读状态时,从所述另一数据中心中读取所述数据。
9.一种数据写入装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的数据写入请求,所述数据写入请求中携带有数据;
写入模块,用于写入所述数据至第一数据中心和第二数据中心;
记录模块,用于在写入数据至目标数据中心时写入失败时,记录写入失败的数据;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心;
所述写入模块,还用于在所述目标数据中心处于可写状态时,将所述记录模块记录的所述写入失败的数据再次写入至所述目标数据中心;其中,当所述第一数据中心和/或所述第二数据中心处于可读可写状态且数据读取服务器接收到数据读取请求之后,所述数据读取服务器从处于可读可写状态的数据中心中读取所述数据。
10.根据权利要求9所述的装置,其特征在于,
所述记录模块,还用于将所述写入失败的数据以及写入状态标识关联存储,所述写入状态标识用于表示写入所述目标数据中心失败;
所述写入模块,还用于在所述目标数据中心处于可写状态时,根据所述写入状态标识将所述写入失败的数据再次写入至所述目标数据中心;在将所述写入失败的数据成功写入至所述目标数据中心之后,将所述写入状态标识更新为用于表示写入所述目标数据中心成功。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
删除模块,用于删除用于表示数据写入成功的写入状态标识所对应的数据。
12.根据权利要求11所述的装置,其特征在于,
所述记录模块,还用于将所述写入失败的数据以及所述写入状态标识关联存储至临时表。
13.根据权利要求9至12任一所述的装置,其特征在于,所述装置还包括:
反馈模块,用于在写入数据至所述第一数据中心和所述第二数据中心时均写入失败时,反馈写入失败信息至所述终端。
14.一种数据读取装置,其特征在于,所述装置包括:
接收模块,用于接收数据读取请求;
读取模块,用于根据所述数据读取请求,从第一数据中心和第二数据中心中处于可读可写状态的数据中心中读取数据;所述第一数据中心和所述第二数据中心中的数据为数据写入服务器通过预设写入方式写入的;所述预设写入方式为所述数据写入服务器同时写入至所述第一数据中心和所述第二数据中心,在写入至目标数据中心写入失败时,记录写入失败的数据,并在所述目标数据中心之后处于可写状态时,将记录的所述写入失败的数据再次写入至所述目标数据中心;所述目标数据中心为所述第一数据中心,或者,所述第二数据中心。
15.根据权利要求14所述的装置,其特征在于,所述读取模块,还用于:
获取所述第一数据中心和所述第二数据中心的地址信息;
在邻近的数据中心处于可读可写状态时,从邻近的所述数据中心中读取所述数据;
在邻近的所述数据中心不处于可读可写状态且另一数据中心处于可读可写状态时,从所述另一数据中心中读取所述数据。
16.根据权利要求14所述的装置,其特征在于,所述读取模块,还用于在所述第一数据中心和所述第二数据中心均不处于可读可写状态时:
在邻近的数据中心处于可读状态时,从邻近的所述数据中心中读取所述数据;
在邻近的所述数据中心不处于可读状态且另一数据中心处于可读状态时,从所述另一数据中心中读取所述数据。
CN201610457810.9A 2016-06-22 2016-06-22 数据写入方法、数据读取方法及装置 Active CN106126374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610457810.9A CN106126374B (zh) 2016-06-22 2016-06-22 数据写入方法、数据读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610457810.9A CN106126374B (zh) 2016-06-22 2016-06-22 数据写入方法、数据读取方法及装置

Publications (2)

Publication Number Publication Date
CN106126374A CN106126374A (zh) 2016-11-16
CN106126374B true CN106126374B (zh) 2018-09-25

Family

ID=57268450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610457810.9A Active CN106126374B (zh) 2016-06-22 2016-06-22 数据写入方法、数据读取方法及装置

Country Status (1)

Country Link
CN (1) CN106126374B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108118B (zh) * 2016-11-24 2021-02-26 深圳大心电子科技有限公司 数据写入方法以及存储控制器
CN107122139A (zh) * 2017-04-28 2017-09-01 深圳天珑无线科技有限公司 数据写入方法及装置、数据读取方法及装置
CN109725842B (zh) * 2017-10-30 2022-10-11 伊姆西Ip控股有限责任公司 加速随机写入布局以用于混合存储系统内的桶分配的系统和方法
CN108062224B (zh) * 2017-12-29 2021-04-23 北京奇虎科技有限公司 基于文件句柄的数据读写方法、装置及计算设备
CN109324887A (zh) * 2018-09-28 2019-02-12 中国平安财产保险股份有限公司 稽核数据并行加工方法及系统
CN109241074B (zh) * 2018-09-28 2023-09-26 中国平安财产保险股份有限公司 稽核数据自动加工方法、装置、计算机设备及存储介质
CN111198783B (zh) * 2018-11-16 2023-04-07 阿里巴巴集团控股有限公司 数据存取方法、装置、系统、设备及存储介质
CN112084200A (zh) * 2020-08-24 2020-12-15 中国银联股份有限公司 数据读写处理方法、数据中心、容灾系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475716A (zh) * 2013-09-11 2013-12-25 北京京东尚科信息技术有限公司 通过共享存储实现数据共享的方法和系统
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
CN104283956A (zh) * 2014-09-30 2015-01-14 腾讯科技(深圳)有限公司 强一致性分布式数据存储方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110018605A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 자동 백업기능을 갖는 저장장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475716A (zh) * 2013-09-11 2013-12-25 北京京东尚科信息技术有限公司 通过共享存储实现数据共享的方法和系统
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
CN104283956A (zh) * 2014-09-30 2015-01-14 腾讯科技(深圳)有限公司 强一致性分布式数据存储方法、装置及系统

Also Published As

Publication number Publication date
CN106126374A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106126374B (zh) 数据写入方法、数据读取方法及装置
US11340672B2 (en) Persistent reservations for virtual disk using multiple targets
CN103761190B (zh) 数据处理方法及装置
US8924664B2 (en) Logical object deletion
US9280469B1 (en) Accelerating synchronization of certain types of cached data
US10489289B1 (en) Physical media aware spacially coupled journaling and trim
CN104935654A (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
EP2879040A1 (en) Data storage method, data storage apparatus, and storage device
CN105897859B (zh) 一种存储系统
US11868625B2 (en) Alert tracking in storage
CN109445687A (zh) 一种数据存储方法以及协议服务器
US7882086B1 (en) Method and system for portset data management
CN107329704A (zh) 一种缓存镜像方法及控制器
US20090024768A1 (en) Connection management program, connection management method and information processing apparatus
CN110633046A (zh) 一种分布式系统的存储方法、装置、存储设备及存储介质
CN108459824A (zh) 一种数据修改写方法及装置
CN107544869A (zh) 一种数据恢复方法和装置
CN110209341A (zh) 一种数据写入方法、装置和存储设备
US9176675B1 (en) Fast-zeroing in a file system
CN111435286B (zh) 一种数据存储方法、装置和系统
CN108304142A (zh) 一种数据管理方法和装置
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN109254958A (zh) 分布式数据读写方法、设备及系统
US20060031634A1 (en) Management method for cache memory, storage apparatus, and computer system
US20150026126A1 (en) Method of replicating data in asymmetric file system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant