CN110121874B - 一种存储器数据替换方法、服务器节点和数据存储系统 - Google Patents
一种存储器数据替换方法、服务器节点和数据存储系统 Download PDFInfo
- Publication number
- CN110121874B CN110121874B CN201780055457.4A CN201780055457A CN110121874B CN 110121874 B CN110121874 B CN 110121874B CN 201780055457 A CN201780055457 A CN 201780055457A CN 110121874 B CN110121874 B CN 110121874B
- Authority
- CN
- China
- Prior art keywords
- data
- server node
- read
- type
- stored
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 324
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013500 data storage Methods 0.000 title claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种存储器数据替换方法、服务器节点和数据存储系统。该方法应用于数据存储系统,该数据存储系统包含客户端和多个服务器节点。该方法包括:多个服务器节点中的第一服务器节点接收读请求,当检测到待读取数据不在第一服务器节点的快速存储器中后,第一服务器节点根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据,并使用待读取数据替换待替换数据。其中,第一服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存。可以通过本方法增加从类型的数据在快速存储器中的比例,从而减少了其他服务器节点读取从类型的数据的等待时间,达到减少系统读操作时延的目的。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种存储器数据替换方法、服务器节点和数据存储系统。
背景技术
当前存储服务需要对外提供可扩展的服务能力,因此主流的存储服务都是以分布式系统的形式存在。在分布式存储服务中,为了保证系统的可靠性,数据通常使用多副本形式,数据分片做成多个完全相同的副本分别在同的服务节点上进行存储。
在使用数据副本时,为了保证数据的一致性,对于某个数据的写入和修改、读取等作,需要设定一致性策略,客户端对存储服务的读写必须遵循这样的策略,才能保证相应的数据一致性。目前主流的存储服务一般由服务器节点来保证数据的一致性。对于一次读操作,客户端的将读请求发送给保存有待读取数据副本的一个服务器节点,该服务器节点将请求解析后,再将该请求发送给保存有该待读取数据副本的其他服务器节点,分别读取数据后,将数据返回给第一个服务器节点进行数据一致性确认,并将满足一致性的结果返回给客户端。
存储服务通过内存来缓存数据,以加速写操作或后续的读操作,降低请求时延。在读取数据时,服务会将数据从持久化存储加载到内存中,内存中的数据在单次使用后,仍然会保留在内存中作为数据缓存。如果后续有请求读取已经存在于数据缓存中的数据,则称为缓存命中,可以直接从数据缓存中返回结果,而不用再次从持久化存储中读取数据,大大提升了读取速度。
发明内容
有鉴于此,本申请公开了一种存储器数据替换方法、服务器节点和数据存储系统。在选择服务器节点的快速存储器中被替换的数据时,会参照该快速存储器中保存的数据的数据类型,根据数据类型优先将主类型的数据替换出快速存储器,从而保留从类型的数据。
第一方面,本申请公开了一种应用于数据存储系统的存储器数据替换方法,该数据存储系统包含客户端和多个服务器节点。该方法包括:多个服务器节点中的第一服务器节点接收读请求,第一读请求用于读取第一待读取数据,当检测到第一待读取数据不在第一服务器节点的快速存储器中后,第一服务器节点根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据,并使用第一待读取数据替换待替换数据。其中,第一服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存。对于第一服务器,向客户端提供访问操作(例如,可供客户端读取)的数据属于主类型的数据,其他服务器节点的主类型的数据在该第一服务器节点的备份属于第一服务器节点的从类型的数据。即由客户端写入,能够向客户端提供读操作的数据属于主类型的数据,由其他服务器写入,能够向其他服务器提供读操作,以供其他服务器进行数据一致性校验的数据属于从类型的数据。
在数据存储系统中,对于一份客户端数据,存储其主类型的数据副本的服务器节点称为主节点,存储其从类型的数据副本的节点称为从节点。客户端在访问数据时,会向主节点发送访问请求,主节点向客户端返回数据之前,需要读取该数据在主节点的主类型的数据副本和在从节点的从类型的数据副本,并根据主类型的数据副本和从类型的数据副本进行一致性校验。与主节点从本地读取主类型的数据副本相比,主节点从从节点读取从类型的数据副本时,会多出主节点与从节点之间的网络延时。本申请在进行数据替换时,对快速存储器中的数据类型进行进行区分,服务器节点根据数据类型确定待替换的数据块,可以根据需要优先的在快速存储器中保留从类型的数据,增加从类型的数据在快速存储器中的命中率,从而减少了主节点从从节点读取数据的延时,增加了系统的总体性能。
根据第一方面,在第一方面第一种可能的实现方式中,该快速存储器中存储的数据拥有对应的数据类型标识。该方法还包括:第一服务器节点判断第一待读取数据的数据类型,并在使用第一待读取数据替换待替换数据后,根据第一待读取数据的数据类型设置与第一待读取数据对应的数据类型标识。
例如,可以使用一个比特位来表征数据的数据类型,如果数据为主数据类型,则对应的数据类型标识为“0”,如果数据为从类型的数据,则对应的数据类型标识为“1”。使用数据类型标识标记在快速存储器中的数据类型,可以供第一服务器节点快速的确定数据的数据类型,并根据数据类型确定待替换数据。
根据第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,第一服务器节点判断第一待读取数据的数据类型包括:第一服务器节点根据读请求判断第一待读取数据的数据类型,如果读请求来自客户端,则第一待读取数据属于主类型的数据,如果读请求来自其他服务器节点,则第一待读取数据属于从类型的数据。
客户端在访问数据时,会向存储数据的主类型的数据副本的主节点发送读请求。如果读请求来自客户端,则说明第一待读取数据在本节点上是主类型的数据。主节点在向客户端返回第一待读取数据之前,需要向从节点发送读请求,以读取从类型的数据副本,从而进行数据的一致性校验。如果读请求来自其他服务器节点,则说明第一待读取数据在本节点是从类型的数据。
根据第一方面第一种可能的实现方式,在第一方面第三种可能的实现方式中,第一服务器节点判断第一待读取数据的数据类型包括:第一服务器节点根据第一待读取数据的键值计算第一待读取数据数据所属的服务器节点,如果计算结果为第一服务器节点,则第一待读取数据属于主类型的数据,如果计算结果不是第一服务器节点,则第一待读取数据属于从类型的数据。
读请求中携带有第一待读取数据的键值,该键值为第一待读取数据的索引。客户端在存储数据时,可以根据待存储数据的键值计算待存储数据的主节点,并将待存储数据发送给主节点。第一服务器节点接收到读请求后,也可以根据第一待读取数据的键值计算第一待读取数据的主节点,如果计算的主节点为该第一服务器节点,则第一待读取数据为第一服务器节点的主类型的数据。如果计算的主节点不是该第一服务器节点,则第一待读取数据为第一服务器节点的从类型的数据。
根据第一方面第一种可能的实现方式,在第一方面第四种可能的实现方式中,慢速存储器存储不同数据类型的数据于不同的位置。第一服务器节点第一服务器节点判断第一待读取数据的数据类型包括:第一服务器节点根据第一待读取数据在慢速存储器中存储的位置判断第一待读取数据的数据类型。
第一服务器节点节点可以在接收到的写请求时,判断待存储数据的数据类型。当第一服务器节点将待存储数据写入慢速存储器时,会根据待存储数据的数据类型,将待存储数据存储在慢速存储器的不同区域。例如,第一服务器节点的慢速存储器可以分为主分区和从分区,其中主分区用于存储主类型的数据,从分区用于存储从类型的数据。第一服务器节点可以根据数据在慢速存储器中存储的位置判断数据的第一待读取数据的数据类型。
根据第一方面以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,该方法还包括:第一服务器节点接收来自客户端的第一写请求,第一写请求用于存储第一待存储数据,将第一待存储数据写入快速存储器,并将第一待存储数据的数据类型标识设置为主类型。
因为快速存储器的存储速度快于慢速存储器,第一服务器节点接收到第一写请求后,可以先把第一待存储数据写入快速存储器。因为第一写请求来自客户端,第一服务器节点可以判断待写入数据为主类型的数据。
根据第一方面第五种可能的实现方式,在第一方面第六种可能的实现方式中,该方法还包括:第一服务器节点向第二服务器节点发送第二写请求,第二写请求用于将第一待存储数据写入第二服务器节点。
其中,第二服务器节点为第一服务器节点的从节点,第一服务器节点将待存储数据的备份存储在第一服务器节点的从节点中,从而达到容灾的目的。
根据第一方面以上任一种可能的实现方式,在第一方面第七种可能的实现方式中,该方法还包括:第一服务器节点从第三服务器节点接收第三写请求,第三写请求用于存储第三待存储数据,将第三待存储数据写入快速存储器,并将第三待存储数据的数据类型标识设置为从类型。
其中,第三服务器节点为第一服务器节点的主节点,第三写请求用于将第三服务器节点的主类型的数据的备份存储于第一服务器节点。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第八种可能的实现方式中,第一服务器节点根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据包括:第一服务器节点从快速存储器中存储的主类型的数据中确定待替换数据。
第一服务器节点可以优先的将从类型的数据保留在快速存储器中,从而最大化的提高从类型的数据在快速存储器中的命中率。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第九种可能的实现方式中,第一服务器节点根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据包括:第一服务器节点根据快速存储器中数据的历史访问情况和数据类型确定待替换数据。
第一服务器节点在选择待替换数据时,根据数据类型和数据的历史访问情况来确定待替换数据,可以折中的考虑从慢速存储器读取数据的时延和网络时延。
第二方面,本申请提供了一种可读介质,包括执行指令,当计算设备的处理器执行该执行指令时,该计算设备执行以上第一方面或以上第一方面的任一种可能的实现方式中的方法。
第三方面,本申请提供了一种计算设备,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当计算设备运行时,处理器执行存储器存储的执行指令,以使计算设备执行以上第一方面或以上第一方面的任一种可能的实现方式中的方法。
第四方面,本申请公开了一种服务器节点,该服务器节点包括:接收单元,用于接收读请求;确定单元,用于在第一待读取数据不在服务器节点的快速存储器中时,根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据,其中,服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存,该服务器节点的数据包括主类型的数据和从类型的数据,该服务器节点向客户端提供访问的数据属于主类型的数据,其他服务器节点的主类型的数据在服务器节点的备份属于从类型的数据;替换单元,用于使用第一待读取数据替换待替换数据。
根据第四方面,在第四方面第一种可能的实现方式中,快速存储器中存储的数据拥有对应的数据类型标识;该服务器节点还包括:判断单元,用于判断第一待读取数据的数据类型;设置单元,用于根据第一待读取数据的数据类型设置与第一待读取数据对应的数据类型标识。
根据第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,判断单元用于根据读请求判断第一待读取数据的数据类型,如果读请求来自客户端,则第一待读取数据属于主类型的数据,如果读请求来自其他服务器节点,则第一待读取数据属于从类型的数据。
根据第四方面第一种可能的实现方式,在第四方面第三种可能的实现方式中,判断单元用于根据第一待读取数据的键值计算第一待读取数据数据所属的服务器节点,如果计算结果为该服务器节点,则第一待读取数据属于该服务器节点的主类型数据,如果计算结果不是该服务器节点,则第一待读取数据属于该服务器节点的从类型数据。。
根据第四方面第一种可能的实现方式,在第四方面第四种可能的实现方式中,慢速存储器存储不同数据类型的数据于不同的位置;判断单元用于根据第一待读取数据在慢速存储器中存储的位置判断第一待读取数据的数据类型。
根据第四方面以上任一种可能的实现方式,在第四方面第五种可能的实现方式中,接收单元还用于接收来自客户端的第一写请求,第一写请求用于存储第一待存储数据;服务器节点还包括写入单元,用于将第一待存储数据写入快速存储器;设置单元还用于将第一待存储数据的数据类型标识设置为主类型。
根据第四方面第五种可能的实现方式,在第四方面第六种可能的实现方式中,该服务器节点还包括发送单元,用于向第二服务器节点发送第二写请求,第二写请求用于将第一待存储数据写入第二服务器节点。
根据第四方面以上任一种可能的实现方式,在第四方面第七种可能的实现方式中,接收单元还用于从第三服务器节点接收第三写请求,第三写请求用于存储第三待存储数据;该服务器节点还包括写入单元,用于将第三待存储数据写入快速存储器;设置单元还用于将第三待存储数据的数据类型标识设置为从类型。
根据第四方面或第四方面以上任一种可能的实现方式,在第四方面第八种可能的实现方式中,确定单元用于从快速存储器中存储的主类型的数据中确定待替换数据。
根据第四方面或第四方面以上任一种可能的实现方式,在第四方面第九种可能的实现方式中,确定单元用于根据快速存储器中数据的历史访问情况和数据类型确定待替换数据。
第四方面为第一方面方法对应的装置实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第四方面或第四方面任一种可能的实现方式,在此不再赘述。
第五方面,本申请公开了一种数据存储系统,系统包含客户端和多个服务器节点,其中,多个服务器中的第一服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存;第一服务器节用于接收读请求,在第一待读取数据不在快速存储器中时,根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据,并使用第一待读取数据替换待替换数据,其中,第一服务器节点的数据包括主类型的数据和从类型的数据,第一服务器向客户端提供访问的数据属于主类型的数据,其他服务器节点的主类型的数据在服务器节点的备份属于从类型的数据。
根据第五方面,在第五方面第一种可能的实现方式中,快速存储器中存储的数据拥有对应的数据类型标识;第一服务器节点还用于判断第一待读取数据的数据类型,并根据第一待读取数据的数据类型设置与第一待读取数据对应的数据类型标识。
根据第五方面第一种可能的实现方式,在第五方面第二种可能的实现方式中,第一服务器节点用于根据读请求判断第一待读取数据的数据类型,如果读请求来自客户端,则第一待读取数据属于主类型的数据,如果读请求来自其他服务器节点,则第一待读取数据属于从类型的数据。
根据第五方面第一种可能的实现方式,在第五方面第三种可能的实现方式中,第一服务器节点用于根据第一待读取数据的键值计算第一待读取数据数据所属的服务器节点,如果计算结果为服务器节点,则第一待读取数据属于主类型的数据,如果计算结果不是服务器节点,则第一待读取数据属于从类型的数据。
根据第五方面第一种可能的实现方式,在第五方面第四种可能的实现方式中,慢速存储器存储不同数据类型的数据于不同的位置;第一服务器节点用于根据第一待读取数据在慢速存储器中存储的位置判断第一待读取数据的数据类型。
根据第五方面以上任一种可能的实现方式,在第五方面第五种可能的实现方式中,第一服务器节点还用于收来自客户端的第一写请求,第一写请求用于存储第一待存储数据,将第一待存储数据写入快速存储器,并将第一待存储数据的数据类型标识设置为主类型。
根据第五方面第五种可能的实现方式,在第五方面第六种可能的实现方式中,第一服务器节点用于向多个服务器节点中的第二服务器节点发送第二写请求,第二写请求用于将第一待存储数据写入第二服务器节点。
根据第五方面以上任一种可能的实现方式,在第五方面第七种可能的实现方式中,第一服务器节点还用于从多个服务器节点中的第三服务器节点接收第三写请求,第三写请求用于存储第三待存储数据,将第三待存储数据写入快速存储器,并将第三待存储数据的数据类型标识设置为从类型。
根据第五方面或第五方面以上任一种可能的实现方式,在第五方面第八种可能的实现方式中,第一服务器节点用于从快速存储器中存储的主类型的数据中确定待替换数据。
根据第五方面或第五方面以上任一种可能的实现方式,在第五方面第九种可能的实现方式中,第一服务器节点用于根据快速存储器中数据的历史访问情况和数据类型确定待替换数据。
第五方面为第一方面方法对应的系统实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第五方面或第五方面任一种可能的实现方式,在此不再赘述。
根据本申请公开的技术方案,第一服务器节点根据数据类型在快速存储器中选择待替换数据块,可以增加从类型的数据在快速存储器中的比例,当其他服务器节点读取第一服务器节点处保存的从类型的数据时,可以有较大的数据命中率,从而减少了其他服务器节点的等待时间,达到减少系统读操作时延的目的。
附图说明
图1为依据本申请一实施例的数据存储系统的逻辑结构示意图;
图2A为依据本申请一实施例的服务器节点的组织结构示意图;
图2B为依据本申请一实施例的服务器节点的组织结构示意图;
图3为一种数据访问延时情况的示意图;
图4为一种数据访问延时情况的示意图;
图5为依据本申请一实施例的存储器数据替换方法的流程示意图;
图6为依据本申请一实施例的数据访问延时情况的示意图;
图7为依据本申请一实施例的服务器节点的逻辑结构示意图;
图8为依据本申请一实施例的服务器节点的逻辑结构示意图。
具体实施方式
下面将结合附图,对本申请实施例进行描述。
本申请实施例采用术语第一和第二等来区分各个对象,但各个“第一”和“第二”之间不具有逻辑或时序上的依赖关系。
在本申请实施例中,一份客户端数据在数据存储系统中有若干个副本,对于第一服务器,向客户端提供访问操作(例如,可供客户端读取)的数据属于主类型的数据,其他服务器节点的主类型的数据在该第一服务器节点的备份属于第一服务器节点的从类型的数据。即由客户端写入,能够向客户端提供读操作的数据属于主类型的数据,由其他服务器写入,能够向其他服务器提供读操作,以供其他服务器进行数据一致性校验的数据属于从类型的数据。对于一份客户端数据,存储其主类型的数据副本的服务器节点称为主节点,存储其从类型的数据副本的节点称为从节点。
在本申请实施例中,客户端可以为一个客户端装置(client device)或者终端设备(terminal device),具体可以为一台装载了客户端软件的计算设备。本申请实施例不对客户端的具体实现形式进行限定。
由于处理器的运算速度愈来愈快,存储器的数据存取速度通常无法跟上处理器的速度,从而影响计算机的执行效率。在本申请实施例中,在处理器与慢速存储器之间可以设置多个级别的存储器,越高级别的存储器的存取速度越快。处理器在进行数据读取的时候,会按照级别从高到低的顺序在不同存储器中依次查找,直至查找到待读取数据。
图1为依据本申请一实施例的数据存储系统架构的示意图。如图1所示,数据存储系统包括客户端101和多个服务器节点,图中示例性的示出三个服务器节点103-1,103-2和103-3。客户端101和多个服务器节点通过网络102进行通信。
每个服务器节点连接有快速存储器和慢速存储器,其中,快速存储器用于充当慢速存储器的缓存。服务器节点连接有快速存储器和慢速存储器是指第一服务器节点与慢速存储器可建立通信连接,但本申请实施例不限定服务器节点与快速存储器和慢速存储器之间具体的连接形式,服务器节点可以采用任意形式与快速存储器和慢速存储器连接。服务器节点可以通过连接访问快速存储器和慢速存储器。
其中,本申请实施例不限定快速存储器和慢速存储器的具体实现形式,慢速存储器和快速存储器是一个相对的概念,用于表达慢速存储器的存取速度慢于快速存储器的存取速度。例如,慢速存储器可以为向用户提供持久化存储服务器的外存,外存一般也成为辅助存储器,其存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(英文全称:solid state disk,缩写:SSD))等。快速存储器为存取速度快于慢速存储器的任意存储器,快速存储器可以为易失性存储器或者非易失性存储器。例如,快速存储器可以为服务器节点的内存,内存一般也成为主存储器,是处理器可以直接寻址的存储空间,一般为随机存取存储器(英文全称:Random-access memory,缩写:RAM),具体可以为静态随机存取存储器(英文全称:Static Random Access Memory,缩写SRAM)或者动态随机存取存储器(英文全称:Dynamic Random Access Memory,缩写:DRAM)。
应理解,慢速存储器可以为任意类型的存储器,而快速存储器可以为存取速度快于慢速存储器的任意类型的存储器,快速存储器与处理器之间还可以存在更快速度的存储器,本申请对此不进行限定。
慢速存储器的存取速度小于处理器的处理速度,可以使用快速存储器充当慢速存储器与处理器进行数据交换的缓冲区。当服务器节点要读取数据时,如果在比快速存储器更高级别的缓存中没有找到待读取数据,则服务器节点会首先从快速存储器中查找需要的数据,如果找到了则进行读取,如果找不到的话则从慢速存储器中找,并把在慢速存储器中找到的待读取数据写入快速存储器中。由于快速存储器的运行速度比慢速存储器快,故快速存储器的作用就是帮助硬件更快地运行。
以服务器节点103-1进行举例,服务器节点103-1连接有快速存储器104-1和慢速存储器105-1。其中,快速存储器104-1可以为服务器节点103-1的内存,慢速存储器105-1可以为服务器节点103-1的外存。其中,服务器节点103-1与快速存储器104-1之间还可以有多级缓存,为了描述的方便,在本申请实施例中,不针对服务器节点103-1与快速存储器之间的缓存进行描述。
当服务器节点103-1接收到写请求后,为了加快写入速度,会先把待存储数据写入快速存储器104-1,然后再将104-1中的数据写入慢速存储器105-1。当服务器节点103-1接收到读请求时,也首先在快速存储器104-1中查找待读取数据,如果快速存储器104-1中存在待读取数据,则服务器节点103-1直接在快速存储器104-1中进行数据的读取;如果快速存储器104-1中不存在待读取数据,则服务器节点103-1会在慢速存储器105-1中查找待读取数据,并将查找到的待读取数据写入快速存储器104-1,并在快速存储器104-1中进行数据的读取。如果服务器节点103-1将在慢速存储器105-1中查找到的待读取数据写入快速存储器104-1时,快速存储器104-1中已经没有足够的空闲空间,则服务器节点103-1需要在快速存储器104-1中确定待替换数据,并使用待读取数据替换待替换数据。
其中,服务器节点103-1在快速存储器104-1中确定待替换数据时,可以参照数据类型,例如,优先将主类型的数据替换出快速存储器104-1,优先保留从类型的数据。当其他服务器节点读取服务器节点103处保存的从类型的数据时,可以有较大的数据命中率,从而减少其他服务器节点的等待时间,总体达到减少读操作时延的目的。
其中,网络102可以是因特网,内联网(英文:intranet),局域网(英文全称:localarea network,缩写:LAN),广域网络(英文全称:wide area network,缩写:WAN),存储区域网络(英文全称:storage area network,缩写:SAN)等,或者以上网络的任意组合。
其中,慢速存储器中保存有主类型的数据和从类型的数据。
以慢速存储器105-1进行举例说明,慢速存储器105-1中保存的主类型的数据为可以向客户端101提供直接的访问操作的数据。主类型的数据由客户端101通过网络102发送至服务器节点103-1,并由服务器节点103-1存储于慢速存储器105-1。慢速存储器105-1中存储的从类型的数据为其他服务器节点的主数据在服务器节点103-1的备份。
例如,为了容灾(disaster tolerance或disaster recovery)的需要,服务器节点103-2可以将慢速存储器105-2中存储的主类型的数据在服务器节点103-1的慢速存储器105-1和服务器节点103-3的慢速存储器105-3中进行数据备份。
同理,服务器节点103-1可以将慢速存储器105-1中保存的主类型的数据在服务器节点103-2的慢速存储器105-2和服务器节点103-3的慢速存储器105-3中进行备份。当客户端101需要读取在服务器节点103-1的慢速存储器存储的主类型的数据时,客户端101会向服务器节点103-1发送读请求,服务器节点103-1接收到客户端101发送的读请求后,会从快速存储器104-1或105-1中读取待读取数据,并向服务器节点103-2和103-3发送读请求,以读取待读取数据在服务器节点103-2和服务器节点103-3的数据备份。读取成功后,服务器节点103-1会对三份数据进行一致性校验,如果三份数据相同,则将待读取数据返回给客户端101,如果三份数据不同,则服务器节点103-1可以进行数据恢复,并将恢复的数据返回给客户端101。例如,第一服务器节点可以使用校验纠错(英文全称:Error Checking andCorrection,缩写:ECC)数据读取时的差错检测和修正。当数据写入的时候,第一服务器节点根据数据生成ECC签名。如果主类型的数据副本和从类型的数据副本一致性校验时发现了错误,就使用ECC算法来修正检测到的错误。ECC算法可以为BCH编码或低密度奇偶校验码(英文全称:Low Density Parity Check Code,缩写:LDPC)编码等。
应理解,每一个服务器节点可以有一个或者多个从节点,本申请实施例以服务器节点103-1有103-2和103-3两个从节点进行举例,但本申请实施例并不限定服务器节点的从节点个数。
慢速存储器105-1中存储的其他服务器节点的主类型的数据的备份即为服务器节点103-1的从类型数据。105-1中保存的从类型的数据由其他服务器节点发送给服务器节点103-1,并由服务器节点103-1存储于慢速存储器105-1。在其他服务器节点需要一致性校验等操作时,会向服务器节点103-1发送读请求以读取在慢速存储器105-1中存储的备份数据(从类型的数据)。
图2A和图2B为依据本申请一实施例的服务器103的结构示意图。
如图2A所示,服务器103包括处理器201,处理器201与系统内存205连接。处理器201可以为中央处理器(CPU),图像处理器(英文:graphicsprocessing unit,GPU),现场可编程门阵列(英文全称:Field Programmable Gate Array,缩写:FPGA),或数字信号处理器(英文:digital signal processor,DSP)等计算逻辑或以上任意计算逻辑的组合。处理器201可以为单核处理器或多核处理器。
在本申请的一个实施例中,处理器201还包括数据替换逻辑210,数据替换逻辑210可以为具体的硬件电路或集成在处理器201中的固件模块。如果数据替换逻辑210为具体的硬件电路,则数据替换逻辑210执行本申请实施例的方法,如果数据替换逻辑210为固件模块,则处理器210执行数据替换逻辑210中的固件代码来实现本申请实施例的技术方案。数据替换逻辑210包括:(1)用于接收读请求的逻辑(电路/固件代码);(2)用于检测待读取数据是否在快速存储器中的逻辑(电路/固件代码)(3)用于根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据的逻辑(电路/固件代码);(4)用于使用待读取数据替换待替换数据的逻辑(电路/固件代码)。
总线209用于在服务器103的各部件之间传递信息,总线209可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。总线209还连接有辅助存储器202,输入/输出接口203和通信接口204。
辅助存储器202一般也称为外存,辅助存储器202的存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质等。在一些实施例中,辅助存储器202还可能进一步包括与处理器201分离的远程存储器,例如通过通信接口204和网络102进行访问的网盘(包括网络文件系统(英文全称:Network File System,缩写:NFS)等网络或机群文件系统)。在本申请实施例中,慢速存储器可以包括辅助存储器202,用于存储数据副本。
输入/输出接口203连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出设备可以为鼠标、键盘、显示器、或者光驱等。
通信接口204使用例如但不限于收发器一类的收发装置,来实现与其他设备或网络102之间的通信,通信接口204可以通过有线或者无线的形式与网络102互连。
本申请实施例的一些特征可以由处理器201执行系统内存205中的软件代码来完成/支持。如图2B所示,系统内存205可以包括一些软件,例如,操作系统208(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(例如Vxworks)),应用程序207,和数据替换模块206等。
在本申请的一个实施例中,处理器201执行数据替换模块206来实现本申请实施例的技术方案。数据替换模块206包括:(1)用于接收读请求的代码;(2)用于检测待读取数据是否在快速存储器中的代码;(3)用于根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据的代码;(4)用于使用待读取数据替换待替换数据的代码。
在本申请实施例中,快速存储器可以包括系统内存205,用于充当辅助存储器202的缓存。
此外,图2A和图2B仅仅是服务器103的示例,服务器103可能包含相比于图2A和图2B展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图2A和图2B中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
在存储系统中,服务器节点互为其他服务器节点的从节点,服务器节点的存储器中存储的数据比较类似,有很大比例的数据都是相同的。在主节点读取各个数据副本的过程中,主节点会将读请求发送到多个从节点,分别读取各个从节点上存储的数据副本。同一个数据的多个数据副本是相同的,如果每个服务器节点的快速存储器采用的数据替换策略相同且不对数据类型进行区分,则在快速存储器中缓存的数据也会有很大比例的数据是相同的。
举例而言,如果服务器节点103-2和服务器节点103-3是服务器节点103-1的从节点,即服务器节点103-1的主类型的数据会在服务器节点103-2和服务器节点103-3的存储器中存储有数据备份。则当客户端101向服务器节点103-1发送读请求后,服务器节点103-1会依次在快速存储器104-1和慢速存储器105-1中查找待读取数据,如果在快速存储器104-1中发现了待读取数据,则发生了命中,可以直接从快速存储器104-1中读取待读取数据,如果在快速存储器104-1中未发现待读取数据,则发生了未命中,服务器节点103-1需要去慢速存储器105-1中读取待读取数据。同时,服务器节点103-1需要向自己的从节点服务器节点103-2和服务器节点103-3发送读请求,以读取待读取数据在服务器节点103-2和服务器节点103-3的数据备份。在服务器节点103-2和服务器节点103-3中会经历与服务器节点103-1类似的读取流程。在读取成功后,服务器节点103-2和服务器节点103-3将读取到的待读取数据的备份返回给服务器节点103-1。服务器节点103-1和接收到的数据进行数据的一致性校验。
因为服务器节点103-1,服务器节点103-2和服务器节点103-3互为从节点,快速存储器104-1,快速存储器104-2和快速存储器104-3中存储的数据比较类似。如果服务器节点103-1,服务器节点103-2和服务器节点103-3采用相同的数据替换策略,且数据替换策略没有对主类型的数据和从类型的数据进行区分,则在数据读取的过程中,快速存储器104-1,快速存储器104-2和快速存储器104-3有很大的概率会同时发生命中或者未命中。
对于存储服务,客户端访问请求的时延是一个重要的指标,访问请求的时延越低,服务性能越好。客户端的读请求时延主要包括三个方面:读请求及数据的网络传输时延、服务器节点的处理逻辑时延、存储设备时延(从慢速存储器读取或者从快速存储器直接读取)。其中,处理逻辑时延相比于网络时延和存储设备时延,可以忽略。存储设备时延主要为当快速存储器发生数据未命中,从慢速存储器中读取数据的时延。访问请求的主要时延为网络时延和读取慢速存储器的时延。
当快速存储器104-1,快速存储器104-2和快速存储器104-3同时发生未命中时,读取的流程如图3所示。
其中,Tcache为服务器节点从快速存储器读取数据的时延,TIO为服务器节点从慢速存储器中读取数据的时延,Tnet为两个服务器节点之间的单向网络时延。除去客户端与服务器节点103-1之间的固定网络传输时延和服务器节点的处理逻辑时延等其他时延,客户端101读取数据至少需要的时延为:
T=MAX(Tcache+TIO,2Tnet+Tcache+TIO)=2Tnet+Tcache+TIO
其中,Tcache+TIO为服务器节点103-1从慢速存储器105-1读取待读取数据的时延。2Tnet+Tcache+TIO为服务器节点103-1从服务器节点103-2和服务器节点103-3处分别读取到待读取数据的备份需要的时延。
当快速存储器104-1,快速存储器104-2和快速存储器104-3同时发生未命中时,读取的流程如图4所示。
除去客户端与服务器节点103-1之间的固定网络传输时延和服务器节点的处理逻辑时延等其他时延,客户端101读取数据至少需要的时延为:
T=MAX(Tcache,2Tnet+Tcache)=2Tnet+Tcache
其中,Tcache为服务器节点103-1从快速存储器104-1读取待读取数据的时延。2Tnet+Tcache为服务器节点103-1从服务器节点103-2和服务器节点103-3处分别读取到待读取数据的备份需要的时延。
可以看出,上面两种场景中,因为主节点从自己的从节点读取数据需要通过网络进行两次传输(读请求和返回数据),然后才能进行结果一致性处理。同时,由于产生时延的主要组成部分为Tnet和TIO,因此这网络时延决定了系统整体时延T是由对从节点的访问时延决定的。在上面两种情况下,即使服务器节点103-1已经成功的读取到待读取数据,服务器节点103-1仍然需要等待2Tnet时延后,才可以进行数据的一致性校验。
有鉴于此,本申请实施例提供了一种存储器的数据替换方法,在选择第一服务器节点的快速存储器中被替换的数据时,会参照该快速存储器中保存的数据的数据类型,根据数据类型优先将主类型的数据替换出快速存储器,从而保留从类型的数据。当其他服务器节点读取第一服务器节点处保存的从类型的数据时,可以有较大的数据命中率,从而减少了其他服务器节点的等待时间,总体达到减少读操作时延的目的。如图5所示,方法500包括:
S501:第一服务器节点接收读请求。
在本申请实施例中,该读请求可以为来自客户端的读请求,也可以为来自其他服务器节点的读请求。读请求用于读取待读取数据。
如果是来自客户端的读请求,则该读请求用于读取第一服务器节点的主类型的数据。如果是来自其他服务器节点的读请求,则该读请求用于读取第一服务器节点的从类型的数据。
S502:第一服务器节点检测到待读取数据不在第一服务器节点的快速存储器中。
第一服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存。第一服务器节点与快速存储器和慢速存储器连接是指第一服务器节点与慢速存储器可建立通信连接,但本申请实施例不限定第一服务器节点与快速存储器和慢速存储器之间的连接形式,第一服务器节点可以采用任意形式与快速存储器和慢速存储器链接。
第一服务器节点接收到读请求后,会首先在快速存储器中查找待读取数据,如果待读取数据在第一服务器节点的快速存储器中,则第一服务器节点可以从快速存储器中读取待读取数据。如果待读取数据不在第一服务器节点的快速存储器中,则第一服务器节点需要从第一服务器节点的慢速存储器中读取待读取数据,并将待读取数据写入第一服务器节点的快速存储器中。
S503:第一服务器节点根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据。
如果待读取数据不在第一服务器节点的快速存储器中,但第一服务器节点的快速存储器仍然有剩余的存储空间,且足以存储待读取数据,则第一服务器节点可以从慢速存储器中读取待读取数据,并将待读取数据直接存储于快速存储器中。
如果待读取数据不在第一服务器节点的快速存储器中,且第一服务器节点剩余的存储空间不足以存储器待读取数据,则第一服务器节点需要在快速存储器中确定待替换数据。
在本申请实施例中,快速存储器中存储的数据拥有对应的数据类型标识,该数据类型表示用于表示数据的数据类型。例如,可以使用一个比特位来表征数据的数据类型,如果数据为主数据类型,则对应的数据类型标识为“0”,如果数据为从类型的数据,则对应的数据类型标识为“1”。
第一服务器节点可以根据数据对应的数据类型标识来确定数据的数据类型,并根据数据的数据类型从快速存储器中选择待替换数据。
在本申请实施例中,第一服务器节点可以从快速存储器中存储的主类型的数据中确定待替换数据。即,第一服务器节点优先将从类型的数据保存在快速存储器中,从而增大从类型的数据在快速存储器的命中率,以此来减少第一服务器节点的主节点访问数据的时延。
第一服务器节点还可以根据快速存储器中存储的数据被访问的情况和数据类型来选择待替换数据。例如,第一服务器节点可以根据数据的热度(popularity)和数据类型来选择待替换数据。数据的热度可以为数据在一定时间内被访问的频率或离上次数据被访问时的时长。
第一服务器节点可以统计快速存储器中存储的每一份数据在一定时间内被访问的次数C,并根据数据被访问的次数和数据类型来选择待替换数据。具体的,第一服务器节点根据数据被访问的次数和数据类型计算替换系数P1。其中,对于主类型的数据P1=a1*C;对于从类型的数据P1=b1*C。其中,a1和b1均为大于0的变量或常量,且b1与a1的比值大于1。即
第一服务器节点可以根据替换系数P1来选择待替换数据。具体的,第一服务器节点选择替换系数P1最小的数据作为待替换数据。
第一服务器节点还可以统计快速存储器中存储的每一份数据距上次被访问的时长T,并根据数据距上次被访问的时长T和数据类型来选择待替换数据。具体的,第一服务器节点根据数据距上次被访问的时长T和数据类型计算替换系数P2。其中,对于主类型的数据P2=a2*T;对于从类型的数据P2=b2*T。其中,a2和b2均为大于0的变量或常量,且a2与b2的比值大于1。即
第一服务器节点可以根据替换系数P2来选择待替换数据。具体的,第一服务器节点选择替换系数P2最大的数据作为待替换数据。
第一服务器节点节点还可以收集服务器节点从快速存储器读取数据的时延Tcache,服务器节点从慢速存储器中读取数据的时延TIO,两个服务器节点之间的单向网络时延Tnet。并根据Tcache,TIO,Tnet与数据类型来选择待替换数据。具体的,第一服务器节点根据Tcache,TIO,Tnet与数据类型计算替换系数P3。
其中,
第一服务器节点可以根据替换系数P3选择待替换数据。具体的,第一服务器节点选择替换系数P3最小的数据作为待替换数据。
应理解,本申请不限定选择待替换数据的具体方式,只需要第一服务器节点在选择待替换数据时,会判断数据类型,并根据数据类型进行待替换数据的选择。只需要从数据类型更难被替换出快速存储器,主数据类型更容易替换出快速存储器,就可以达到减小数据访问时延的目的。例如,第一服务器节点节点还可以结合数据类型与最近最少使用到的(英文全称:Least Recently Used,缩写:LRU)或最不经常使用(Least Frequently Used,缩写:LFU)算法来选择待替换数据。
如图6所示,当服务器节点103-1接收到客户端101的读请求后,服务器节点103-1会去自己的存储器中查找读请求对应的主类型的数据,并向服务器节点103-2和服务器节点103-3读取读请求对应的从类型的数据。
因为快速存储器中优先保留有从类型的数据,则主类型的数据在快速存储器104-1中有较大的缺失率,服务器节点103-1有较大的概率需要去慢速存储器105-1中读取主类型的数据。服务器节点103-1从慢速存储器105-1中读取主类型的数据的时延为Tcache+TIO。快速存储器104-2和快速存储器104-3中有较大概率保存有读请求对应的从类型的数据,即从类型的数据在快速存储器104-2和快速存储器104-3中有较大的命中率。服务器节点103-1从服务器节点103-2和服务器节点103-3的快速存储器中读取从类型的数据的时延为2Tnet+Tcache。
除去客户端与服务器节点103-1之间的固定网络传输时延和服务器节点的处理逻辑时延等其他时延,服务器节点103-1读取到主类型的数据和从类型的数据的时延为:
T=MAX(Tcache+TIO,2Tnet+Tcache)
如果TIO与2Tnet在同一个量级,则主节点读取主类型的数据和读取从类型的数据的时延相近,避免了主节点的等待,合理的利用了快速存储器。
S504:第一服务器节点使用待读取数据替换待替换数据。
第一服务器节点从慢速存储器中读出待读取数据后,将快速存储器中的待替换数据替换为待读取数据。
进一步的,第一服务器节点还判断待读取数据的数据类型,并根据待读取数据的数据类型设置与待读取数据对应的数据类型标识。例如,使用一个比特位来作为数据类型标识,数据类型标识为“0”表示主类型,数据类型标识为“1”表示从类型。则第一服务器节点判断待读取数据为主类型的数据,则将待读取数据对应的数据类新标识置为“0”,如果第一服务器节点判断待读取数据为从类型的数据,则第一服务器节点将待读取数据对应的数据类型标识置为“1”。
第一服务器节点可以根据读请求判断待读取数据的数据类型,如果读请求来自客户端,则待读取数据属于主类型的数据,如果读请求来自其他服务器节点,则待读取数据属于从类型的数据。
第一服务器节点还可以根据待读取数据的键值计算待读取数据所属的主节点,如果计算结果为第一服务器节点,则待读取数据属于主类型的数据,如果计算结果不是第一服务器节点,则待读取数据属于从类型的数据。
可选的,慢速存储器存储不同数据类型的数据于不同的位置,即主类型的数据和从类型的数据在慢速存储器中的存储的位置不同。第一服务器节点可以根据待读取数据在慢速存储器中存储的位置判断待读取数据的数据类型。
当第一服务器节点接收到来自客户端的第一写请求后,第一服务器节点首先将第一写请求的待存储数据写入第一服务器节点的快速存储器,并将待存储数据的数据类型设置为主类型。例如,使用一个比特位来作为数据类型标识,数据类型标识为“0”表示主类型,数据类型标识为“1”表示从类型。则第一服务器节点将待存储数据对应的数据类新标识设置为“0”。
当第一服务器节点向第一服务器节点的快速存储器中写入第一写请求的待存储数据时,如果第一服务器节点的快速存储器中保存有与第一写请求的待存储数据键值相同的数据,即第一服务器节点的快速存储器中保存有第一写请求的待存储数据的历史版本,则第一服务器节点使用第一写请求的待存储数据替换快速存储器中与待存储数据键值相同的数据。如果第一服务器节点的快速存储器中不存在与第一写请求的待存储数据键值相同的数据,即第一服务器节点的快速存储器中不存在第一写请求的待存储数据的历史版本,则第一服务器节点从快速存储器中确定待替换数据,并使用待存储数据替换待替换数据。待替换数据的选择过程在上已有描述,在此不再赘述。
第一服务器节点接收到第一写请求后,还向第二服务器节点发送第二写请求,第二写请求用于将待存储数据写入第二服务器节点。从而完成对待存储数据的数据备份。其中,第二服务器节点为第一服务器节点的从节点。
当第一服务器节点接收到来自其第三服务器节点的第三写请求后,第一服务器节点首先将第三写请求的待存储数据写入第一服务器节点的快速存储器,并将待存储数据的数据类型设置为从类型。例如,使用一个比特位来作为数据类型标识,数据类型标识为“0”表示主类型,数据类型标识为“1”表示从类型。则第一服务器节点将待存储数据对应的数据类新标识设置为“1”。其中,第三服务器节点为第一服务器节点的主节点。
同理,当第一服务器节点向第一服务器节点的快速存储器中写入第三写请求的待存储数据时,如果第一服务器节点的快速存储器中保存有与第三写请求的待存储数据键值相同的数据,即第一服务器节点的快速存储器中保存有第三写请求的待存储数据的历史版本,则第一服务器节点使用第三写请求的待存储数据替换快速存储器中与待存储数据键值相同的数据。如果第一服务器节点的快速存储器中不存在与第三写请求的待存储数据键值相同的数据,即第一服务器节点的快速存储器中不存在第三写请求的待存储数据的历史版本,则第一服务器节点从快速存储器中确定待替换数据,并使用待存储数据替换待替换数据。待替换数据的选择过程在上已有描述,在此不再赘述。
图7为依据本申请一实施例的一种服务器节点700的逻辑结构示意图,服务器节点700应用于数据存储系统,该数据存储系统包括客户端和多个服务器节点700,如图7所示,服务器节点700包括接收单元702,确定单元704和替换单元706。
接收单元702,用于接收读请求。例如,接收单元702用于执行图5的步骤S501。
确定单元704,用于在待读取数据不在服务器节点的快速存储器中时,根据快速存储器中存储的数据的数据类型在快速存储器中存储的数据中确定待替换数据,其中,服务器节点连接有快速存储器和慢速存储器,快速存储器为慢速存储器的缓存,该服务器节点的数据包括主类型的数据和从类型的数据,向客户端提供访问的数据属于主类型的数据,其他服务器节点的主类型的数据在服务器节点的备份属于从类型的数据。例如,确定单元704用于执行图5中的步骤S503。
替换单元706,用于使用待读取数据替换待替换数据。例如,替换单元706用于执行图5中的步骤S504。
可选的,该快速存储器中存储的数据拥有对应的数据类型标识,如图8所示,服务器节点700还包括:判断单元708,用于判断待读取数据的数据类型;设置单元710,用于根据待读取数据的数据类型设置与待读取数据对应的数据类型标识。
可选的,判断单元708用于根据读请求判断待读取数据的数据类型,如果读请求来自客户端,则待读取数据属于主类型的数据,如果读请求来自其他服务器节点,则待读取数据属于从类型的数据。
可选的,判断单元708用于根据待读取数据的键值计算待读取数据所属的服务器节点,如果计算结果为服务器节点,则待读取数据属于主类型的数据,如果计算结果不是服务器节点,则待读取数据属于从类型的数据。
可选的,慢速存储器存储不同数据类型的数据于不同的位置,判断单元708用于根据待读取数据在慢速存储器中存储的位置判断待读取数据的数据类型。
接收单元702还用于收来自客户端的第一写请求,如图8所示,服务器节点700还包括写入单元712,用于将第一写请求的待存储数据写入快速存储器,设置单元710还用于将第一写请求的待存储数据的数据类型标识设置为主类型。
如图8所示,服务器节点700还可以包括发送单元714,用于向第二服务器节点发送第二写请求,第二写请求用于将待存储数据写入第二服务器节点。
接收单元702还用于从第三服务器节点接收第三写请求,如图8所示,服务器节点700还包括写入单元712,用于将第三写请求的待存储数据写入快速存储器,设置单元710还用于将第三写请求的待存储数据的数据类型标识设置为从类型。
可选的,确定单元704用于从快速存储器中存储的主类型的数据中确定待替换数据。
可选的,确定单元704用于根据快速存储器中数据的历史访问情况和数据类型确定待替换数据。
在本申请实施例中,接收单元702和发送单元714可以具体由图2A中的处理器201与通信接口204来实现,,或者由图2B中的处理器201,通信接口204和系统内存205中的数据替换模块206来实现。
在本申请实施例中,确定单元704,替换单元706,判断单元708,设置单元710和写入单元712可以具体由图2A中的处理器201中的数据替换逻辑210来实现,或者由图2B中的处理器201和系统内存205中的数据替换模块206来实现。
本申请实施例中,数据替换模块206可以包含接收单元704,替换单元706,替换单元706。
在本申请实施例中,数据替换模块206还可以包含接收单元702,判断单元708,设置单元710,写入单元712和发送单元714。
本申请实施例为图5方法实施例对应的第一服务器节点的装置实施例,图5实施例部分的特征描述适用于本申请实施例,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者替换其中部分技术特征;而这些修改或者替换,并不使相应技术方案脱离权利要求的保护范围。
Claims (32)
1.一种存储器数据替换方法,其特征在于,数据存储系统包含客户端和多个服务器节点,所述方法包括:
第一服务器节点接收读请求,所述读请求用于读取第一待读取数据;
第一服务器节点检测到所述第一待读取数据不在所述第一服务器节点的快速存储器中,所述第一服务器节点连接有所述快速存储器和慢速存储器;
所述第一服务器节点根据所述快速存储器中存储的数据的数据类型在所述快速存储器中存储的数据中确定待替换数据,其中,所述第一服务器节点的数据包括主类型的数据和从类型的数据,所述第一服务器向所述客户端提供访问的数据属于所述主类型的数据,其他服务器节点的主类型的数据在所述第一服务器节点的备份属于所述从类型的数据,所述主类型的数据作为所述待替换数据的优先级高于所述从类型的数据作为所述待替换数据的优先级;
所述第一服务器节点使用所述第一待读取数据替换所述待替换数据。
2.根据权利要求1所述的方法,其特征在于,所述快速存储器中存储的数据拥有对应的数据类型标识;
所述方法还包括:
所述第一服务器节点判断所述第一待读取数据的数据类型;
所述第一服务器节点根据所述第一待读取数据的数据类型设置与所述第一待读取数据对应的数据类型标识。
3.根据权利要求2所述的方法,其特征在于,所述第一服务器节点判断所述第一待读取数据的数据类型包括:
所述第一服务器节点根据所述读请求判断所述第一待读取数据的数据类型,如果所述读请求来自所述客户端,则所述第一待读取数据属于主类型的数据,如果所述读请求来自其他服务器节点,则所述第一待读取数据属于从类型的数据。
4.根据权利要求2所述的方法,其特征在于,所述第一服务器节点判断所述第一待读取数据的数据类型包括:
所述第一服务器节点根据所述第一待读取数据的键值计算所述第一待读取数据所属的服务器节点,如果计算结果为所述第一服务器节点,则所述第一待读取数据属于主类型的数据,如果计算结果不是所述第一服务器节点,则所述第一待读取数据属于从类型的数据。
5.根据权利要求2所述的方法,其特征在于,所述慢速存储器存储不同数据类型的数据于不同的位置;
所述第一服务器节点判断所述第一待读取数据的数据类型包括:
所述第一服务器节点根据所述第一待读取数据在所述慢速存储器中存储的位置判断所述第一待读取数据的数据类型。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一服务器节点接收来自所述客户端的第一写请求,所述第一写请求用于存储第一待存储数据;
所述第一服务器节点将所述第一待存储数据写入所述快速存储器,并将所述第一待存储数据的数据类型标识设置为所述主类型。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一服务器节点向第二服务器节点发送第二写请求,所述第二写请求用于将所述第一待存储数据写入所述第二服务器节点。
8.根据权利要求2-7任一项所述的方法,其特征在于,所述方法还包括:
所述第一服务器节点从第三服务器节点接收第三写请求,所述第三写请求用于存储第三待存储数据;
所述第一服务器节点将所述第三待存储数据写入所述快速存储器,并将所述第三待存储数据的数据类型标识设置为所述从类型。
9.根据权利要求1-7任一项所述的方法,其特征在于,
所述第一服务器节点从所述快速存储器中存储的主类型的数据中确定所述待替换数据。
10.根据权利要求1-7任一项所述的方法,其特征在于
所述第一服务器节点根据快速存储器中数据的历史访问情况和数据类型确定所述待替换数据。
11.一种服务器节点,其特征在于,所述服务器节点包括:
接收单元,用于接收读请求,所述读请求用于第一待读取数据的读取;
确定单元,用于在所述第一待读取数据不在所述服务器节点的快速存储器中时,根据所述快速存储器中存储的数据的数据类型在所述快速存储器中存储的数据中确定待替换数据,其中,所述服务器节点连接有所述快速存储器和慢速存储器,所述服务器节点的数据包括主类型的数据和从类型的数据,所述服务器节点向客户端提供访问的数据属于所述主类型的数据,其他服务器节点的主类型的数据在所述服务器节点的备份属于所述从类型的数据,所述主类型的数据作为所述待替换数据的优先级高于所述从类型的数据作为所述待替换数据的优先级;
替换单元,用于使用所述第一待读取数据替换所述待替换数据。
12.根据权利要求11所述的服务器节点,其特征在于,所述快速存储器中存储的数据拥有对应的数据类型标识;
所述服务器节点还包括:
判断单元,用于判断所述第一待读取数据的数据类型;
设置单元,用于根据所述第一待读取数据的数据类型设置与所述第一待读取数据对应的数据类型标识。
13.根据权利要求12所述的服务器节点,其特征在于,所述判断单元用于根据所述读请求判断所述第一待读取数据的数据类型,如果所述读请求来自所述客户端,则所述第一待读取数据属于主类型的数据,如果所述读请求来自其他服务器节点,则所述第一待读取数据属于从类型的数据。
14.根据权利要求12所述的服务器节点,其特征在于,所述判断单元用于根据所述第一待读取数据的键值计算所述第一待读取数据所属的服务器节点,如果计算结果为所述服务器节点,则所述第一待读取数据属于主类型的数据,如果计算结果不是所述服务器节点,则所述第一待读取数据属于从类型的数据。
15.根据权利要求12所述的服务器节点,其特征在于,所述慢速存储器存储不同数据类型的数据于不同的位置;
所述判断单元用于根据所述第一待读取数据在所述慢速存储器中存储的位置判断所述第一待读取数据的数据类型。
16.根据权利要求12所述的服务器节点,其特征在于,所述接收单元还用于收来自所述客户端的第一写请求,所述第一写请求用于存储第一待存储数据;
所述服务器节点还包括写入单元,用于将所述第一待存储数据写入所述快速存储器;
所述设置单元还用于将所述第一待存储数据的数据类型标识设置为所述主类型。
17.根据权利要求16所述的服务器节点,其特征在于,所述服务器节点还包括发送单元,用于向第二服务器节点发送第二写请求,所述第二写请求用于将所述第一待存储数据写入所述第二服务器节点。
18.根据权利要求12-17任一项所述的服务器节点,其特征在于,所述接收单元还用于从第三服务器节点接收第三写请求,所述第三写请求用于存储第三待存储数据;
所述服务器节点还包括写入单元,用于将所述第三待存储数据写入所述快速存储器;
所述设置单元还用于将所述第三待存储数据的数据类型标识设置为所述从类型。
19.根据权利要求11-17任一项所述的服务器节点,其特征在于,所述确定单元从所述快速存储器中存储的主类型的数据中确定所述待替换数据。
20.根据权利要求11-17任一项所述的服务器节点,其特征在于,所述确定单元根据快速存储器中数据的历史访问情况和数据类型确定所述待替换数据。
21.一种数据存储系统,其特征在于,所述系统包含客户端和多个服务器节点,其中,所述多个服务器中的第一服务器节点连接有快速存储器和慢速存储器;所述第一服务器节点用于接收读请求,所述读请求用于第一待读取数据的读取,其中,在所述第一待读取数据不在所述快速存储器中时,所述第一服务器节点根据所述快速存储器中存储的数据的数据类型在所述快速存储器中存储的数据中确定待替换数据,并使用所述第一待读取数据替换所述待替换数据,其中,所述第一服务器节点的数据包括主类型的数据和从类型的数据,所述第一服务器向所述客户端提供访问的数据属于所述主类型的数据,其他服务器节点的主类型的数据在所述第一服务器节点的备份属于所述从类型的数据,所述主类型的数据作为所述待替换数据的优先级高于所述从类型的数据作为所述待替换数据的优先级。
22.根据权利要求21所述的系统,其特征在于,所述快速存储器中存储的数据拥有对应的数据类型标识;
所述第一服务器节点还用于判断所述第一待读取数据的数据类型,并根据所述第一待读取数据的数据类型设置与所述第一待读取数据对应的数据类型标识。
23.根据权利要求22所述的系统,其特征在于,所述第一服务器节点用于根据所述读请求判断所述第一待读取数据的数据类型,如果所述读请求来自所述客户端,则所述第一待读取数据属于主类型的数据,如果所述读请求来自其他服务器节点,则所述第一待读取数据属于从类型的数据。
24.根据权利要求22所述的系统,其特征在于,所述第一服务器节点用于根据所述第一待读取数据的键值计算所述第一待读取数据所属的服务器节点,如果计算结果为所述服务器节点,则所述第一待读取数据属于主类型的数据,如果计算结果不是所述服务器节点,则所述第一待读取数据属于从类型的数据。
25.根据权利要求22所述的系统,其特征在于,所述慢速存储器存储不同数据类型的数据于不同的位置;
所述第一服务器节点用于根据所述第一待读取数据在所述慢速存储器中存储的位置判断所述第一待读取数据的数据类型。
26.根据权利要求22所述的系统,其特征在于,所述第一服务器节点还用于收来自所述客户端的第一写请求,所述第一写请求用于存储第一待存储数据,所述第一服务器节点将所述第一待存储数据写入所述快速存储器,并将所述第一待存储数据的数据类型标识设置为所述主类型。
27.根据权利要求26所述的系统,其特征在于,所述第一服务器节点用于向所述多个服务器节点中的第二服务器节点发送第二写请求,所述第二写请求用于将所述第一待存储数据写入所述第二服务器节点。
28.根据权利要求22-27任一项所述的系统,其特征在于,所述第一服务器节点还用于从所述多个服务器节点中的第三服务器节点接收第三写请求,所述第三写请求用于存储第三待存储数据,所述第一服务器节点将所述第三待存储数据写入所述快速存储器,并将所述第三待存储数据的数据类型标识设置为所述从类型。
29.根据权利要求21-27任一项所述的系统,其特征在于,所述第一服务器节点从所述快速存储器中存储的主类型的数据中确定所述待替换数据。
30.根据权利要求21-27任一项所述的系统,其特征在于,所述第一服务器节点根据快速存储器中数据的历史访问情况和数据类型确定所述待替换数据。
31.一种可读介质,其特征在于,包括执行指令,当计算设备的处理器执行所述执行指令时,所述计算设备执行权利要求1-10任一项所述的方法。
32.一种计算设备,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述计算设备执行权利要求1-10任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/114449 WO2019109209A1 (zh) | 2017-12-04 | 2017-12-04 | 一种存储器数据替换方法、服务器节点和数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110121874A CN110121874A (zh) | 2019-08-13 |
CN110121874B true CN110121874B (zh) | 2021-06-01 |
Family
ID=66750712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055457.4A Active CN110121874B (zh) | 2017-12-04 | 2017-12-04 | 一种存储器数据替换方法、服务器节点和数据存储系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110121874B (zh) |
WO (1) | WO2019109209A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552441B (zh) * | 2020-04-29 | 2023-02-28 | 重庆紫光华山智安科技有限公司 | 数据存储方法和装置、主节点及分布式系统 |
CN113750521B (zh) * | 2020-06-01 | 2024-03-22 | 上海莉莉丝科技股份有限公司 | 数据存储系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0930758A2 (en) * | 1998-01-16 | 1999-07-21 | Kabushiki Kaisha Toshiba | A distributed network computing system |
CN1258078A (zh) * | 1998-12-10 | 2000-06-28 | 西门子公司 | 存储设备的分布式块冗余 |
US6633891B1 (en) * | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
CN105872040A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283913A (zh) * | 2013-07-04 | 2015-01-14 | 高宏亮 | 网络存储系统以及网络存储方法 |
CN107092525A (zh) * | 2016-02-18 | 2017-08-25 | 深圳市深信服电子科技有限公司 | 数据缓存方法和装置 |
-
2017
- 2017-12-04 WO PCT/CN2017/114449 patent/WO2019109209A1/zh active Application Filing
- 2017-12-04 CN CN201780055457.4A patent/CN110121874B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0930758A2 (en) * | 1998-01-16 | 1999-07-21 | Kabushiki Kaisha Toshiba | A distributed network computing system |
US6633891B1 (en) * | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
CN1258078A (zh) * | 1998-12-10 | 2000-06-28 | 西门子公司 | 存储设备的分布式块冗余 |
CN105872040A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019109209A1 (zh) | 2019-06-13 |
CN110121874A (zh) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10983955B2 (en) | Data unit cloning in memory-based file systems | |
US9454538B2 (en) | Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
WO2020093501A1 (zh) | 文件存储方法、删除方法、服务器及存储介质 | |
US9213501B2 (en) | Efficient storage of small random changes to data on disk | |
US11288237B2 (en) | Distributed file system with thin arbiter node | |
WO2021089036A1 (zh) | 一种数据传输方法、网络设备、网络系统及芯片 | |
CN112799595A (zh) | 数据处理方法、设备及存储介质 | |
CN110121874B (zh) | 一种存储器数据替换方法、服务器节点和数据存储系统 | |
JP5893028B2 (ja) | キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 | |
CN112988680B (zh) | 数据加速方法、缓存单元、电子设备及存储介质 | |
CN116560562A (zh) | 一种读、写数据方法及装置 | |
US7725660B2 (en) | Directory for multi-node coherent bus | |
US9298397B2 (en) | Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix | |
US7669013B2 (en) | Directory for multi-node coherent bus | |
KR101188252B1 (ko) | 오류 검출 및 보정에 관련된 지연시간을 완화하기 위한시스템 및 방법 | |
CN116868173A (zh) | 降低在恢复操作期间网络延时的影响 | |
US9864661B2 (en) | Cache-accelerated replication of snapshots between storage devices | |
US11256439B2 (en) | System and method for parallel journaling in a storage cluster | |
CN116594551A (zh) | 一种数据存储方法及装置 | |
WO2016088372A1 (ja) | アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体 | |
CN112732667A (zh) | 一种分布式文件系统的可用性增强方法及系统 | |
US10656867B2 (en) | Computer system, data management method, and data management program | |
WO2023093091A1 (zh) | 数据存储系统、智能网卡及计算节点 | |
US11099948B2 (en) | Persistent storage segment caching for data recovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |