掌桥专利:专业的专利平台
掌桥专利
首页

数据缓存方法、存储控制装置、及存储设备

文献发布时间:2023-06-19 09:30:39


数据缓存方法、存储控制装置、及存储设备

技术领域

本发明涉及数据存储技术领域,特别涉及数据缓存技术。

背景技术

随着大数据、移动互联、和云服务等技术和应用的快速发展,应用服务器对存储服务器的访问需求也大大增加,这就需要加快对访问存储服务器的I/O请求的处理能力,以快速响应用户的访问需求。

现有技术一般是采用缓存的方法来加快I/O请求的处理能力,即在应用服务器和存储服务器中都设置缓存。应用服务器的缓存存储应用服务器决定的热数据,存储服务器的缓存存储从硬盘中读取的数据。

在应用服务器接收到I/O请求时,首先在应用服务器的缓存中访问数据块,若未命中,则将所述I/O请求传输至所述存储服务器,若在所述存储服务器也没有命中,则需要从硬盘中读取数据。

由于应用服务器的缓存的存储空间比存储服务器的缓存的存储空间小,所以缓存在上级缓存中的数据可能很快就会被淘汰掉,这样,在I/O请求所请求的数据块被应用服务器的缓存淘汰掉后,可在存储服务器的缓存中命中,从而可以快速响应I/O请求。

然而,应用服务器中的缓存和存储服务器的缓存之间缺乏协同操作的机制,可能会经常出现相同的数据在两个缓存都分别缓存而造成的存储资源浪费的问题,也有可能经常出现某热数据在两个缓存都没有缓存而需要到硬盘读取该数据而造成的数据读取速度延迟的问题。

发明内容

本申请提供数据缓存方法、存储设备、及数据处理系统,以提供多级缓存的协同操作机制。

本发明第一方面提供一种数据的缓存方法,所述方法应用于存储服务器,所述存储设备包括第一缓存、第二缓存和存储单元,所述第一缓存为应用服务器提供数据缓存,所述第二缓存用于为所述存储单元提供数据缓存。在所述存储服务器监测到第一触发条件的情况下,获取缓存在所述第一缓存中第一数据块的特征信息,然后根据所述第一数据块的特征信息确定所述第一数据块是否存储在所述第二缓存中;在确定所述第一数据块存储在所述第二缓存中的情况下,调整所述第一数据块在所述第二缓存中的淘汰优先级的级别。所述第一数据块的特征信息由所述第一数据块的数据内容决定。

根据一级缓存和二级缓存所缓存数据的情况,调整对所述第二缓存所缓存的数据块的淘汰优先级的级别,从而控制第二缓存中所缓存数据的淘汰顺序,减少第一缓存和第二缓存中所缓存的重复数据,或者延长热数据的在二级缓存中的缓存时间,提高IO请求的响应速度

可选地,所述第一触发条件为:所述存储服务器接收到数据写请求,且将所述数据写请求中包括的第一数据块写入所述第一缓存中,或者,所述第一数据块在所述第一缓存中的缓存时间超过预定时间,在这种触发条件下,在确定所述第一数据块存储在所述第二缓存中时,可以将所述第一数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第二缓存中存在新写入所述第一缓存中的数据块相同的数据块,或者存在与所述第一缓存中的热数据相同的数据块时,则提高所述第二缓存中的相同数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,节省存储资源。

可选地,所述第一触发条件为:所述存储服务器接收到从所述第一缓存中删除所述第一数据块的删除请求;在这种触发条件下,在确定所述第一数据块存储在所述第二缓存中时,将所述第一数据块在所述第二缓存中的淘汰优先级的级别降低。

这样,当从所述第一缓存中删除数据块时,若所要删除的数据块也存储在所述第二缓存中,则将若所要删除的数据块在第二缓存中的淘汰优先级降低,这样,可以使在第一缓存中删除的数据在第二缓存中保存的时间更长一些,当下次有IO请求访问所述数据块时,可以在第二缓存中命中,而不需要从硬盘中获取,所以提高IO请求的响应速度。

可选地,所述存储设备保存有所述第二缓存的索引记录,所述第二缓存的索引记录包括所述第二缓存中保存数据块的数据特征标识,所述第二缓存中保存的数据块的大小等于所述第一数据块的大小,所述每个所述第二缓存中保存的数据块的数据特征标识由所述每个所述第二缓存中保存的数据块的数据内容决定;所述第一数据块的特征信息为根据每个第一数据块的数据内容获得;根据所述第一数据块的数据特征标识查询所述第二缓存的索引记录来确定所述每个第一数据块是否存储在所述第二缓存中。

通过建立索引表的方式,可以快速的确定所述第一数据块是否存储在所述第二缓存中。

可选地,所述存储设备保存有地址表,所述地址表中记录了缓存在所述第二缓存中的第二数据块的特征标识及存储地址,在确定所述第一数据块存储在所述第二缓存中后,根据所述第一数据块的特征标识在所述地址表中找到所述第一数据块,然后再对所述第一数据块在所述第二缓存中的淘汰级别进行调整。通过建立地址表,可以快速的找到所述第一数据块在所述第二缓存中的位置,从而对所述第一数据块在所述第二缓存中的淘汰优先级的级别进行调整。

可选地,所述第二缓存索引记录只记录最近一段时间写入所述第二缓存的数据块的数据标识。这样可以减少第二缓存索引记录所占用的空间,减少查表的时间。

可选地,在所述存储服务器监测到第二触发条件的情况下,获取缓存在所述第二缓存中的第二数据块的特征信息,然后根据所述第二数据块的特征信息确定所述第二数据块是否存储在所述第一缓存中;在确定所述第二数据块存储在所述第一缓存中的情况下,调整所述第二数据块在所述第二缓存中的淘汰优先级的级别。

这样,可以监测第二缓存中的数据情况,通过判断缓存在第二缓存中数据是否缓存在第一缓存中,来调整缓存在第二缓存中的数据块的淘汰优先级级别,从而控制第二缓存中所缓存数据的淘汰顺序,从而减少第一缓存及第二缓存中所缓存的重复数据。

可选地,所述第二触发条件为:所述第二数据块在所述第二缓存中的缓存时间超过预定时间;在这种触发条件下,在确定所述第二数据块存储在所述第一缓存中时,将所述第二数据块从所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第一缓存中存在与所述第二缓存中的数据相同的数据块时,则提高所述第二缓存中数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,从而提高IO请求的响应速度。

可选地,所述第二触发条件为:删除所述第二缓存中的所述第二数据块,则所述方法还包括:

在确定所述第二数据未存储在所述第一缓存中的情况下,将所述第二数据在所述第二缓存中的淘汰优先级的级别降低。

这样,在删除第二缓存中的数据块时,若所删除的数据块没有存储在所述第一缓存中,则提高所删除的数据块的淘汰优先级,即不删除所述数据块,这样,当有IO请求访问所述数据块时,可在第二缓存中命中,则提高的IO请求的响应速度。

可选地,所述第二触发条件为:将包含所述第二数据块的数据写入所述第二缓存;在这种条件下,在确定所述第二数据块存储在所述第一缓存中的情况下,将所述第二数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,如果新缓存至所述第二缓存的数据块,也存储在第一缓存中,则提高新缓存数据块的淘汰优先级的级别,从而尽快淘汰新缓存至所述第二缓存的数据块,减少第一缓存和第二缓存中的重复数据,增加缓存数据,提高IO请求命中率。

可选地,所述存储设备保存有所述第一缓存的索引记录,所述第一缓存的索引记录包括所述第一缓存中保存的至少一个数据块的数据特征标识,每个数据块的大小为预定大小,所述每个数据块的数据特征标识由所述每个数据块包含的数据内容决定;所述第二数据块的特征标识是根据第二数据块包含的数据内容获得的;在确定所述第二数据块是否存储在所述第一缓存中时,是根据所述每个第二数据块的数据特征标识查询所述第一缓存的索引记录来确定。

这样,通过设置所述第一缓存索引记录,可以在所述第一缓存中快速的找到与所述第二缓存中的数据相同的数据。

可选地,所述第一缓存索引记录只记录最近一段时间写入所述第一缓存的数据块的数据标识。这样可以减少第一缓存索引记录所占用的空间,减少查表的时间。

本发明第二方面提供一种数据的缓存方法,应用于存储设备,所述存储设备包括第一缓存、第二缓存和存储单元,所述第一缓存为应用服务器提供数据缓存,所述第二缓存用于为所述存储单元提供数据缓存,在存储服务器监测到第二触发条件的情况下,获取缓存在所述第二缓存中的第二数据块的特征信息;根据所述第二数据的特征信息确定所述第二数据块是否存储在所述第一缓存中;在确定所述第二数据块存储在所述第一缓存中的情况下,调整所述第二数据块在所述第二缓存中的淘汰优先级的级别。

这样,可以监测第二缓存中的数据情况,通过判断缓存在第二缓存中数据是否缓存在第一缓存中,来调整缓存在第二缓存中的数据块的淘汰优先级级别,从而控制第二缓存中所缓存数据的淘汰顺序,从而减少第一缓存及第二缓存中所缓存的重复数据或者延迟淘汰第二缓存中没有存储在所述第一缓存中的数据,增加IO请求的响应速度。

可选地,所述第二触发条件为:所述第二数据块在所述第二缓存中的缓存时间超过预定时间,在确定所述第二数据块存储在所述第一缓存中的情况下,将所述第二数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第一缓存中存在与所述第二缓存中的数据相同的数据块时,则提高所述第二缓存中数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,节省存储资源。

可选地,所述第二触发条件为:删除所述第二缓存中的所述第二数据块,则所述存储服务器在确定所述第二数据未存储在所述第一缓存中的情况下,将所述第二数据在所述第二缓存中的淘汰优先级的级别降低。

这样,在删除第二缓存中的数据块时,若所删除的数据块没有存储在所述第一缓存中,则提高所删除的数据块的淘汰优先级,即不删除所述数据块,这样,当有IO请求访问所述数据块时,可在第二缓存中命中,则提高的IO请求的响应速度。

可选地,若所述第二触发条件为:将包含所述第二数据块的数据写入所述第二缓存;

在确定所述第二数据块存储在所述第一缓存中的情况下,将所述第二数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,如果新缓存至所述第二缓存的数据块,也存储在第一缓存中,则提高新缓存数据块的在所述第二缓存中淘汰优先级的级别,从而尽快淘汰新缓存至所述第二缓存的数据块,减少第一缓存和第二缓存中的重复数据,增加缓存数据,节省存储资源。

可选地,所述存储设备保存有所述第一缓存的索引记录,所述第一缓存的索引记录包括所述第一缓存中保存的数据块的数据特征标识,所述第一缓存中保存的数据块的大小等于所述第二数据块的大小,所述每个所述第二缓存中保存的数据块的数据特征标识由所述每个所述第二缓存中保存的数据块的数据内容决定;根据所述每个第二数据块的数据特征标识查询所述第一缓存的索引记录来确定所述第二数据块是否存储在所述第一缓存中。

这样,通过设置所述第一缓存索引记录,可以在所述第一缓存中快速的找到与所述第二缓存中的数据相同的数据。

可选地,所述第一缓存索引记录只记录最近一段时间写入所述第一缓存的数据块的数据标识。这样可以减少第一缓存索引记录所占用的空间,减少查表的时间。

本发明第三方面提供一种存储控制装置,用于控制存储设备的数据存储,所述存储设备包括第一缓存、第二缓存和存储单元,所述第一缓存为应用服务器提供数据缓存,所述第二缓存用于为所述存储单元提供数据缓存,第一监测单元、第一获取单元、第一确定单元、第一调整单元,在所述第一监测单元监测所述第一触发条件的情况下,所述第一获取单元获取缓存在所述第一缓存中第一数据块的特征信息;所述第一确定单元根据所述第一数据块的特征信息确定所述第一数据块是否存储在所述第二缓存中,在所述第一确定单元确定所述第一数据块存储在所述第二缓存中的情况下,调整所述第一数据块在所述第二缓存中的淘汰优先级的级别。

这样,根据一级缓存和二级缓存所缓存数据的情况,调整对所述第二缓存所缓存的数据块的淘汰优先级的级别,从而控制第二缓存中所缓存数据的淘汰顺序,提高IO请求的响应速度。

在第三方面的第一种实现方式中,所述第一触发条件为:根据第一数据写请求将包括至少一个所述第一数据块的待写入数据写入所述第一缓存中,或者,所述第一数据在所述第一缓存中的缓存时间超过预定时间;在确定所述第一数据块存储在所述第二缓存中的情况下,所述第一调整单元将所述第一数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第二缓存中存在新写入所述第一缓存中的数据块相同的数据块,或者存在与所述第一缓存中的热数据相同的数据块时,则提高所述第二缓存中的相同数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,从而提高IO请求的响应速度。

可选地,所述第一触发条件为:接收到在所述第一缓存中删除所述第一数据块的删除请求;

在所述第一确定单元确定所述第一数据块存储在所述第二缓存中的情况下,所述第一调整单元将所述第一数据块在所述第二缓存中的淘汰优先级的级别降低。

这样,当从所述第一缓存中删除数据块时,若所要删除的数据块也存储在所述第二缓存中,则将若所要删除的数据块在第二缓存中的淘汰优先级降低,这样,可以使在第一缓存中删除的数据在第二缓存中保存的时间更长一些,当下次有IO请求访问所述数据块时,可以在第二缓存中命中,而不需要从硬盘中获取,所以提高了IO请求的响应速度。

可选地,所述存储设备保存有所述第二缓存的索引记录,所述第二缓存的索引记录包括所述第二缓存中保存的至少一个第二数据块的数据特征标识,所述第二数据块的大小等于所述第一数据块的大小,所述每个第二数据块的数据特征标识由所述每个第二数据块包含的数据内容决定;

所述第一确定单元根据所述第一数据块的数据特征标识查询所述第二缓存的索引记录,确定所述每个第一数据块是否存储在所述第二缓存中。通过建立索引表的方式,可以快速的确定所述第一数据块是否存储在所述第二缓存中。

在所述第三方面的第四种实现方式中,所述存储设备保存有地址表,所述地址表中记录了缓存在所述第二缓存中的第二数据块的特征标识及存储地址,在确定所述第一数据块存储在所述第二缓存中后,根据所述第一数据块的特征标识在所述地址表中找到所述第一数据块,然后再对所述第一数据块在所述第二缓存中的淘汰级别进行调整。通过建立地址表,可以快速的找到所述第一数据块在所述第二缓存中的位置,从而对所述第一数据块在所述第二缓存中的淘汰优先级的级别进行调整。

可选地,所述第二缓存索引记录只记录最近一段时间写入所述第二缓存的数据块的数据标识。这样可以减少第二缓存索引记录所占用的空间,减少查表的时间。

可选地,所述存储控制装置还包括第二监测单元、第二获取单元、第二确定单元及第二调整单元,

在所述第二监测单元监测到所述第二触发条件的情况下,所述第二获取单元获取缓存在所述第二缓存中第二数据块的特征信息;所述第二确定单元根据所述第二数据块的特征信息确定所述第二数据块是否存储在所述第一缓存中在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,所述第二调整单元调整所述第二数据块在所述第二缓存中的淘汰优先级的级别。

这样,可以通过监测第二缓存中的数据情况,通过判断缓存在第二缓存中数据是否缓存在第一缓存中,来调整缓存在第二缓存中的数据块的淘汰优先级级别,从而控制第二缓存中所缓存数据的淘汰顺序,提高IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:所述第二数据块在所述第二缓存中的缓存时间超过预定时间;在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,所述第二调整单元

将所述第二数据块从所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第一缓存中存在与所述第二缓存中的数据相同的数据块时,则提高所述第二缓存中数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,从而提高IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:删除所述第二缓存中的所述第二数据块,当所述第二确定单元在确定所述第二数据未存储在所述第一缓存中的情况下,所述第二调整单元将所述第二数据在所述第二缓存中的淘汰优先级的级别降低。

这样,在删除第二缓存中的数据块时,若所删除的数据块没有存储在所述第一缓存中,则提高所删除的数据块的淘汰优先级,即不删除所述数据块,这样,当有IO请求访问所述数据块时,可在第二缓存中命中,则提高的IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:将包含所述第二数据块的数据写入所述第二缓存;在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,所述第二调整单元将所述第二数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,如果新缓存至所述第二缓存的数据块,也存储在第一缓存中,则提高新缓存数据块的淘汰优先级的级别,从而尽快淘汰新缓存至所述第二缓存的数据块,减少第一缓存和第二缓存中的重复数据,增加缓存数据,提高IO请求命中率。

可选地,所述存储设备保存有所述第一缓存的索引记录,所述第一缓存的索引记录包括所述第一缓存中保存的数据块的数据特征标识,每个所述第一缓存中保存的数据块的大小等于所述第二数据块的大小,所述每个数据块的数据特征标识由所述每个数据块的数据内容决定;

单元所述第二确认单元根据所述每个第二数据块的数据特征标识查询所述第一缓存的索引记录,确定所述第二数据块是否存储在所述第一缓存中。

这样,通过设置所述第一缓存索引记录,可以在所述第一缓存中快速的找到与所述第二缓存中的数据相同的数据。

可选地,所述第一缓存索引记录只记录最近一段时间写入所述第一缓存的数据块的数据标识。这样可以减少第一缓存索引记录所占用的空间,减少查表的时间。

本发明第四方面提供一种存储控制装置,用于控制存储设备的数据存储,所述存储设备包括第一缓存、第二缓存和存储单元,所述第一缓存为应用服务器提供数据缓存,所述第二缓存用于为所述存储单元提供数据缓存,所述存储控制装置包括:第二监测单元、第二获取单元,第二确定单元及第二调整单元。在所述第二监测单元监测到所述第二触发条件的情况下,所述第二获取单元获取缓存在所述第二缓存中的第二数据块的特征信息;所述第二确定单元根据所述第二数据块的特征信息确定所述第二数据块是否存储在所述第一缓存中;

所述第二调整单元在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,调整所述第二数据块在所述第二缓存中的淘汰优先级的级别。

这样,可以监测第二缓存中的数据情况,通过判断缓存在第二缓存中数据是否缓存在第一缓存中,来调整缓存在第二缓存中的数据块的淘汰优先级级别,从而控制第二缓存中所缓存数据的淘汰顺序,提高IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:所述第二数据块在所述第二缓存中的缓存时间超过预定时间;

在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,所述第二调整单元将所述第二数据块从所述第二缓存中的淘汰优先级的级别提高。

这样,在确定所述第一缓存中存在与所述第二缓存中的数据相同的数据块时,则提高所述第二缓存中数据块的淘汰优先级的级别,使其优先淘汰,从而减少第一缓存和第二缓存中重复存储的数据块,增加了第一缓存和第二缓存所缓存数据的总量,从而提高IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:删除所述第二缓存中的所述第二数据块,

当所述第二确定单元在确定所述第二数据未存储在所述第一缓存中的情况下,所述第二调整单元将所述第二数据在所述第二缓存中的淘汰优先级的级别降低。

这样,在删除第二缓存中的数据块时,若所删除的数据块没有存储在所述第一缓存中,则提高所删除的数据块的淘汰优先级,即不删除所述数据块,这样,当有IO请求访问所述数据块时,可在第二缓存中命中,则提高的IO请求的响应速度。

可选地,所述第二监测单元所监测到的所述第二触发条件为:将包含所述第二数据块的数据写入所述第二缓存;

在所述第二确定单元确定所述第二数据块存储在所述第一缓存中的情况下,所述第二调整单元将所述第二数据块在所述第二缓存中的淘汰优先级的级别提高。

这样,如果新缓存至所述第二缓存的数据块,也存储在第一缓存中,则提高新缓存数据块的淘汰优先级的级别,从而尽快淘汰新缓存至所述第二缓存的数据块,减少第一缓存和第二缓存中的重复数据,增加缓存数据,节省缓存资源。

可选地,所述存储设备保存有所述第一缓存的索引记录,所述第一缓存的索引记录包括所述第一缓存中保存的数据块的数据特征标识,每个第一缓存中存储的数据块的大小等于与所述二数据块的大小,所述每个数据块的数据特征标识由所述每个数据块的数据内容决定;

所述第二确认单元根据所述每个第二数据块的数据特征标识查询所述第一缓存的索引记录,确定所述第二数据块是否存储在所述第一缓存中。

这样,通过设置所述第一缓存索引记录,可以在所述第一缓存中快速的找到与所述第二缓存中的数据相同的数据。

可选地,所述第一缓存索引记录只记录最近一段时间写入所述第一缓存的数据块的数据标识。这样可以减少第一缓存索引记录所占用的空间,减少查表的时间。

本发明第五方面提供一种存储设备,所述存储设备包括处理器、内存、第一缓存、第二缓存和存储单元,所述第一缓存为应用服务器提供数据缓存,所述第二缓存用于为所述存储单元提供数据缓存,所述内存用于存储计算机执行指令,当所述存储设备运行时,所述处理器执行所述内存存储的所述计算机执行指令,以使所述存储设备执行第一方面所提供的数据缓存方法或者第二方面所提供的数据缓存方法。

本发明的实施例通过在存储服务器一侧设置第一缓存以缓存从所述应用服务器的应用缓存中的数据,然后判断第二缓存中是否存储有与第一缓存中相同的数据,并根据判断结果调整所述第二缓存中的数据淘汰优先级级别。如此,通过协调第一缓存及第二缓存中缓存的数据,减少第一缓存及第二缓存中的重复数据,节省缓存资源,还能暂缓淘汰第二缓存中不与第一缓存中的数据相同的数据,或者与第一缓存中的待删除数据相同的数据,从而增加IO请求的响应速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的存储服务器为应用服务器提供存储服务的数据处理系统的架构图。

图2为本发明实施例中存储服务器为应用服务器提供存储服务的数据处理系统的架构图。

图3为本发明一实施例中,在一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图4A及图4B为第二缓存的索引记录的示意图。

图5为图3所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图6为本发明一实施例中,在另一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图7为图6所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图8为本发明一实施例中,在另一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图9为图8所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图10为本发明一实施例中,在另一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图11为图10所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图12为本发明一实施例中,在另一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图13为图12所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图14为本发明一实施例中,在另一种触发条件下,第一缓存与第二缓存之间进行数据块协调的方法的流程图。

图15为图14所示的实施例中,第一缓存与第二缓存之间进行数据块协调的示意图。

图16为本发明实施例提供的一种存储控制装置的结构图。

图17为本发明实施例提供的另一种存储控制装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,为现有技术中的存储服务器110为应用服务器120提供存储服务的数据处理系统100的架构图。

所述应用服务器120可以为供多个用户同时访问的共享服务器,例如数据库服务器、虚拟机管理服务器、桌面云服务器等。所述存储服务器110为所述应用服务器120提供数据存储服务。

所述应用服务器120包括应用处理器121、应用缓存122、扩展缓存123及其他元件。所述存储服务器110包括存储处理器111、存储缓存112、存储单元113及其他元件。所述应用缓存122为所述应用服务器120提供数据缓存,一般为高速缓存如动态随机存储器(DynamicRandom Access Memory,DRAM),但是由于DRAM的价格比较贵,所以一般容量较小。所述扩展缓存123一般为固态存储器(Solid State Disk,SSD),由于SSD存储器的价格相对DRAM比较便宜,但是速度比较低,所以一般用作应用缓存122的扩展缓存,即用于存储从所述应用缓存122淘汰的数据。由于应用缓存122的容量比较小,所以缓存至所述应用缓存122的数据可能很快被淘汰掉,所以通过扩展缓存123缓存应用缓存122淘汰的数据,可增加IO请求的响应速度。

所述存储缓存112为所述存储单元113如硬盘提供数据缓存,一般也为DRAM。可以缓存从存储单元113读取的数据,也可以缓存应用服务器100写入存储服务器110的数据。由于在缓存数据时,会在存储服务器110的存储缓存112与应用服务器120的应用缓存122中同时缓存相同的数据,而存储服务器110又无法感知应用服务器120的应用缓存122中所缓存的数据,这就会造成应用服务器120中的应用缓存122与扩展缓存123中缓存的数据与存储服务器110的存储缓存112缓存相同的数据。另外,在扩展缓存123中的数据被淘汰时,缓存在存储缓存112中的与所述淘汰数据块相同的数据可能也处于很快被淘汰的位置,这样,在扩展缓存123中淘汰的数据在存储缓存112中也很快被淘汰后,当有IO请求访问所述淘汰数据时,又需要从存储单元113中调用,从而影响IO请求的响应速度。

可见,由于现有技术中存储服务器110无法获知应用服务器120中的扩展缓存123中所缓存的数据,缺乏两个缓存的协同操作机制,所以影响IO请求的响应速度或者导致存储资源的浪费。

本发明实施例通过在将应用服务器的缓存设置在存储服务器一侧设置,例如存储服务器上的第一缓存,用以缓存所述应用服务器的应用缓存的数据,然后判断存储服务器的第二缓存中是否存储有与第一缓存中相同的数据,并根据不同的判断结果调整所述第二缓存中的数据的淘汰优先级级别,例如,如果确定第二缓存中缓存有与缓存在所述第一缓存的数据相同的数据,则将所述二级缓存中与所述缓存数据相同的数据优先淘汰,如果确定第二缓存中缓存有与从所述第一缓存删除的数据相同的数据,则将所述第二缓存中与所述删除数据相同数据优先存储,如果所述第一缓存中没有缓存与所述二级缓存中待删除的数据相同的数据,则不删除所述从所述第二缓存待删除数据。如此,通过协调第一缓存及第二缓存中缓存的数据,减少第一缓存及第二缓存中的重复数据,还能暂缓删除第二缓存中不与第一缓存中所缓存的数据相同的待删除数据,或者与第一缓存中的待删除数据相同的数据,即可增加IO请求的响应速度。

下面结合具体实施例对本发明的技术方案做详细描述。

如图2所示,为本发明实施例中的存储服务器210为应用服务器220提供服务的数据处理系统200的架构图。

本实施例中,所述应用服务器220包括应用处理器221、应用缓存222、及其他元件,如内存等,由于其他元件本发明实施例未涉及,在图中并未示出。

所述存储服务器210包括存储处理器211、第一缓存212、第二缓存213、存储单元214、内存215,及其他元件,其他元件本发明实施例未涉及,在图中并未示出。

与图1中的数据处理系统100相比,本实施例中去掉应用服务器120中的扩展缓存123,而是在所述存储服务器210中增加了第一缓存212。本发明实施例中应用服务器中还设置有该应用缓存222,存储服务器210中的第一缓存212仅用于替代图1中的扩展缓存123,但实际上在本发明的其他实施例中,应用服务器也可以不再包括应用缓存222,设置在存储服务器210的第一缓存212可以完全替代应用服务器的各种缓存,因本领域技术人员完全可以理解上述扩展实施例,具体实现方式在此不赘述。

所述第一缓存212为所述存储服务器210提供给应用服务器220使用,用于缓存应用服务器220中的数据,例如,缓存从所述应用缓存222中删除的数据,当所述应用缓存222中的数据被删除时,所述应用服务器220的应用处理器221发送数据缓存请求至所述存储服务器210,使所述存储服务器210缓存从应用缓存222删除的数据至所述第一缓存212中,在所述删除数据缓存至所述第一缓存212后,所述存储处理器211将缓存至所述第一缓存212的数据的地址返回给所述应用服务器200的应用处理器221,则所述应用处理器221即可根据返回的数据地址对所述第一缓存中的数据进行控制,所述控制可以为对第一缓存212中的数据块进行读取、淘汰等。当所述应用处理器221要淘汰所述第一缓存212中的数据时,所述应用处理器221发送数据淘汰请求至所述存储服务器210,所述数据淘汰请求中包括要淘汰数据的地址,所述存储服务器210接收到所述淘汰请求后,根据所述淘汰请求中包含的淘汰数据的地址,在所述第一缓存中找到需要淘汰的数据后进行淘汰。

所述第二缓存213为所述存储单元214提供数据缓存。

这样,由于所述第一缓存212中所缓存的数据块为所述应用服务器的应用缓存222所淘汰的数据块,则所述存储服务器210可通过所述第一缓存212中缓存的数据获知之前缓存至所述应用缓存222的数据,这样,所述存储处理器211即可获知第一缓存212所缓存的数据,并协调所述第一缓存212与所述第二缓存213中所存储的数据块,以提高IO请求的响应速度,第一缓存212与第二缓存213中的数据的协调方法将在下文中做详细描述。

所述存储处理器211及应用处理器111可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。

所述内存215可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器,用于存储计算机执行指令2151。具体的,计算机执行指令2151中可以包括程序代码。

当存储服务器210运行时,所述存储处理器211运行计算机执行指令2151,可以执行图3、图6、图8、图10、图12及图14所述的第一缓存212及第二缓存213中的数据协调方法的流程。

图3、图6、图8、图10、图12及图14的协调方法将在下文做详细介绍。

本实施例中,包括两种情况,第一种情况为侦测所述第一缓存212中的所缓存数据的情况触发所述第一缓存212与第二缓存213所缓存数据的协调,第二种情况为侦测所述第二缓存213中的所缓存数据的情况触发所述第一缓存212与第二缓存213所缓存数据的协调。在实际产品中,可以只实施第一种情况下的数据协调方法,也可以只实施第二种情况下的数据协调方法,也可以同时实施两种情况下的数据协调方法。

下面将首先描述第一种情况下进行所述第一缓存212与第二缓存213的数据协调方法,在第一种情况下,所述第一缓存212与第二缓存213的数据协调在第一触发条件下触发,所述第一触发条件可以为:所述存储处理器211接收到所述应用服务器220发送的数据缓存请求,并根据所述数据缓存请求将所述数据缓存请求中包含的数据缓存至所述第一缓存212;所述存储处理器211接收到所述应用服务器220发送的数据删除请求;所述存储处理器211侦测到缓存在所述第一缓存中的数据的时间超过一阈值。

如图3所示,为所述存储处理器211侦测到的第一触发条件为所述存储处理器211接收到所述应用服务器220发送的数据缓存请求,并根据所述数据缓存请求将所述数据缓存请求中包含的数据缓存至所述第一缓存212时,所述第一缓存212与第二缓存212之间进行数据块协调的方法的流程图。

步骤S301,所述存储处理器211接收到所述应用服务器220发送的数据缓存请求,并根据所述数据缓存请求将所述数据缓存请求中包含的数据缓存至所述第一缓存212,获取所述缓存请求对应的至少一个第一数据块的特征标识。

本实施例中,所述存储处理器211获取所述第一数据的特征标识包括:根据第一数据块包含的数据内容获得所述第一数据块的数据特征标识。

所述第一数据块的特征标识为根据第一数据块包含的数据内容解析出的能够唯一标识所述第一数据块的代码。具体解析方法可以为对所述第一数据块本身做哈希运算,将计算的哈希值作为所述第一数据块的特征标识,也可以根据应用服务器220所运行应用所设定的数据块的特征识别出的能够唯一标识所述第一数据块数据特征标识,例如,在所述应用服务器所运行的为数据块库应用时,则可以通过所述第一数据块的第五到第八字节的相对数据块地址(relative data block address,RDBA)来唯一标识所述第一数据块。

步骤S302,所述存储处理器211根据所述第一数据块的特征标识确定所述第一数据块是否存储在所述第二缓存213中。

所述内存215中还存储有所述第二缓存的索引记录2153,所述第二缓存的索引记录2153包括所述第二缓存中保存的至少一个第二数据块的特征标识,所述第二数据块的大小等于所述第一数据块的大小,且所述第二数据块的特征标识的获取方法也与所述第一数据块的特征标识的获取方法一致,在此不再赘述。

如此,则可根据所述每个第一数据块的特征标识查询所述第二缓存索引记录2153来确定所述每个第一数据块是否存储在所述第二缓存213中。

所述第二缓存索引记录2153中所存储的数据块标识可以是所述第二缓存213所缓存的所有第二数据块的特征标识,也可以为部分第二数据块的特征标识。由于所述第二缓存213中所缓存的第二数据块数量比较多,所以如果将第二缓存213中的所有第二数据块的数据特征标识都记录在所述第二缓存索引记录2153中,则会浪费存储空间,且会增加查表的时间,从而影响性能,所以本实施例中所述第二缓存的索引记录2153只维护预设时间段内的缓存至所述第二缓存213的数据块的数据块标识,比如10分钟之内,具体如图4A及4B所示,所述第二缓存的索引记录中所存储的第二数据块的特征标识(如An、An-1……An-6)以所述第二数据块缓存至所述第二缓存的时间为顺序排列,且每个第二数据块的特征标识都具有一个时间戳(如12:01、12:02……12:10),用于记录所述第二数据块的特征标识对应的第二数据块缓存至所述第二缓存213的时间,所述时间段可以是10分钟,如图4A所示,当有第二数据块a缓存至所述第二缓存213时,所述存储处理器211获取所述第二数据块的特征标识(An+1),并将所获取的数据标识添加至所述第二缓存索引记录2153中的表头位置,同时加入时间戳(12:00),并启动计时。如图4B所示,若当前的时间是12:10,所述第二数据块b的特征标识(An-6)在所述第二缓存索引记录2153中的时间达到预设时间段(10分钟),则从所述第二缓存索引记录2153中删除。

在这种情况下,缓存在所述第二缓存中的数据才会记录在所述第二缓存索引记录中,则当所述第二缓存索引记录2153中记录有与所述第一数据块的特征标识相同的特征标识时,则确定所述第一数据块存储在所述第二缓存213中。

第二缓存索引记录2153也可以是一个哈希(Hash)表,哈希表的key是所述第二数据块标识,Value是0或1,0表示数据特征标识对应的第二数据块不存在所述第二缓存213中,1表示所述数据特征标识对应的数据块存在所述索引记录内。当数据块标识添加至所述第二缓存213的索引记录时,将所述value值设为1,当所述特征标识对应的第二数据块从所述第二缓存中删除时,可将所述删除的数据块对应的特征标识的Value设置为0。

在这种情况下,在确定所述第一数据块是否存储在所述第二缓存213中时,首先查询所述第一数据块的特征标识是否记录在所述第二缓存索引记录2153中,当所述第一数据块的特征标识记录在所述第二缓存索引记录2153中时,确定对应的Value值,当Value值为1时,则确定所述第一数据块存储在所述第二缓存213中。

步骤S303,当确定所述第一数据块存储在所述第二缓存213中时,所述存储处理器211根据所述第一数据块的数据特征标识及地址表在所述第二缓存213中找到所述第一数据块,当确定所述第一数据块未存储在所述第二缓存213中时,返回步骤S301。

所述地址表中记录了缓存在所述第二缓存中的第二数据块的特征标识及存储地址。当有第二数据块缓存至所述第二缓存213时,所述存储处理器211获取所述第二数据块的数据特征标识,并建立所述第二数据块的数据特征标识与存储地址之间的映射关系,形成所述地址表。当所述第二缓存213中所缓存的第二数据块被淘汰时,所述存储处理器211获取所述第二数据块的数据块标识,然后将所述第二数据块标识对应的映射关系从所述地址表中删除,从而使所述地址表随着所述第二缓存213中所缓存数据块的变化而更新。

步骤S304,当所述存储处理器211在所述第二缓存213中找到所述第一数据块后,将所述第一数据块在所述第二缓存213中的淘汰优先级的级别提高,可以是提高到最高级,也可以为提高到预设设定的优先级级别,如果提高到最高级,则所述第一数据块即可被从所述第二缓存213中删除。

本实施例中,通过淘汰队列的方式设定各个第二数据块的淘汰顺序,所述淘汰队列可以是近期最少使用算法(Least Recently Used,LRU)队列,也可以是近期经常使用算法(least frequently used,LFU)队列,或者其他对缓存中的数据进行淘汰的算法队列。

如图5所示,若第一数据块a缓存至所述第一缓存212后,所述存储处理器211确定所述第一数据块a的特征标识为An+1,然后在所述第二缓存索引记录2153中找到所述特征标识An+1,再在所述地址表2154中获取所述特征标识An+1对应的数据a的地址,最后调整所述数据a在LRU队列中的位置至优先被淘汰的位置,所述优先被淘汰的位置可以是LRU队列的队尾,也可以是靠近对尾的位置。

如图6所示,当所述第一触发条件为所述存储处理器211接收到所述应用服务器220发送的数据删除请求,所述第一缓存212与第二缓存212之间进行数据块协调的方法的流程图。

步骤S601,所述存储处理器211接收到所述应用服务器220发送的第一数据块删除请求,根据所述删除请求中包含的第一数据块的地址,在所述第一缓存中找到所述第一数据块,并获取所述第一数据块的特征标识。

步骤S602,所述存储处理器211根据所述第一数据块的特征标识确定所述第一数据块是否存储在所述第二缓存213中。

步骤S603,当确定所述第一数据块存储在所述第二缓存213中时,所述存储处理器211根据所述第一数据块的特征标识及地址表2154在所述第二缓存213中找到所述第一数据块,当确定所述第一数据块未存储在所述第二缓存213中时,则不做任何操作,继续对所述第一缓存212中的数据情况进行侦测。

步骤S604,当所述存储处理器211在所述第二缓存213中找到所述第一数据块后,将所述第一数据块在所述第二缓存中的淘汰优先级的级别降低,可以是降低到最低级,也可以为降低到预设设定的优先级级别。

如图7所示,若第一数据块f为根据数据删除请求确定从所述第一缓存212中删除的数据,所述存储处理器211确定组成所述第一数据的第一数据块(本实施例中所述第一数据只包括一个第一数据块)的数据特征标识An+1,然后在所述第二缓存索引记录2153中找到所述数据特征标识An+1,再在所述地址表2154中获取所述数据特征标识An+1对应的数据f的地址,最后调整所述数据f在LRU队列中的位置至优先被存储的位置,所述优先被存储的位置可以是LRU队列的队首,也可以是靠近对首的位置。

如图8所示,当所述第一触发条件为所述缓存在所述第一缓存212中的数据的时间超过一阈值时,所述第一缓存212与第二缓存212之间进行数据块协调的方法的流程图。

步骤S801,所述存储处理器211在侦测到所述第一缓存中212所缓存的第一数据块超过阈值时,获取所述第一数据块的特征标识。

步骤S802,所述存储处理器211根据所述第一数据块的特征标识确定所述第一数据块是否存储在所述第二缓存213中。

步骤S803,当确定所述第一数据块存储在所述第二缓存213中时,所述存储处理器211根据所述第一数据块的特征标识及地址表2154在所述第二缓存213中找到所述第一数据块,当确定所述第一数据块未存储在所述第二缓存213中时,返回步骤S301。

步骤S804,当所述存储处理器211在所述第二缓存213中找到所述第一数据块后,将所述第一数据块在所述第二缓存中的淘汰优先级的级别提高,可以是提高到最高级,也可以为提高到预设设定的优先级级别。

如图9所示,若第一数据块d在第一缓存212中的数据超过一阈值时,所述存储处理器211确定所述第一数据块d的数据特征标识An,然后在所述第二缓存索引记录中找到所述数据特征标识An,再在所述地址表中获取所述数据特征标识An对应的数据块d的地址,最后调整所述数据d在LRU队列中的位置至优先被淘汰的位置,所述优先被淘汰的位置可以是LRU队列的队尾,也可以是靠近对尾的位置。

以上为第一种情况下,即侦测所述第一缓存212中的所缓存数据的情况触发所述第一缓存212与第二缓存213的数据协调,下面将介绍第二种情况,即侦测所述第二缓存213中的所缓存数据的情况触发所述第一缓存212与第二缓存213的数据协调的方法。

在第二种情况下,所述第一缓存212与第二缓存213的数据协调在第二触发条件下触发,所述第二触发条件可以为:往所述第二缓存中缓存数据时;删除所述第二缓存中的数据时;或者所述第二缓存中的数据块在第二缓存中存储的时间超过了一阈值。下面分别对这二触发条件下,所述第一缓存及第二缓存的数据的协调方法进行说明。

如图10所示,为所述第二触发条件为所述第二缓存中缓存数据时,所述第一缓存及第二缓存的数据的协调方法的流程图。

步骤S1001,所述存储处理器211根据数据缓存请求,缓存数据至所述第二缓存,所缓存的数据被划分为预定大小的至少一个第二数据块,然后获取所述第二数据块的特征标识。

所述第二数据块的特征标识的获取方式与所述第一数据块的数据特征的获取方式相同,在此不再赘述。

步骤S1002,所述存储处理器211根据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。

本实施例中,所述内存215中还存储有第一缓存的索引记录2152,所述第一缓存索引记录2152包括所述第一缓存212中保存的至少一个第一数据块的数据特征标识,所述第一数据块的大小等于所述第二数据块的大小。

如此,则可根据所述每个第二数据块的特征标识查询所述第一缓存的索引记录2152来确定所述每个第二数据块是否存储在所述第一缓存212中。

所述第一缓存212的索引记录中所存储的数据块标识可以是所述第一缓存212所缓存的所有第一数据块的特征标识,也可以为部分第一数据块的特征标识。由于所述第一缓存212中所缓存的第一数据块数量比较多,所以如果将第一缓存212中的所有第一数据块的数据特征标识都存储在所述第一缓存索引记录中,则会浪费存储空间,且会增加查表的时间,从而影响性能,所以本实施例中所述第一缓存索引记录2153只维护预设时间段内的缓存至所述第一缓存212的第一数据块特征标识,比如10分钟之内。

在这种情况下,缓存在所述第一缓存212中的数据才会记录在所述第一缓存索引记录2152中,则当所述第一缓存索引记录2152中记录有与所述第一数据块的特征标识相同的特征标识时,则确定所述第一数据块存储在所述第一缓存212中。

所述第一缓存索引记录2152也可以是一个哈希(Hash)表,哈希表的key是所述第一数据块标识,Value是0或1,0表示数据特征标识对应的第一数据块不存在所述第一缓存212中,1表示所述数据特征标识对应的数据块存在所述索引记录内。当第一数据块标识添加至所述第一缓存212的索引记录时,将所述value值设为1,当所述特征标识对应的第一数据块从所述第一缓存中删除时,可将所述删除的数据块对应的特征标识的Value设置为0。

在这种情况下,在确定所述第二数据块是否存储在所述第一缓存212中时,首先查询所述第一数据块的特征标识是否记录在所述第一缓存索引记录2152中,当所述第一数据块的特征标识记录在所述第一缓存索引记录2152中时,确定对应的Value值,当Value值为1时,则确定所述第一数据块存储在所述第一缓存212中。

步骤S1003,当所述存储处理器211根据所述第二数据的特征标识确定所述第二数据存储在所述第一缓存212中时,将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高,所述提高可以是提高到最高级,也可以为预先设定的优先级级别。当所述存储处理器211确定所述第二数据未存储在所述第一缓存212中时,则不调整所述第二数据的优先级级别。

如图11所示,缓存至所述二缓存213的第二数据块a1的特征标识为Bn+1,查询所述第一缓存索引记录2152,在所述第一缓存索引记录2152中找到所述数据块a1的特征标识,则说明所述第二数据a1存储在所述第一缓存212中,则可将所述第二数据块a1调整到所述LRU队列的队尾位置,也可以调整到靠近对尾的位置。

如图12所示,当所述存储处理器211从所述第二缓存213中删除数据时,所述第一缓存212及第二缓存213的数据的协调方法的流程图。

步骤S1201,所述存储处理器211确定从所述第二缓存213中待删除的第二数据块后,获取所述第二数据块的特征标识。

步骤S1202,所述存储处理器211根据所述第二数据的特征标识确定所述第二数据块是否存储在所述第一缓存212中。

步骤S1203,当所述存储处理器211确定所述第二数据存储在所述第一缓存212中时,则删除所述第二数据块。

步骤S1204,当所述存储处理器211确定所述第二数据没有存储在所述第一缓存212中时,则将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高,所述提高可以是提高到最高级,也可以为预先设定的优先级级别。但是当所述待删除的数据块再次被选中为待删除的数据块时,则直接删除所述待删除的第二数据块。

如图13所示,第二数据块f1为所确定的从所述第二缓存中待删除的数据块,所获取的所述第二数据块f1的特征标识为Bn-3,所述特征标识Bn-3没有记录在所述第一缓存索引记录中,则说明所述第二数据块可能没有存储在所述第一缓存中,则将所述第二数据块f1调整至所述第二缓存213中的LRU队列的队首位置,或者靠近队首的位置。

如图14所示,当所述第二缓存中的第二数据块在第二缓存中存储的时间超过了一阈值时,所述第一缓存及第二缓存的数据的协调方法的流程图。

步骤S1401,当确定所述第二缓存中的第二数据块在第二缓存中存储的时间超过了一阈值时,获取所述第二数据块的特征标识。

步骤S1402,所述存储处理器211根据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。

步骤S1403,当所述存储处理器211确定所述第二数据存储在所述第一缓存212中时,则将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高。

步骤S1404,当所述存储处理器211确定所述第二数据没有存储在所述第一缓存212中时,则将所述第二数据在所述第二缓存213中的淘汰优先级的级别降低。

如图15所示,当所述第二数据块c1在所述第二缓存中所缓存的时间超过阈值时,则确定所述第二数据块c1的特征标识Bn是否记录在所述第一缓存索引记录中,当所述第二数据块c1的特征标识记录在所述第一缓存索引记录2152中时,将所述第二数据块c1调整至所述LRU队列的队尾,或者靠近队尾的位置。

当所述第二数据块d1在所述第二缓存213中所缓存的时间超过阈值时,则确定所述第二数据块d1的特征标识Bn-3是否记录在所述第一缓存索引记录中,当所述第二数据块d1的特征标识没有记录在所述第一索引记录中时,将所述第二数据块d1调整至所述LRU队列的队首,或者靠近队首的位置。

在本发明的其他实施例中,所述应用服务器可以为电子装置中的应用软件,所述应用缓存为所述应用软件提供数据缓存,所述存储服务器为电子装置的存储装置,为所述应用软件提供存储服务。

如图16所示,为本发明实施例提供存储控制装置的结构图。

所述存储控制装置包括第一监测单元1601、第一获取单元1602、第一确定单元1603及第一调整单元1604。

所述第一监测单元1601用于侦测所述第一缓存212中的所缓存数据的情况,以触发所述第一缓存212与第二缓存213的数据协调。所述第一缓存212与第二缓存213的数据协调有三种触发条件,分别为:所述第一监测单元1601接收到所述应用服务器220发送的数据缓存请求,并根据所述数据缓存请求将所述数据缓存请求中包含的第一数据缓存至所述第一缓存212;所述第一监测单元1601接收到所述应用服务器220发送的数据删除请求;所述第一监测单元1601侦测缓存在所述第一缓存中的数据的时间超过预设阈值。

当所述第一监测单元1601接收到所述应用服务器220发送的数据缓存请求,并根据所述数据缓存请求将所述数据缓存请求中包含的第一数据缓存至所述第一缓存212后,所述获取单元1602获取组成所述第一数据的第一数据块的特征标识,所述第一数据块的特征标识的获取方式前面已经介绍过,这里不再赘述。

所述确定单元1603根据所述第一数据的特征标识确定数所述第一据是否存储在所述第二缓存中。即所述确定单元1603根据所述每个第一数据块的数据特征标识查询所述第二缓存的索引记录来确定所述每个第一数据块是否存储在所述第二缓存213中。当所述第二缓存的索引记录中存在与所述第一数据块的数据特征标识相同的第二数据块索引记录时,则确定所述第一数据块存储在所述第二缓存213中。

当所述确定单元1603确定所述第一数据块存储在所述第二缓存213中时,所述调整单元1604根据所述第一数据块的特征标识及地址表在所述第二缓存213中找到所述第一数据块,然后将所述第一数据块在所述第二缓存中的淘汰优先级的级别降低,可以是降低到最低级,也可以为降低到预设设定的优先级级别。

当所述第一监测单元1601在侦测到所述第一缓存中212所缓存的第一数据块的超过易阈值时,获取所述第一数据块的特征标识。

所述确定单元1603根据所述第一数据的特征标识确定数所述第一据是否存储在所述第二缓存中。

所述调整单元1604根据所述第一数据块的特征标识及地址表在所述第二缓存213中找到所述第一数据块,将所述第一数据块在所述第二缓存中的淘汰优先级的级别提高,可以是提高到最高级,也可以为提高到预设设定的优先级级别。

如图17所示,所述存储控制装置进一步还包括第二监测单元1605,第二获取单元1606、第二确定单元1607及第二调整单元1608。

所述第二监测单元1605用于侦测所述第二缓存的数据情况,以触发所述第一缓存及所述第二缓存所缓存数据的协调。所述第一缓存212与第二缓存213的数据协调有三种触发条件,分别为往所述第二缓存中缓存数据时;删除所述第二缓存中的数据时;或者所述第二缓存中的数据块在第二缓存中存储的时间超过了一阈值。

当所述第二监测单元1605侦测数据缓存至所述第二缓存,且所缓存的数据被划分为预定大小的至少一个第二数据块后,获取所述第二数据块的特征标识。

所述第二确定单元1603用于据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。所述确定单元1602根据所述第二数据块的特征标识查询所述第一缓存的索引记录来确定所述每个第二数据块是否存储在所述第一缓存212中。当所述第一缓存的索引记录中存在与所述第二数据块的特征标识相同的第二数据块索引记录时,则确定所述第二数据块存储在所述第一缓存213中。

当所述第二确定单元1603定所述第二数据存储在所述第一缓存212中时,所述调整单元1604用于将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高,所述提高可以是提高到最高级,也可以为预先设定的优先级级别。当所述存储处理器211确定所述第二数据未存储在所述第一缓存212中时,则不调整所述第二数据的优先级级别。

当所述第二监测单元1605到从所述第二缓存213中待删除的第二数据块后,获取所述第二数据块的特征标识。

所述第二确定单元1605根据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。

当所述第二确定单元1605确定所述第二数据存储在所述第一缓存中时,所述第二调整单元删除所述第二数据块,当所述第二确定单元1605确定所述第二数据没有存储在所述第一缓存中时,所述第二调整单元将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高。

当所述第二监测单元1605侦测到从所述第二缓存213中待删除的第二数据块后,所述第二获取单元1606获取所述第二数据块的特征标识。

所述第二确定单元1607根据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。

当所述第二确定单元1605确定所述第二数据存储在所述第一缓存中时,所述调整单元1608删除所述第二数据块。当所述第二确定单元1605确定所述第二数据存储在所述第一缓存中时,则将所述调整单元将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高。

当所述第二监测单元1605侦测到所述第二缓存中的第二数据块在第二缓存中存储的时间超过了一阈值时,所述第二获取单元1606获取所述第二数据块的特征标识。

所述第二确定单元1606根据所述第二数据的特征标识确定所述第二数据是否存储在所述第一缓存中。

当所述第二确定单元1605确定所述第二数据存储在所述第一缓存中时,则所述调整单元1608将所述第二数据在所述第二缓存213中的淘汰优先级的级别提高。当所述第二确定单元1605确定所述第二数据没有存储在所述第一缓存中时,则所述调整单元1608将所述第二数据在所述第二缓存213中的淘汰优先级的级别降低。

本发明实施例还提供一种计算机可读介质,包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行图3、图6、图8、图10、图12、及图14所述的方法流程。

本发明实施例中的第一数据块,第二数据块中的第一、第二只是用于区别第一缓存和第二缓存中分别存储的数据块,第一、第二并没有包含级别不同、顺序不同的意思,也没有包含数量的涵义,第一数据块和第二数据块都可以是一个数据块,也都可以指代多个数据块。

本发明实施例中的第一触发条件和第二触发条件中的第一、第二只是用于区别侦测的是第一缓存中的数据还是第二缓存中的数据,第一、第二并没有包含级别不同、顺序不同的意思,也没有包含数量的涵义。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

以上对本发明实施例所提供的数据块写入装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120112195897