CN105339906B - 控制对永久存储设备的数据写入的方法 - Google Patents

控制对永久存储设备的数据写入的方法 Download PDF

Info

Publication number
CN105339906B
CN105339906B CN201480033917.XA CN201480033917A CN105339906B CN 105339906 B CN105339906 B CN 105339906B CN 201480033917 A CN201480033917 A CN 201480033917A CN 105339906 B CN105339906 B CN 105339906B
Authority
CN
China
Prior art keywords
data
computer
caching
permanent storage
version number
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.)
Expired - Fee Related
Application number
CN201480033917.XA
Other languages
English (en)
Other versions
CN105339906A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN105339906A publication Critical patent/CN105339906A/zh
Application granted granted Critical
Publication of CN105339906B publication Critical patent/CN105339906B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

第二计算机向第一计算机传送包括在缓存中更新的副本数据的标识信息和版本号的确认数据。基于所接收到的来自第二计算机的确认数据和存储在永久存储设备中的信息,第一计算机从确认数据中提取与需要向永久存储设备写入的副本数据相对应的标识信息和版本号,并向第二计算机传送包括所提取的标识信息和版本号的响应数据。基于所接收到的来自第一计算机的响应数据和存储在缓存中的信息,第二计算机确定将被传送到第一计算机的在缓存中的副本数据以便向永久存储设备写入。

Description

控制对永久存储设备的数据写入的方法
相关申请的交叉引用
本公开基于并且要求2013年6月12日提交的日本专利申请No.2013-123717的优先权权益,其全部公开内容通过引用合并于此。
技术领域
本公开涉及控制对永久存储设备的数据写入的方法、计算机系统、存储计算机、缓存计算机和程序。
背景技术
最近,随着移动电话和互联被广泛使用,要处理的数据量增加。这样,有利的是以更快的速度处理大量数据。在这样的情况下,作为用于存储大量数据的系统,对键值存储的需求在增加。在键值存储中,使数据(值)与唯一符号(键)相关联,并且它们被成对地存储。在下文中,键和值被配对的数据被称为KV数据。具体地,具有能够在多个服务器中分布式地存储KV数据单元的功能的系统被称为分布式KVS。作为分布式数据库的一种类型的分布式KVS主要在不需要很强的数据一致性但是关注可扩展性和吞吐量的系统中。
发明内容
一方面是提供一种控制方法,该控制方法控制在永久存储设备上的数据的反映。另一方面是提供一种减少在计算机之间浪费地传送和接收数据的控制方法。
根据本发明的第一示例性方面,一种控制对永久存储设备的数据写入的方法是控制保存在计算机系统中的缓存中的数据的写入的方法。计算机系统包括第一计算机和多个第二计算机。第一计算机包括存储数据、数据的标识信息和数据的版本号的集合的永久存储设备,并且第二计算机中的每一个包括保存从永久存储设备中获取的数据的副本数据的缓存。该方法包括
由第二计算机向第一计算机传送确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号;
由第一计算机基于从第二计算机接收的确认数据和存储在永久存储设备中的信息,来从第二计算机接收的确认数据中提取与将写入永久存储设备的副本数据相对应的标识信息和版本号,并且向第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据;以及
由第二计算机基于从第一计算机接收的响应数据和存储在缓存中的信息,来确定要写入永久存储设备的、要传送到第一计算机的缓存中的副本数据。
根据本发明的第二示例性方面,一种计算机系统包括
第一计算机;以及
多个第二计算机。
第一计算机包括
存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备;以及
第一控制器,并且
第二计算机中的每一个包括
保存从永久存储设备获取的数据的副本数据的缓存;以及
第二控制器。
第二计算机的第二控制器向第一计算机传送确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号,
基于从第二计算机接收的确认数据和存储在永久存储设备中的信息,第一计算机的第一控制器从第二计算机接收的确认数据中提取与将写入永久存储设备的副本数据相对应的标识信息和版本号,并且向第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
基于从第一计算机接收的响应数据和存储在缓存中的信息,第二计算机的第二控制器确定要传送到第一计算机、以要写入永久存储设备的缓存中所存储的副本数据。
根据本发明的第三示例性方面,一种存储计算机是通过网络与多个缓存计算机连接的存储计算机,多个缓存计算机中的每一个具有缓存。该存储计算机包括
存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备;以及
控制器。
从在缓存中保存存储在永久存储设备中的数据的副本数据的缓存计算机中,控制器接收确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号,
基于所接收的确认数据和存储在永久存储设备中的信息,从缓存计算机接收的确认数据中提取与将写入永久存储设备的副本数据相对应的标识信息和版本号,并且
向缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
根据本发明的第四示例性方面,一种缓存计算机是通过网络与存储计算机连接的缓存计算机。该存储计算机包括存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备。该缓存计算机包括
保存从永久存储设备获取的数据的副本数据的缓存;以及
控制器。
控制器向存储计算机传送确认数据,该确认数据包括在缓存中更新的副本数据的标识信息和版本号,
从存储计算机接收包括与将写入到永久存储设备的副本数据相对应的标识信息和版本号的响应数据,并且
基于从第一计算机接收的响应数据和存储在缓存中的信息,来确定要传送到存储计算机以将被写入永久存储设备的缓存中的副本数据。
根据本发明的第五示例性方面,一种程序是用于使得存储计算机用作通过网络与多个缓存计算机连接的存储计算机的程序,多个缓存计算机中的每一个具有缓存:
永久存储设备,该永久存储设备存储数据、数据的标识信息以及数据的版本号的集合;以及
控制器。
从在缓存中保存存储在永久存储设备中的数据的副本数据的缓存计算机,控制器接收确认数据,该确认数据包括在缓存中更新的副本数据的标识信息和版本号,
基于接收的确认数据和存储在永久存储设备中的信息,从缓存计算机接收的确认数据中提取与将写入永久存储设备的副本数据相对应的标识信息和版本号,并且
向缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
根据本发明的第六示例性方面,一种程序是用于使得与存储计算机连接的缓存计算机用作包括永久存储设备的存储计算机的程序,永久存储设备存储数据、数据的标识信息以及数据的版本号的集合:
保存从永久存储设备获取的数据的副本数据的缓存;以及
控制器。
控制器向存储计算机传送包括在缓存中更新的副本数据的标识信息和版本号的确认数据,
从存储计算机接收包括与将写入永久存储设备的副本数据相对应的标识信息和版本号的响应数据,并且
基于从第一计算机接收的响应数据和存储在缓存中的信息,确定要被传送到存储计算以写入永久存储设备的缓存中的副本数据。
附图说明
图1是根据第一示例性实施例的分布式处理系统的框图。
图2是示出根据第一示例性实施例的图1的分布式处理系统的示例性操作的序列图。
图3是用于解释作为第二示例性实施例的前提的分布式缓存数据永久系统的图。
图4是用于解释作为第二示例性实施例的前提的分布式缓存数据永久系统的缓存数据的配置的图。
图5是根据第二示例性实施例的分布式处理系统的框图。
图6是示出图5的第二示例性实施例的操作的流程图。
图7是用于解释根据第二示例性实施例的图3的缓存数据的配置的图。
图8是用于解释根据第二示例性实施例的由缓存节点传送的示例性拨号音的图。
图9是用于解释根据第二示例性实施例的由缓存节点传送的另一示例性拨号音的图。
图10是用于解释根据第二示例性实施例的由存储节点保存的永久化表的图。
图11是用于解释根据第二示例性实施例的由存储节点传送的忙音的图。
图12是第三示例性实施例的框图。
图13是示出第三示例性实施例的操作的流程图。
图14是用于解释根据第三示例性实施例的由存储节点传送的忙音的图。
具体实施方式
作为用于提高诸如KVS的分布式处理系统中的数据处理能力的技术,使用缓存是公知的。使用缓存是将频繁使用的数据存储在告诉存储设备中以由此通过消除读取的浪费处理实现告诉处理的技术。
在使用缓存的系统中,具有缓存的多个计算机将向低速永久存储设备发送数据的多次更新。低速永久存储设备存储接收到的较新的数据的更新。在一些情况下,较旧的数据的更新可能在接收到较新的数据更新之后被接收。因此,即使在使用缓存的系统中,在计算机之间也浪费地传送和接收不将在永久存储设备上反映的数据。结果,在计算机之间执行的更新数据的传送和接收是无用的。
接下来,将参考附图对示例性实施例进行详细描述。
[第一示例性实施例]
参考图1,根据的第一示例性实施例的分布式处理系统100包括计算机120、以及通过网络110与计算机120连接的多个计算机130。
计算机120是诸如永久地存储数据的存储服务器(也被称为存储节点)的计算机。计算机120可以是专用或通用计算机,包括CPU(中央处理单元)、诸如ROM(只读存储器)、RAM等的存储器、存储各种类型的信息的外部存储器、输入/输出接口、通信接口、以及将其彼此连接的总线。计算机120的数目可以是复数。
计算机120包括作为主要功能单元的永久存储设备121和控制器122。
例如,永久存储设备121由硬盘来配置。永久存储设备121永久地存储数据1210。数据1210包括数据主体1211、数据标识信息1212以及版本号1213。数据主体1211包括数值和字符串。数据标识信息1212是唯一地标识数据1210的标识符。版本号示出数据1210被更新时的最新时间。尽管在该示例中,版本号示出了更新时间,但是如果确定了多个事件之间的顺序,则本公开中的版本号可以是除了更新时间之外的其它版本号。例如,被称为卡桑德拉(Cassandra)的分布式键值存储(KVS)中的向量时钟可以用作版本号。
控制器122掌管计算机120的主要控制。控制器122可以由构成计算机120的CPU和存储在ROM等中的程序来实现。
计算机130中的每一个是诸如服务器的计算机,其保存计算机120的永久存储设备121中所存储的数据1210的副本,根据从图中未示出的客户端设备接收的处理请求来执行对数据1210的副本的引用或更新的处理,并且将处理结果发送回客户端设备。计算机130中的每一个可以是专用或通用计算机,专用或通用计算机包括CPU、诸如ROM、RAM等的存储器、存储各种类型的信息的外部存储器、输入/输出接口、通信接口以及将其彼此连接的总线。此外,虽然在图1中,计算机120的数目是两个,但是可以提供三个或更多个计算机120。
计算机130中的每一个包括缓存131和控制器132。
缓存131具有保存从计算机120获取的数据1210的副本数据1310的功能。缓存131由诸如RAM可读/可写存储器来配置。缓存1310中的副本数据1310包括与原始数据1210的数据主体1211、标识信息1212以及版本号1213相对应的数据主体1311、标识信息1312以及版本号1313。
控制器132掌管计算机130的主要控制。控制器132可以由构成计算机130的CPU和存储在ROM等中的程序来实现。
网络110是在计算机120和计算机130之间的通信信道。
图2是示出根据本实施例的示例性操作的序列图。在下文中,将参考图1和2对本实施例的操作进行描述。
每个计算机130的控制器132与计算机120的控制器122进行通信,以由此从计算机120的永久存储设备121获取频繁使用的数据1210,并且将其复制到缓存131(图2中的步骤S101和S102)。此处,假设数据1210被复制到每个计算机130的缓存131,在数据1210中,数据主体1211是“D1”,标识信息是“N1”,并且版本号是“T1”。
然后,每个计算机130的控制器132根据处理请求使用缓存131中的副本数据1310来执行处理。此时,控制器132基于更新副本数据1310的数据主体1311的更新时间来改写版本号1313。
在图2所示的示例中,一个计算机130-1根据处理请求S103,将缓存131-1中的数据1310-1的数据主体1311-1从“D1”改写为“D2”,并且将版本号1313-1从“T1”改写为“T2”(S104)。此外,在计算机130-1更新数据1310-1之后的时间,另一计算机130-2根据处理请求S105,将缓存131-2中数据1310-2的数据主体1311-2从“D1”改写为“D3”,并将版本号1313-2从“T1”改写为“T3”(S106)。
在由于在自身计算机130中的故障的发生而导致缓存数据的丢失的情况下,每个计算机130的控制器132允许在缓存131中更新的数据1310被反映在计算机120的永久存储设备121上。此时,控制器132不会突然向计算机120传送包括更新的数据主体1311的副本数据1310。替代地,控制器132向计算机120传送包括副本数据1310中的标识信息1312和版本号1313的确认数据。每个计算机130的控制器132可以在任何时间向计算机120传送确认数据。例如,在由自身计算机130确定的每个时段中,每个计算机130可以周期性地重复下述操作:从缓存131读取其中确认数据还没有被传送到计算机120的更新的数据1310,并且将确认数据传送到计算机120。
在图2所示的示例中,计算机130-1和130-2中的第一计算机130-2生成包括更新的数据1310-2的标识信息“N1”和版本号“T3”的确认数据,并且将确认数据传送到计算机120(步骤S107)。
在从计算机130-2接收到确认数据之后,计算机120的控制器122生成响应数据并传送该响应数据(步骤S108)。当基于接收到的确认数据和存储在永久存储设备121中的信息来生成响应数据时,控制器122首先从接收到的确认数据中提取与将写入永久存储设备121的副本数据相对应的标识信息和版本号。在此示例中,由于与确认数据中的标识信息“N1”配对的版本号“T3”是比具有永久存储设备121中的相同标识信息“N1”的数据1210的版本号“T1”更新的版本号,所以从确认数据中提取标识信息“N1”和版本号“T3”。然后,控制器122向计算机130-2传送响应数据,响应数据包括所提取的标识信息“N1”和版本号“T3”。应该注意,如果没有从确认数据中提取与将被写入永久存储设备121的副本数据相对应的标识信息,则控制器122生成响应数据,并且将该响应数据传送到计算机130-2,该响应数据包括确认数据中的标识信息、以及与标识信息相关联地存储在永久存储设备121中的数据1210的版本号。
在从计算机120接收响应数据之后,基于接收到的响应数据和存储在缓存131-2中的信息,计算机130-2的控制器132确定将被传送到计算机120用于永久化的缓存131-2中的副本数据,并对其进行传送(步骤S109)。特定地,对于响应数据中所包括的标识信息的每个单元,控制器132从缓存131中提取具有相同标识信息的副本数据1310的版本号1313,并且将其与同响应数据中的标识信息配对的版本号作比较。然后,控制器132确定下述副本数据1310作为将被传送到计算机120用于永久化的数据并对其进行传送:在副本数据1310中从缓存131提取的版本号不比响应数据中的版本号更旧。在此示例中,由于缓存131-2中的具有标识信息“N1”的副本数据1310-2的版本号“T3”不比与响应数据中的标识信息“N1”配对的版本号“T3”更旧,所以通过副本数据1310-2确定将被传送到计算机120用于永久的数据。然后,控制器132从缓存131-2中读取所确定的副本数据1310-2,并将其传送到计算机120。
在从计算机130-2接收副本数据1310-2之后,基于接收到的副本数据和存储在永久存储设备121中的信息,计算机120的控制器122确定是否向永久存储设备121写入接收到的副本数据,并且当确定写入时,将其写入(步骤S110)。特定地,对于接收到的副本数据的每个单元,控制器122从永久存储设备121中提取具有相同标识信息的数据1210的版本号1213,并将其与副本数据中的版本号作比较。然后,控制器122将具有比永久存储设备121中的版本号更新的版本号的副本数据确定为将被写入的副本数据,并将其写入到永久存储设备121。在该示例中,由于从计算机130-2接收的副本数据1310-2的版本号“T3”比永久存储设备121中的数据1210的版本号“T1”更新,所以永久存储设备121中的数据1210被改写为副本数据1310-2。
然后,在图2所述的示例中,计算机130-1向计算机120传送包括更新的数据1310-1的标识信息“N1”和版本号“T2”的确认数据(步骤S111)。
在从计算机130-1接收确认数据之后,计算机120的控制器122生成响应数据并对其进行传送(步骤S112)。在该示例中,确认数据中的标识信息“N1”所指定的数据1310-1的版本号“T2”没有比永久存储设备121中具有相同标识信息“N1”的数据1210的版本号“T3”更新。这样,控制器122生成响应数据,并将其传送到计算机130-1,该响应数据包括确认数据中的标识信息“N1”、以及与该标识信息相关联地存储在永久存储设备121中的数据1210的版本号“T3”。
在从计算机120接收响应数据之后,基于接收到的响应数据和存储在缓存131-1中的信息,计算机130-1的控制器132确定将被传送到计算机120以用于永久化的缓存131-1中的副本数据(步骤S113)。在此示例中,缓存131-1中具有标识信息“N1”的副本数据1310-1的版本号“T2”没有比与响应数据中的标识信息“N1”配对的版本号“T3”更新。这样,控制器132确定不向计算机120传送副本数据1310-1。在这种情况下,控制器132可以与计算机120的控制器122通信以获取标识信息“N1”的最新数据1210,并将其复制到缓存131-1。
如上所述,根据本实施例,能够防止需要被反映在永久存储设备上的数据在计算机之间被浪费地传送和接收。这是因为计算机130中的每一个不会突然向计算机120传送在缓存中更新的数据,而是与计算机120交换确认数据和响应数据,以从而确定将传送到计算机120的数据。
此外,根据本实施例,能够防止在计算机120和计算机130之间的网络拥塞,以从而防止用于缓存数据的永久化的吞吐量和响应时间的恶化。这是因为,当数据的版本号和标识信息的大小比数据主体的版本号和标识信息的大小相对更小时,由于包括数据主体的数据的浪费的传送和接收的减少而减少的传送和接收的量比由于确认数据和响应数据的交换而增加的传送和接收的量更大。
[第二示例性实施例]
接下来,将描述第二示例性实施例。本实施例涉及用于通过多个服务器计算机(在下文中称为缓存节点)使缓存数据永久化的系统(下文中称为缓存永久化系统),多个服务器计算机中的每一个通过通信网络在配备有硬盘的远程服务器计算机(在下文中称为存储节点)中的存储器上保存缓存数据。在下文中,将以该顺序给出对作为本实施例的前提的分布式缓存永久化系统、其问题、本实施例的概述、本实施例的效果、本实施例的配置、本实施例的操作和示例的描述。
<作为本实施例的前提的分布式缓存永久化系统及其问题>
缓存数据永久化功能是数据库服务器、应用程序服务器、web服务器等的不可缺少的功能。关于从应用程序接收的数据请求(数据的参考、更新、添加、删除等),这些服务器向应用发送回适当的数据(响应数据)。
当生成将发送回应用的响应数据时,如果对存储在存储中(服务器中的内置硬盘或等)的数据顺序地进行访问,则存在由于磁盘IO的频繁发生而导致低响应速度的问题。为了解决这一问题,使用了缓存存储器(cache memory)。由于缓存存储器通过在缓存存储器中临时保存高访问频率的数据并且不从存储而是从缓存存储器获取应用所需要的数据,而使得数据访问能够以与存储的情况相比更高的速度被执行,所以减少了磁盘IO的数目,由此响应速度变得更高。
缓存数据永久化功能是允许缓存存储器中的缓存数据被定期地反映在存储中的功能。该功能的基础如下文所述。通常,当由易失性存储器配置的服务器机失效时,缓存存储器中临时保存的缓存数据丢失。结果,由应用应用于缓存数据的数据更新历史丢失。这样,需要使得缓存存储器中的缓存数据在存储中被反映(永久化)。这一功能由缓存数据永久化系统来提供。
近年来,随着存储在数据库中的数据的量变大,通过聚类大量(几百到几千)服务器(分布式数据库)配置的数据库引起了人们的注意。在分布式数据库中,出于负载分配(每一个服务器将被存储的数据的量、将被处理的数据处理请求数目等)的目的,对各个服务器指派不同的功能,并且根据那些服务器的协同操作,向应用提供与典型数据库而不是分布式数据库相同的功能。
分布式数据库中使用的缓存数据永久化系统被称为分布式缓存数据永久化系统。如图3中所示,分布式缓存数据永久化系统包括多个缓存节点1、2和3、以及多个存储节点1、2、3、4、5和6。由于缓存节点和存储节点能够被设置在一个物理服务器中,所以从负载分配的角度,其通常被构建在不同的物理服务器中。
通过使用来自应用的数据请求的统计信息(例如,数据库的表级的访问频率测量值),缓存节点预先从存储节点获取高访问频率的数据作为缓存数据,并且将其缓存在自己的存储器中。由于应用可连接到任意缓存节点,所以存储在存储节点4中的缓存数据1可以被缓存在缓存节点1和缓存节点2中。缓存在缓存节点1和缓存节点2中的缓存数据1被定期地传送到存储节点4。
存储节点4参考在接收到的缓存数据1中描述的更新历史,以由此适当地更新与存储在其中的缓存数据1相对应的数据。特定地,如图4所示,在由缓存节点1缓存的缓存数据1中,在缓存节点1中执行的更新历史与版本号一起被描述。类似地,在由缓存节点2缓存的缓存数据1中,在缓存节点2中执行的更新历史与版本号一起被描述。存储节点4将缓存节点1的缓存数据1(更新历史)与缓存节点2的缓存数据1(更新历史)作比较,并且通过使用缓存节点2的缓存数据1中描述的最新版本号5的更新的数据5来更新存储在其中的数据1,并且使其永久化。
在上文所述的分布式缓存数据永久化系统中,存在下述问题:当保存有相同缓存数据的缓存节点的数目增加时,网络拥塞发生,由此缓存数据永久化性能(吞吐量、响应时间等)恶化。这是因为,随着保存相同缓存数据的缓存节点不共享关于其所保存的缓存数据的更新历史的信息时,缓存节点向存储节点完整地传送缓存数据更新历史。
据此,本实施例提供一种分布式缓存数据永久化系统,该系统能够防止由于网络拥塞而导致的缓存数据永久化性能的恶化。
<本实施例的概述>
如图5中所示,本实施例的分布式缓存数据永久化系统的缓存节点1包括拨号音生成装置14,用于生成用于向存储节点4通知缓存数据传送请求的确认信号(在下文中称为拨号音)。存储节点4包括忙音生成装置44,用于生成用于向缓存节点1通知缓存数据传送许可的响应信号(在下文中称为忙音)。缓存节点和存储节点4包括音传送/接收装置15和音传送/接收装置43,使用作为不同于用于缓存数据的传送的数据线5的独立线的数据线(在下文中称为心跳线)6来分别交换拨号音和忙音。缓存节点1包括缓存数据控制装置12,用于分析从存储节点4接收的忙音并且选择将被传送到存储节点4的缓存数据。在本实施例的分布式缓存数据永久化系统中,可能存在具有与缓存节点1和存储节点4的那些相同装置的其它缓存节点和存储节点。
<本实施例的效果>
通过采用这样的配置并在缓存数据的传送之前预先调整将在缓存节点和存储节点之间传送的缓存数据,实际传送的缓存数据的全部量可以被减少。因此,上述问题可以被解决。
此外,通过预先使用独立于数据线的心跳线来仅交换拨号音和忙音来预先调整将在多个缓存节点和多个存储节点之间传送的缓存数据,能够使得缓存数据永久化,同时防止由于用于缓存数据的传送的数据线中的网络拥塞而导致的缓存数据永久化性能恶化。
这是由于防止多个缓存节点以冗余方式使缓存数据永久化,并且仅从缓存节点向存储节点传送最少量的所需缓存数据。
<本实施例的配置>
参考图5,本实施例包括缓存节点1、2和3以及存储节点4,其中的每一个可以通过具有由程序控制实现的数据处理功能、数据通信功能、数据存储功能等的计算机、工作站等来实现。尽管图5示出了仅包括三个缓存节点和一个存储节点的配置,但是可以包括具有相同装置的更大数目的缓存节点和存储节点。
缓存节点1、2和3以及存储节点4可以使用数据线5和心跳线6来彼此通信。数据线5和心跳线6是彼此独立的网络,并且即使数据线5断开连接,缓存节点和存储节点也可以使用心跳线6来彼此进行通信。缓存节点1、2和3使用数据线5向存储节点4传送缓存数据。缓存节点1、2和3以及存储节点4使用心跳线6传送音(拨号音、忙音)以用于将被传送的缓存数据的预先调整。
缓存节点1、2和3中的每一个包括存储器缓存装置11、缓存数据控制装置12、数据传送装置13、拨号音生成装置14以及音传送/接收装置15。
存储节点4包括数据接收装置41、磁盘42、音传送/接收装置43以及忙音生成装置44。
缓存节点1、2和3的存储器缓存装置11在缓存存储器中临时存储高访问频率的数据。缓存数据装置12从存储器缓存装置11定期地获取数据,并使用数据线5将其从数据传送装置13传送到存储节点4的数据接收装置41。数据接收装置41在磁盘42上写入接收到的缓存数据并使其永久化。
在传送缓存数据之前,缓存节点1、2和3的拨号音生成装置14生成示出缓存数据的传送请求的拨号音。音传送/接收装置15通过使用心跳线6来向存储节点4的音传送/接收装置43传送所生成的拨号音。拨号音描述关于将由缓存节点传送的缓存数据的历史信息。
存储节点4的忙音生成装置44生成与由音传送/接收装置43从缓存节点1、2和3接收到的拨号音相对应的忙音。音传送/接收装置43向缓存节点1、2和3的音传送/接收装置15传送所生成的忙音。特定地,存储节点4分析从缓存节点接收的拨号音,并且在多个缓存节点尝试传送重叠的缓存数据的情况下,向缓存节点传送忙音,该忙音指定传送缓存数据的缓存节点。
根据由音传送/接收装置15接收到的忙音,缓存节点1、2和3的缓存数据控制装置12选择被传送到存储节点4的缓存数据。特定地,缓存数据控制装置12仅在其保存比在忙音中描述的缓存数据的版本号更新的版本号的更新数据时,才通过数据传送装置13向存储节点4传送缓存数据。
<本实施例的操作>
接下来,将参考图5和图6描述本实施例的操作。
缓存节点1、2和3中的每一个根据缓存节点的每一个的时刻(timing)来定期地从存储器中提取临时保存在存储器中的缓存数据,并开始传送缓存数据的准备(步骤A1)。在缓存数据的实际传送之前,为了确定将被传送的缓存数据,每个缓存节点从所提取的缓存数据的更新历史生成拨号音(步骤A2)。缓存节点经由心跳线6向使在步骤A1提取的缓存数据永久化的对象存储节点传送所生成的拨号音(步骤A3)。
存储节点4等待从缓存节点1、2和3接收拨号音达特定时段(步骤B1)。然后,参考在特定时段内接收到的来自缓存节点1、2和3的拨号音,存储节点4针对缓存数据的每个单元指定最新的更新数据。然后,存储节点4针对缓存数据的每个单元生成描述保存最新更新数据的缓存节点的忙音(步骤S2)。然后,存储节点4向缓存节点1、2和3传送所生成的忙音(步骤B3)。
缓存节点1、2和3参考从存储节点4接收到的忙音,并指定将由自己传送的缓存数据(步骤A4、A5)。然后,缓存节点1、2和3仅向存储节点4传送被指定由自己传送的缓存数据(步骤A6和A7)。
存储节点4向自己的磁盘42写入接收到的缓存数据(步骤B4和B5)。
如上所述,在本实施例中,通过使用独立于数据线的心跳线来在缓存节点和存储节点之间交换拨号音和忙音,以由此预先调整将被永久化的缓存数据。这样,能够通过使用数据线来仅传送最小的缓存数据,由此可以防止由于网络拥塞而引起的缓存数据永久化性能的恶化。
<示例>
接下来,参考附图描述第二示例性实施例的示例。
将描述实现本实施例的系统的物理配置。分布式数据缓存节点1、2和3以及存储节点4中的每一个由配备有诸如CPU的数据处理单元、支持以太网、无线LAN、专用通信网络等的数据通信单元、诸如RAM、ROM、HDD等的数据存储单元的计算机、工作站、数据库等来实现。
图7示出了在给定时间的缓存节点1、2和3的存储器中保存的缓存数据的示例性列表。如图7中所示,对缓存数据给予唯一标识符(缓存数据ID)。例如,在关系数据库的缓存数据永久化系统中,作为缓存数据ID,针对诸如记录的主键的每个表的记录使用唯一标识符。在分布式键值存储的情况下,键可以用作缓存数据ID。
此外,每次执行更新时,对缓存数据添加数据的版本号和更新数据作为历史数据。特定地,在缓存节点“x”的缓存数据(缓存数据ID)“y”的第k次更新时,添加版本号Tx_y_k和更新数据Dx_y_k。
图7中所述的缓存数据1、2和3的单元被假设为在存储节点4中被永久化的缓存数据。
假设缓存节点1使缓存数据在存储节点4中永久化的情况。
缓存节点1确定将向存储节点4传送的缓存数据。例如,存在确定更新历史的添加的数目(更新历史长度)超过特定阈值的缓存数据的方法,以作为将被传送的缓存数据。在此示例中,假定图7中所述的每个缓存数据1、2和3被传送。
在向存储节点4实际传送缓存数据1、2和3的最新的更新的数据(在缓存数据1的情况下,是D1_1_4)之前,缓存节点1生成拨号音并将其传送到存储节点4。
在拨号音中,缓存节点1设置将被永久化的缓存数据的ID和最新版本号。特定地,缓存节点1生成图8中所示的拨号音(通信分组),并经由心跳线6将其传送到存储节点4。
假设在由缓存节点1传送拨号音的同时,缓存节点2向存储节点4传送拨号音的情况。
与缓存节点1的拨号音类似,在拨号音中,缓存节点2设置将被永久化的缓存数据的ID和最新版本号。特定地,缓存节点2生成图9中所示的拨号音(通信分组),并经由心跳线6将其传送到存储节点4。
在从缓存节点1和2接收拨号音之后,存储节点4检查拨号音中描述的缓存数据是否已经被永久化(存储)。特定地,当检查时,存储节点4使用永久化表,该永久化表是缓存数据和已经在自己的节点中被永久化的缓存数据的版本号的列表。
图10是永久化表的示例性配置。通常,与缓存节点1、2和3不同,由于存储节点4不具有缓存数据的更新历史,所以在存储节点“x”中被永久化的缓存数据(缓存数据ID)“y”被表示为版本号Tx_y和更新的数据Dx_y。在永久化表中表示“空”(NULL)的单元格示出了相应的缓存数据(在图10的情况下,是缓存数据1)没有被永久化。
存储节点4由从缓存节点1和2接收到的忙音以及自身生成的永久化表,来针对缓存数据的每个单元确定缓存数据的哪个单元是最新的。
通常,在分布式缓存数据永久化系统上进行操作的服务器(缓存节点、存储节点等)配备有经由心跳线6由NTP(网络时间协议)进行的时间同步,能够使用版本号来确定数据的新或旧。
关于缓存数据2,在缓存节点1中的版本号是T1_2_2的情况下,在缓存节点2中的版本号是T2_2_3,并且在存储节点4中的版本号是T4_2,作为将其进行比较以确定新或旧的结果,如果缓存节点2中的版本号T2_2_3是最新的,则存在于缓存节点2的存储器中的对应于版本号T2_2_3的缓存数据D2_2_3应当被反映在存储节点4上(图7)。
关于缓存数据1,由于在缓存节点2的拨号音和存储节点4的永久化表中没有缓存数据1,所以存在于缓存节点1的存储器中的对应于版本号T1_1_4的缓存数据D1_1_4应被反映在存储节点4上。
关于缓存数据3,假设对应于在存储节点4的永久化表中描述的版本号T4_3的数据D4_3是最新的。该情况示出了除了缓存1和2以外的缓存节点已经使缓存数据3永久化,与存在于缓存节点1和2的存储器中的缓存数据3相比,在该缓存数据3中的更新时间是最新的。
在这样的情形下,存储节点4生成如图11所示的忙音,并经由心跳线6将其传送到缓存节点1、2和3.
如图11所示,忙音描述了缓存数据的每个单元的版本号,基于该版本号确定其是最新的。
在从存储节点4接收的忙音之后,缓存节点1、2和3分析该忙音并且最终确定由其自身在存储节点4中进行永久化的缓存数据。
缓存节点1仅经由数据线5向存储节点4传送与针对缓存数据1指定的版本号T1_1_4相对应的更新的数据D1_1_4。然而,如果其保存与更新历史中版本号T1_1_4相比更新的缓存数据1,则缓存节点1经由数据线5向存储节点4传送最新的缓存数据1。缓存数据2和3的情况也相同。与在忙音中描述的缓存数据2的版本号T2_2_3和缓存数据3的版本号T4_3相比,如果保存了同样的或者更新的缓存数据2和缓存数据3,比由其保存的更新的缓存数据2和缓存数据3经由数据线5被传送到存储节点4。与缓存节点1类似,缓存节点2还最终确定将被传送的缓存数据,并且如果存在将被传送的缓存数据,则经由数据线5将其传送到存储节点4。
另一方面,不传送拨号音的缓存节点3将存在于自己存储器上的缓存数据1的版本号T3_1_1(图7)与在忙音中描述的缓存数据1的版本号T1_1_4作比较,并且如果由其保存的缓存数据1是最新的,则经由数据线5向存储节点4传送缓存数据。
在传送忙音之后接收从缓存节点发送回的缓存数据(包括缓存数据的版本号)之后,仅当它比已由自己进行永久的缓存数据的版本号更新时,存储节点4将缓存数据改写和更新为接收的缓存数据(包括缓存数据的版本号)。
在上述的示例性实施例中,当用于传送拨号音和忙音的心跳线6和用于传送作为真实数据的缓存数据的数据线5是彼此独立的网络时,如果这是能够确保足够的通信带宽的网络,则可以使用相同的网络。
此外,尽管存储节点4向包括不传送拨号音的缓存节点3的整个缓存节点1、2和3广播忙音,但是存储节点4可以仅向传送拨号音的缓存节点1和2发送回忙音。
此外,在拨号音和忙音中,仅描述了缓存数据的元数据(缓存数据ID、版本号等),并且没有描述作为真实数据的缓存数据,以便于通过最小化拨号音和忙音的分组大小来减少心跳线的通信业务。然而,在作为真实数据的缓存数据比阈值更小的情况下,还能够预先描述拨号音中的缓存数据,并将其进行传送。
[第三示例性实施例]
接下来,将参考附图描述第三示例性实施例。
关于图12,本实施例与图5中所示的第二示例性实施例不同之处在于,缓存节点1、2和3中的每一个包括偏移时间设置装置16,并且存储节点4包括数据线拥塞检测装置45和偏移时间计算装置46。
数据线拥塞检测装置45监视数据接收装置41,并检测当缓存节点使得大量换出数据在相同的存储节点中产生(向其传送)时发生的网络拥塞。
偏移时间计算装置46确定缓存数据的永久化的优先级,计算缓存数据的每个单元的永久化周期(偏移时间),并且在忙音中描述该偏移时间。
偏移时间设置装置16分析在忙音中描述的偏移时间,并且在数据传送装置13中设置缓存数据的永久化周期。
接下来,参考图12和13,将详细描述本实施例的操作。应该注意,由于图13中的步骤A1、A2、A3、A4、A5、A6和A7以及B1、B2、B3、B4和B5处的操作与第二示例性实施例的操作相同,其描述被忽略。
在第二示例性实施例中,各个缓存节点向存储节点传送缓存数据,以用于同时,即在接收忙音时被永久化。同时,在本实施例中,存储节点4在步骤B1处接收拨号音之后检查数据线5的拥塞(步骤B6),并且如果拥塞发生,则针对缓存数据的每个单元计算偏移时间(步骤B7),并且生成描述偏移时间的忙音(步骤B2)。另一方面,缓存节点1、2和3分析在步骤A5接收到的忙音,并且提取缓存数据的每个单元的偏移时间(步骤A8),并且在与偏移时间相对应的周期中传送与偏移时间相对应的缓存数据(步骤A6和A7)。这意味着,在从忙音被接收到时的时间开始度过了偏移时间时的时间传送缓存数据。
接下来,将描述本实施例的效果。
在本实施例中,由于缓存数据传送周期被设置为偏移时间,能够防止由于短时段中从缓存节点到存储节点的缓存数据传送业务的集中而发生的数据线中的拥塞。这样,因为由于拥塞引起的分组丢失而导致的缓存数据的重传的次数减少,所以可以防止缓存数据永久化性能的恶化。
在下文中,将描述第三示例性实施例的示例。
尽管本示例具有与第二示例性实施例的示例相同的配置,本示例与第二示例性所述的示例的区别在于缓存节点1、2和3的每一个也起偏移时间设置装置16的作用。此外,存储节点4也起数据线拥塞检测装置和偏移时间计算装置46的方面也与第二示例性所述的示例不同。
将描述由存储节点4的数据线拥塞检测装置45和偏移时间计算装置46为缓存数据的每个单元计算作为缓存数据传送周期的偏移时间的方法。
存储节点4监视自己的网络接口,测量网络参数(数据包丢失率、延迟时间等),并在测量值超过预定的网络参数时确定网络拥塞发生。作为检测网络拥塞方法,除了本实施例所述的基于网络参数的检测方法之外的检测方法也可以被使用。
当存储节点4检测到数据线中的拥塞,存储节点4为在所接收到的拨号音中描述的缓存数据的每个单元计算偏移时间
本示例假设被发回到缓存节点的忙音是图11所示的忙音的情况。在此情况下,缓存1、2和3的各个版本号T1_1_4、T2_2_3和T4_3是指具有最早被指定的并与缓存数据的其它单元相比最早的版本号的(更新时间最早)缓存数据,并且在缓存数据中设置“小值的偏移时间(缓存数据传送频率高)”。尽管本示例仅通过参考在拨号音(图8和图9)和永久化表(图10)中描述的版本号来描述计算偏移时间的偏移时间计算方法,例如,能够通过描述拨号音中的缓存数据的大小来使用将“大值的偏移时间(低缓存数据传送频率)”设置为具有大的大小的缓存数据的计算方法。
如图4所示,存储节点4向缓存节点发回忙音,在该忙音中设置了关于各个缓存数据1、2和3计算的偏移时间OFFSET1、OFFSET2和OFFSET3。
缓存节点1、2和3的偏移时间设置装置16分析从存储节点4接收到的忙音,并且如果存储将被它自身传送的缓存数据,偏移时间设置装置16在对应于缓存数据的偏移时间周期中使处于(传送到)存储节点4中的缓存数据永久化。
尽管已经参考一些示例性实施例和示例描述了本发明,但是本发明不限于上述示例,并且可以在其中进行各种添加和改变。例如,在第三示例性实施例中,当检测到数据线中的拥塞时,计算在接收到的拨号音中描述的缓存数据的每个单元的偏移时间,并且将偏移时间设置在忙音中。然而,作为另一示例性实施例,不论数据线中的拥塞是否存在,都能够计算在接收到的拨号音中描述的缓存数据的每个单元的偏移时间,并且将其设置在忙音中。

Claims (18)

1.一种控制向计算机系统中的永久存储设备写入数据的方法,所述计算机系统包括第一计算机和多个第二计算机,所述第一计算机包括永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合,所述第二计算机中的每一个包括保存从所述永久存储设备获取的数据的副本数据的缓存,所述方法包括:
由所述第二计算机向所述第一计算机传送确认数据,所述确认数据包括在自身计算机的缓存中更新的所述副本数据的所述标识信息和所述版本号;
由所述第一计算机基于从所述第二计算机接收的所述确认数据和存储在所述永久存储设备中的信息,从所述第二计算机接收的所述确认数据中提取与将向所述永久存储设备写入的所述副本数据相对应的所述标识信息和所述版本号,并且向所述第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据;以及
由所述第二计算机基于从所述第一计算机接收的所述响应数据和存储在所述缓存中的信息,来确定所述缓存中将被传送到所述第一计算机以被写入所述永久存储设备的所述副本数据。
2.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
由所述第二计算机确定所述副本数据包括确定下述副本数据作为将被传送到所述第一计算机的副本数据:该副本数据被存储在所述缓存中并且具有包括在所述响应数据中的所述标识信息,并且其中,所述标识信息没有比所述响应数据中描述的所述版本号更新。
3.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
由所述第一计算机传送所述响应数据包括向传送所述确认数据的所述第二计算机以及没有传送所述确认数据的所述第二计算机二者传送关于所述确认数据的响应数据。
4.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
由所述第一计算机传送所述响应数据包括,基于从所述第二计算机成功接收的所述确认数据的单元,并且基于存储在所述永久存储设备中的所述信息,来从所述第二计算机接收的所述确认数据的单元中,提取与将被写入所述永久存储设备的所述副本数据相对应的所述标识信息和所述版本号,并且向所述第二计算机传送包括所提取的标识信息和所提取的版本号的所述响应数据。
5.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
由所述第一计算机传送所述响应数据的传送包括向所述第二计算机传送下述响应数据:该响应数据描述关于包括在所述响应数据中的所述标识信息和所述版本号的集合的偏移时间,所述偏移时间具有与另一集合的值不同的值,并且
所述第二计算机基于在从所述第一计算机接收的所述响应数据中描述的所述偏移时间,来控制所确定的副本数据的传送时间。
6.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
由所述第一计算机传送所述响应数据包括通过所述第二计算机检测用于传送和接收所述副本数据的网络的拥塞,并且当所述拥塞处于特定水平或者更高时,向所述第二计算机传送下述响应数据:该响应数据描述关于包括在所述响应数据中的所述标识信息和所述版本号的集合的偏移时间,所述偏移时间具有与另一集合的值不同的值,并且
所述第二计算机基于在从所述第一计算机接收的所述响应数据中描述的所述偏移时间,来控制所确定的副本数据的传送时间。
7.根据权利要求1所述的控制向计算机系统中的永久存储设备写入数据的方法,其中,
所述第一计算机和所述第二计算机通过第一网络传送和接收所述确认数据以及所述响应数据,并且通过第二网络传送和接收所述副本数据。
8.一种计算机系统,包括:
第一计算机;以及
多个第二计算机,其中,
所述第一计算机包括:
永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合;以及
第一控制器;
所述第二计算机中的每一个包括:
缓存,所述缓存保存从所述永久存储设备获取的所述数据的副本数据;以及
第二控制器,
所述第二计算机的所述第二控制器向所述第一计算机传送确认数据,所述确认数据包括在自身计算机的缓存中更新的所述副本数据的所述标识信息和所述版本号,
基于从所述第二计算机接收的所述确认数据和存储在所述永久存储设备中的信息,所述第一计算机的所述第一控制器从所述第二计算机接收的所述确认数据中提取与将向所述永久存储设备写入的所述副本数据相对应的所述标识信息和所述版本号,并且向所述第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据,并且
基于从所述第一计算机接收的所述响应数据和存储在所述缓存中的信息,所述第二计算机的所述第二控制器确定所述缓存中将被传送到所述第一计算机以被写入所述永久存储设备的所述副本数据。
9.根据权利要求8所述的计算机系统,其中
当确定所述副本数据时,所述第二控制器确定下述副本数据作为将被传送到所述第一计算机的副本数据:该副本数据被存储在所述缓存中并且具有包括在所述响应数据中的所述标识信息,并且其中,所述标识信息没有比所述响应数据中描述的所述版本号更新。
10.根据权利要求8所述的计算机系统,其中,
当传送所述响应数据时,所述第一控制器向传送所述确认数据的所述第二计算机以及没有传送所述确认数据的所述第二计算机二者传送关于所述确认数据的响应数据。
11.根据权利要求8所述的计算机系统,其中,
当所述第一控制器传送所述响应数据时,基于从所述第二计算机成功接收的所述确认数据的单元以及存储在所述永久存储设备中的所述信息,所述第一控制器从所述第二计算机接收的所述确认数据的单元中,提取与将被写入所述永久存储设备的所述副本数据相对应的所述标识信息和所述版本号,并且向所述第二计算机传送包括所提取的标识信息和所提取的版本号的所述响应数据。
12.根据权利要求8所述的计算机系统,其中,
当传送所述响应数据时,所述第一控制器向所述第二计算机传送下述响应数据:该响应数据描述关于包括在所述响应数据中的所述标识信息和所述版本号的集合的偏移时间,所述偏移时间具有与另一集合的值不同的值,并且
所述第二控制器基于在从所述第一计算机接收的所述响应数据中描述的所述偏移时间,来控制所确定的副本数据的传送时间。
13.根据权利要求8所述的计算机系统,其中,
当传送所述响应数据时,所述第一计算机通过所述第二计算机检测用于传送和接收所述副本数据的网络的拥塞,并且当所述拥塞处于特定水平或者更高时,所述第一计算机向所述第二计算机传送下述响应数据:该响应数据描述关于包括在所述响应数据中的所述标识信息和所述版本号的集合的偏移时间,所述偏移时间具有与另一集合的值不同的值,并且
所述第二控制器基于在从所述第一计算机接收的所述响应数据中描述的所述偏移时间,来控制所确定的副本数据的传送时间。
14.根据权利要求8所述的计算机系统,其中,
所述第一控制器和所述第二控制器通过第一网络传送和接收所述确认数据和所述响应数据,并且通过第二网络传送和接收所述副本数据。
15.一种通过网络与多个缓存计算机连接的存储计算机,所述多个缓存计算机中的每一个具有缓存,所述存储计算机包括:
永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合;以及
控制器,其中,
从在所述缓存中保存存储在所述永久存储设备中的所述数据的副本数据的所述缓存计算机,所述控制器接收确认数据,所述确认数据包括在所述缓存中更新的所述副本数据的所述标识信息和所述版本号,
基于所接收的确认数据和存储在所述永久存储设备中的信息,从所述缓存计算机接收的所述确认数据中提取与将向所述永久存储设备写入的所述副本数据相对应的所述标识信息和所述版本号,并且
向所述缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
16.一种通过网络与存储计算机连接的缓存计算机,所述存储计算机包括永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合,所述缓存计算机包括:
缓存,所述缓存保存从所述永久存储设备获取的所述数据的副本数据;以及
控制器,其中,
所述控制器被配置为用副本数据来更新所述缓存,
向所述存储计算机传送确认数据,所述确认数据包括在所述缓存中更新的所述副本数据的所述标识信息和所述版本号,
从所述存储计算机接收包括与将写入到所述永久存储设备的所述副本数据相对应的所述标识信息和所述版本号的响应数据,
基于从所述存储计算机接收的所述响应数据和存储在所述缓存中的信息,来确定所述缓存中将被传送到所述存储计算机以被写入所述永久存储设备的所述副本数据,并且
向所述存储计算机传送所确定的副本数据。
17.一种存储程序的非瞬时计算机可读介质,所述程序包括用于使得存储计算机用作存储计算机的指令,所述存储计算机通过网络与多个缓存计算机连接,所述多个缓存计算机中的每一个具有缓存:
永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合;以及
控制器,其中,
从在所述缓存中保存存储在所述永久存储设备中的所述数据的副本数据的所述缓存计算机,所述控制器接收确认数据,所述确认数据包括在所述缓存中更新的所述副本数据的所述标识信息和所述版本号,
基于所接收的确认数据和存储在所述永久存储设备中的信息,从所述缓存计算机接收的所述确认数据中提取与将向所述永久存储设备写入的所述副本数据相对应的所述标识信息和所述版本号,并且
向所述缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
18.一种存储程序的非瞬时计算机可读介质,所述程序包括用于使得与存储计算机连接的缓存用作存储计算机的指令,所述存储计算机包括永久存储设备,所述永久存储设备存储数据、所述数据的标识信息以及所述数据的版本号的集合:
缓存,所述缓存保存从所述永久存储设备获取的所述数据的副本数据;以及
控制器,其中
所述控制器向所述存储计算机传送确认数据,所述确认数据包括在所述缓存中更新的所述副本数据的所述标识信息和所述版本号,
从所述存储计算机接收包括与将写入到所述永久存储设备的所述副本数据相对应的所述标识信息和所述版本号的响应数据,并且
基于从所述存储计算机接收的所述响应数据和存储在所述缓存中的信息,来确定所述缓存中将被传送到所述存储计算机以被写入所述永久存储设备的所述副本数据。
CN201480033917.XA 2013-06-12 2014-05-19 控制对永久存储设备的数据写入的方法 Expired - Fee Related CN105339906B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013123717 2013-06-12
JP2013-123717 2013-06-12
PCT/JP2014/002620 WO2014199568A1 (ja) 2013-06-12 2014-05-19 永続記憶装置へのデータ書込制御方法

Publications (2)

Publication Number Publication Date
CN105339906A CN105339906A (zh) 2016-02-17
CN105339906B true CN105339906B (zh) 2018-07-20

Family

ID=52021890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480033917.XA Expired - Fee Related CN105339906B (zh) 2013-06-12 2014-05-19 控制对永久存储设备的数据写入的方法

Country Status (4)

Country Link
US (1) US9767023B2 (zh)
JP (1) JPWO2014199568A1 (zh)
CN (1) CN105339906B (zh)
WO (1) WO2014199568A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747777B2 (en) * 2015-03-11 2020-08-18 Hitachi, Ltd. Computer system and transaction processing management method
CN111182014B (zh) * 2018-11-09 2022-04-26 北京华为数字技术有限公司 一种数据同步方法和装置
CN113448971A (zh) * 2020-03-24 2021-09-28 北京字节跳动网络技术有限公司 基于分布式系统的数据更新方法、计算节点和存储介质
CN111651464B (zh) * 2020-04-15 2024-02-23 北京皮尔布莱尼软件有限公司 数据处理方法、系统及计算设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339211A (ja) * 1999-05-25 2000-12-08 Casio Comput Co Ltd ファイル処理装置、ファイル処理システム、及び記憶媒体
CN101027668A (zh) * 2004-07-21 2007-08-29 海滩无极限有限公司 基于块映射表缓冲存储和虚拟文件系统的可堆叠文件系统模块的分布式存储结构
CN102667944A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JP2000089996A (ja) * 1998-09-16 2000-03-31 Nec Corp 情報処理装置およびデータベースシステム
JP4189332B2 (ja) 2004-01-30 2008-12-03 株式会社東芝 データベース管理システム、データベース管理方法、データベース登録要求プログラムおよびデータベース管理プログラム
JP2006235736A (ja) 2005-02-22 2006-09-07 Ricoh Co Ltd クラスタシステムのキャッシュ同期制御方法
TWI320534B (en) * 2006-06-23 2010-02-11 Qisda Corp State synchronization systems and methods
JP5223191B2 (ja) * 2006-12-18 2013-06-26 東レ株式会社 射出成形用加飾シート
WO2008149552A1 (ja) 2007-06-06 2008-12-11 Athena Telecom Lab, Inc. データベース矛盾解消方式
US8930686B2 (en) * 2009-12-23 2015-01-06 International Business Machines Corporation Deduplication of encrypted data
JP5984355B2 (ja) * 2010-10-22 2016-09-06 株式会社インテック 分散型データベースシステムおよび分散型データ処理システム
US8849825B1 (en) * 2010-12-23 2014-09-30 Amazon Technologies, Inc. System and method for clustering distributed hash table entries
US8868500B2 (en) * 2011-01-14 2014-10-21 Apple Inc. Data synchronization
US8499121B2 (en) * 2011-08-31 2013-07-30 Hewlett-Packard Development Company, L.P. Methods and apparatus to access data in non-volatile memory
US8700683B2 (en) * 2011-10-24 2014-04-15 Nokia Corporation Method and apparatus for providing a key-value based storage interface
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US9332083B2 (en) * 2012-11-21 2016-05-03 International Business Machines Corporation High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts
US9262323B1 (en) * 2012-11-26 2016-02-16 Amazon Technologies, Inc. Replication in distributed caching cluster

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339211A (ja) * 1999-05-25 2000-12-08 Casio Comput Co Ltd ファイル処理装置、ファイル処理システム、及び記憶媒体
CN101027668A (zh) * 2004-07-21 2007-08-29 海滩无极限有限公司 基于块映射表缓冲存储和虚拟文件系统的可堆叠文件系统模块的分布式存储结构
CN102667944A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法

Also Published As

Publication number Publication date
US20160110285A1 (en) 2016-04-21
US9767023B2 (en) 2017-09-19
WO2014199568A1 (ja) 2014-12-18
CN105339906A (zh) 2016-02-17
JPWO2014199568A1 (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
CN103207867B (zh) 处理数据块的方法、发起恢复操作的方法和节点
CN105338078B (zh) 用于存储系统的数据存储方法和装置
US10114848B2 (en) Ensuring the same completion status for transactions after recovery in a synchronous replication environment
US9411869B2 (en) Replication between sites using keys associated with modified data
CN105339906B (zh) 控制对永久存储设备的数据写入的方法
CN106161523B (zh) 一种数据处理方法和设备
CN109547512A (zh) 一种基于NoSQL的分布式Session管理的方法及装置
JP2007286860A (ja) データ転送方法及び情報処理装置
CN104168335B (zh) 一种数据同步方法和装置
CN101741830A (zh) 实现多客户端数据同步的方法、系统、客户端及服务器
KR101545626B1 (ko) Dds-db 연동 시스템
US11265182B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
CN108363641A (zh) 一种主备机数据传递方法、控制节点以及数据库系统
US9197715B2 (en) Information processing apparatus and data control method
CN109639773A (zh) 一种动态构建的分布式数据集群控制系统及其方法
CN109739690A (zh) 备份方法及相关产品
JP4550604B2 (ja) 設定情報同期プログラム
JP2022521412A (ja) 分散システムにおける非同期ストレージ管理
CN107707645A (zh) 用于pdm的远程文件同步装置及方法
CN116304390B (zh) 时序数据处理方法、装置、存储介质及电子设备
JP2011141695A (ja) メッセージ処理装置およびメッセージ処理方法
CN109257403A (zh) 数据存储方法及设备、分布式存储系统
KR100671789B1 (ko) 유무선 분산 환경하의 공간 데이터간의 데이터 전송과데이터 동기화 방법 및 그러한 방법의 실행을 위한 분산공간 데이터 동기화 시스템
CN107659623B (zh) 一种np数据分发方法及系统
CN115174507B (zh) 即时通信离线消息处理方法、客户端和服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180720