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

文档序号:9583640阅读:507来源:国知局
控制对永久存储设备的数据写入的方法
【技术领域】
[0001]本发明涉及控制对永久存储设备的数据写入的方法、计算机系统、存储计算机、缓存计算机和程序。
【背景技术】
[0002]最近,随着移动电话和互联被广泛使用,要处理的数据量增加。这样,需要以更快的速度处理大量数据。在这样的情况下,作为用于存储大量数据的系统,对键值存储的需求在增加。在键值存储中,使数据(值)与唯一符号(键)相关联,并且它们被成对地存储。在下文中,键和值被配对的数据被称为KV数据。具体地,具有能够在多个服务器中分布式地存储KV数据单元的功能的系统被称为分布式KVS。作为分布式数据库的一种类型的分布式KVS主要在不需要很强的数据一致性但是关注可扩展性和吞吐量的系统中。
[0003]作为用于改善诸如分布式KVS的分布式处理系统中的数据处理能力的技术,缓存的使用是公知的。缓存的使用是在高速存储设备中存储频繁使用的数据从而通过消除每次从低速永久存储设备中读取该数据的浪费的处理来实现高速处理的技术(例如,参见专利文献1)。
[0004]专利文献1:JP 2006-235736A

【发明内容】

[0005]图15是与本发明有关的使用缓存的分布式处理系统1000的示意图。分布式处理系统1000包括计算机1200、以及通过网络1100与计算机1200相连接的多个计算机1300。
[0006]计算机1200包括永久地存储数据1210的永久存储设备1220。例如,永久存储设备1220由HDD (硬盘驱动)来配置。永久存储设备1220中的数据1210包括数据主体1211、标识信息1212以及版本号1213。数据主体1211包括数值和字符串。标识信息1212是唯一地标识数据1210的标识符。版本号1213表示数据1210被更新时的最新时间。
[0007]计算机1300中的每一个包括存储从计算机1200的永久存储设备1220获得的数据1210的副本数据1310的缓存1320。例如,缓存1320由RAM(随机存取存储器)来配置。数据1310包括数据主体1311、标识信息1312以及版本号1313,该数据主体1311、标识信息1312以及版本号1313与原始数据1210的数据主体1211、标识信息1212以及版本号1213相对应。
[0008]接下来,将描述关于本发明的分布式处理系统1000的操作。
[0009]计算机1300中的每一个预先从计算机1200的永久存储设备1220获取数据1210,并且将其复制到缓存1320作为数据1310。然后,计算机1300中的每一个使用复制到缓存1320的数据1310来执行处理。此时,计算机1300中的每一个基于数据1310的数据主体1311被更新时的更新时间来改写版本号1313。
[0010]在图15中,一个计算机1300-1将缓存1320-1中的数据1310-1的数据主体1311-1从“D1”改写为“D2”,并将版本号1313-1从“T1”改写为“T2”。此外,在计算机1300-1更新数据1310-1之后的时间,其它计算机1300-2将缓存1320-2中的数据1310-2的数据主体1311-2从“D1”改写为“D3”,并且将版本号1313-2从“T1”改写为“T3”。
[0011]在由于在自己的计算机1300中发生故障而导致缓存数据的丢失的情况下,计算机1300中的每一个使在缓存1320中较新的更新的数据1310被反映在计算机1200的永久存储设备1210上。特定地,例如,计算机1300中的每一个执行下述操作:从缓存1320读取没有在永久存储设备1210上反映的更新的数据1310,并且定期地将其传送到计算机1200。在图15所示的示例中,计算机1300-1被配置为向计算机1200传送更新的数据1310-1,并且计算机1300-2向计算机1200传送更新的数据1310-2。
[0012]计算机1200基于从计算机1300接收到的更新的数据1310来更新永久存储设备1220中的原始数据1210。特定地,计算机1200从永久设备1220中读取具有与包括在从计算机1300接收的更新的数据1310中的数据标识符1312相同的数据标识符1212的数据1210,并将数据1210的版本号1213与数据1310的版本号1313作比较。如果版本号1313所示出的更新时间晚于版本号1213所示出的更新时间,则计算机1200将永久存储设备1220中的数据1210的数据主体1211和版本号1213改写为从计算机1300接收的数据1310的数据主体1311和版本号1313。另一方面,如果版本号1313所示出的更新时间不晚于版本号1213所示出的更新时间,则不执行上述改写。通过该操作,永久存储设备1220中的数据通过更晚的更新时间的更新数据来更新并且使得是永久的。
[0013]然而,在关于本发明的分布式处理系统1000中,在计算机之间浪费地传送和接收将不在永久存储设备上反映的数据。例如,在图15所示的示例中,计算机1300-2在计算机1300-1更新数据1310-1之后的时间更新数据1310-2。然而,如果在计算机1300之间存在反映时刻的间隙,则存在在计算机1300-2向计算机1200传送更新的数据1310-2之后计算机1300-1向计算机1200传送更新的数据1310-1的情况。在该情况下,在接收来自计算机1300-2的更新的数据1310-2之后,计算机1200通过使用所接收到的更新的数据1310-2来更新永久存储设备1220中的数据1210。然而,当接收来自计算机1300-1的更新的数据1310-1时,由于已经使用更新的数据1310-2更新了永久存储设备1220中的数据,所以不使用更新时间早于更新的数据1310-2的更新的数据1310-1来执行更新。结果,在计算机1300-1和计算机1200之间执行的更新的数据1310-1的传送和接收是无用的。
[0014]本发明的示例性目标是提供一种能够解决上述问题的控制对永久存储设备写入数据的方法,上述问题是在计算机之间浪费地传送和接收不需要在永久存储设备上反映的数据的问题。
[0015]根据本发明的第一示例性方面,一种控制对永久存储设备的数据写入的方法是控制保存在计算机系统中的缓存中的数据的写入的方法。计算机系统包括第一计算机和多个第二计算机。第一计算机包括存储数据、数据的标识信息和数据的版本号的集合的永久存储设备,并且第二计算机中的每一个包括保存从永久存储设备中获取的数据的副本数据的缓存。该方法包括
[0016]由第二计算机向第一计算机传送确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号;
[0017]由第一计算机基于从第二计算机接收的确认数据和存储在永久存储设备中的信息,来从第二计算机接收的确认数据中提取与需要写入永久存储设备的副本数据相对应的标识信息和版本号,并且向第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据;以及
[0018]由第二计算机基于从第一计算机接收的响应数据和存储在缓存中的信息,来确定要写入永久存储设备的、要传送到第一计算机的缓存中的副本数据。
[0019]根据本发明的第二示例性方面,一种计算机系统包括
[0020]第一计算机;以及
[0021]多个第二计算机。
[0022]第一计算机包括
[0023]存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备;以及
[0024]第一控制单元,并且
[0025]第二计算机中的每一个包括
[0026]保存从永久存储设备获取的数据的副本数据的缓存;以及
[0027]第二控制单元。
[0028]第二计算机的第二控制单元向第一计算机传送确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号,
[0029]基于从第二计算机接收的确认数据和存储在永久存储设备中的信息,第一计算机的第一控制单元从第二计算机接收的确认数据中提取与需要写入永久存储设备的副本数据相对应的标识信息和版本号,并且向第二计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
[0030]基于从第一计算机接收的响应数据和存储在缓存中的信息,第二计算机的第二控制单元确定要传送到第一计算机、以要写入永久存储设备的缓存中所存储的副本数据。
[0031]根据本发明的第三示例性方面,一种存储计算机是通过网络与多个缓存计算机连接的存储计算机,多个缓存计算机中的每一个具有缓存。该存储计算机包括
[0032]存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备;以及
[0033]控制单元。
[0034]从在缓存中保存存储在永久存储设备中的数据的副本数据的缓存计算机中,控制单元接收确认数据,该确认数据包括在自身计算机的缓存中更新的副本数据的标识信息和版本号,
[0035]基于所接收的确认数据和存储在永久存储设备中的信息,从缓存计算机接收的确认数据中提取与需要写入永久存储设备的副本数据相对应的标识信息和版本号,并且
[0036]向缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
[0037]根据本发明的第四示例性方面,一种缓存计算机是通过网络与存储计算机连接的缓存计算机。该存储计算机包括存储数据、数据的标识信息以及数据的版本号的集合的永久存储设备。该缓存计算机包括
[0038]保存从永久存储设备获取的数据的副本数据的缓存;以及
[0039]控制单元。
[0040]控制单元向存储计算机传送确认数据,该确认数据包括在缓存中更新的副本数据的标识信息和版本号,
[0041]从存储计算机接收包括与需要写入到永久存储设备的副本数据相对应的标识信息和版本号的响应数据,并且
[0042]基于从第一计算机接收的响应数据和存储在缓存中的信息,来确定要传送到存储计算机以将被写入永久存储设备的缓存中的副本数据。
[0043]根据本发明的第五示例性方面,一种程序是用于使得存储计算机用作通过网络与多个缓存计算机连接的存储计算机的程序,多个缓存计算机中的每一个具有缓存:
[0044]永久存储设备,该永久存储设备存储数据、数据的标识信息以及数据的版本号的集合;以及
[0045]控制单元。
[0046]从在缓存中保存存储在永久存储设备中的数据的副本数据的缓存计算机,控制单元接收确认数据,该确认数据包括在缓存中更新的副本数据的标识信息和版本号,
[0047]基于接收的确认数据和存储在永久存储设备中的信息,从缓存计算机接收的确认数据中提取与需要被写入永久存储设备的副本数据相对应的标识信息和版本号,并且
[0048]向缓存计算机传送包括所提取的标识信息和所提取的版本号的响应数据。
[0049]根据本发明的第六示例性方面,一种程序是用于使得与存储计算机连接的缓存计算机用作包括永久存储设备的存储计算机的程序,永久存储设备存储数据、数据的标识信息以及数据的版本号的集合:
[0050]保存从永久存储设备获取的数据的副本数据的缓存;以及
[0051]控制单元。
[0052]控制单元向存储计算机传送包括在缓存中更新的副本数据的标识信息和版本号的确认数据,
[0053]从存储计算机接收包括与需要写入永久存储设备的副本数据相对应的标识信息和版本号的响应数据,并且
[0054]基于从第一计算机接收的响应数据和存储
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1