CN116243871A - 数据存储系统、数据存储方法及电子设备 - Google Patents
数据存储系统、数据存储方法及电子设备 Download PDFInfo
- Publication number
- CN116243871A CN116243871A CN202310259451.6A CN202310259451A CN116243871A CN 116243871 A CN116243871 A CN 116243871A CN 202310259451 A CN202310259451 A CN 202310259451A CN 116243871 A CN116243871 A CN 116243871A
- Authority
- CN
- China
- Prior art keywords
- data
- counter
- storage area
- persistent memory
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013500 data storage Methods 0.000 title claims abstract description 83
- 238000013507 mapping Methods 0.000 claims abstract description 278
- 230000002085 persistent effect Effects 0.000 claims abstract description 186
- 238000012545 processing Methods 0.000 claims abstract description 79
- 230000008569 process Effects 0.000 claims description 31
- 238000011084 recovery Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000002688 persistence Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本说明书公开了一种数据存储系统、数据存储方法及电子设备。该数据存储系统包括:数据缓存模块、数据处理模块以及持久化内存,持久化内存中包括第一存储区域以及第二存储区域,数据缓存模块包括:映射数据缓存以及计数器缓存,所述映射数据缓存用于暂时存储至少部分映射数据,以及,在所述映射数据缓存空间小于预设阈值时将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述数据处理模块用于,获取目标计数器数据目标映射数据,根据目标计数器数据对内存数据加密或解密,并根据映射数据,从持久化内存中获取持久化内存读取请求所需数据密文,或将持久化内存写入请求包含的数据密文存储在持久化内存中的指定位置。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及数据存储系统、数据存储方法及电子设备。
背景技术
随着数据计算规模的爆发式增长,数据计算时对内存容量的需求也越来越大,尤其是对图数据的计算过程中,通常会存在有大量的图数据需要更新,这就加大了图数据持久化的开销。
已有研究使用检查点策略来维护持久数据的崩溃一致性,系统会定期发布一个检查点,检查点包含当前内存中已修改的数据(脏数据)、已修改的缓存数据以及处理器的状态数据,系统将检查点写入持久设备,为系统设置一个已知的正常点,使得系统可以在意外关闭或崩溃后的恢复过程中从该点开始恢复对数据的更改以及处理器状态,从而保证持久数据的一致性。
然而,在对数据进行读写的过程中,每接收到一个读写请求就需要在缓存中生成一个指示数据位置的映射数据,随着映射数据的增多导致大量的缓存空间被占用,使得检查点周期还未结束就需要将检查点数据提前写入目标内存,这些冗余的检查点提交操作会进一步增加数据计算过程所需的时间。
因此,如何减少系统缓存空间对映射数据的限制,是一个亟待解决的问题。
发明内容
本说明书提供一种数据存储系统、数据存储方法及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种数据存储系统,包括:数据缓存模块、数据处理模块以及持久化内存;
所述持久化内存中包括:第一存储区域以及第二存储区域,所述第一存储区域以及第二存储区域分别用于存储在上一个检查点周期结束时提交的检查点数据以及当前检查点周期中发生修改的工作数据,所述检查点数据用于在系统发生重启后进行数据恢复;
所述数据缓存模块包括:映射数据缓存以及计数器缓存,所述映射数据缓存用于暂时存储至少部分映射数据,以及,在所述映射数据缓存空间小于预设阈值时将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述映射数据用于确定所述检查点数据和所述工作数据在所述持久化内存中的存储区域;
所述计数器缓存用于,暂时存储至少部分计数器数据,所述计数器数据的数值随着目标数据的更新进行增加;
所述数据处理模块用于,从所述计数器缓存中获取所述持久化内存的写入请求对应的目标计数器数据,以及从所述映射数据缓存中获取所述写入请求对应的目标映射数据,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域,其中,每个目标数据的写入请求对应一个目标映射数据。
可选地,所述处理模块还用于,若所述映射数据缓存中未存储所述目标映射数据,则从所述持久化内存中获取所述目标映射数据;
在获取所述写入请求后,判断从所述持久化内存中获取的目标映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述加密数据存储在所述目标映射数据指向的检查点数据对应的存储区域,并将所述工作数据作为所述检查点数据,否则在所述映射数据指向的检查点数据和工作数据位于同一存储区域时,将所述加密数据存储在另一存储区域,在所述映射数据指向的检查点数据和工作数据位于不同存储区域时,将所述加密数据存储到所述映射数据指向的工作数据对应的存储区域。
可选地,所述持久化内存中还包括:日志存储区域、检查点元数据存储区域、计数器数据存储区域以及映射数据存储区域,所述日志存储区域用于存储所述计数器的回滚日志。
可选地,所述处理模块用于,针对每个检查点周期,当该检查点周期结束时,暂停应用程序的执行,将处理器缓存中的工作数据更新按照内存数据写入请求的处理流程写回所述持久化内存,将所述映射数据缓存中在该检查点周期发生更改的映射数据、所述计数器缓存中在该检查点周期发生更改的计数器数据以及处理器状态数据作为检查点数据写入所述持久化内存;
增加当前的检查点周期编号,并回收所述回滚日志所占用的持久化内存空间。
可选地,所述数据处理模块用于,在接收所述写入请求后,获取计数器数据,根据所述计数器数据对应的缓存行标志位,判断所述计数器数据是否在当前检查点周期发生更改;
若否,将所述计数器数据写入所述回滚日志,将所述回滚日志写入所述持久化内存中的日志存储区域,并更新所述计数器数据以及所述缓存行标志位;
若是,仅更新所述计数器数据;
根据更新后的计数器数据,对所述目标数据进行加密,得到加密数据。
可选地,所述数据缓存模块还包括:日志元数据寄存器以及检查点元数据寄存器;
所述日志元数据寄存器用于,暂时存储不多于指定数量的计数器数据在所述持久化内存中的存储地址,当存储的计数器存储地址达到所述指定数量时,将各计数器数据在所述持久化内存中的存储地址通过同一个内存写入请求发送到所述持久化内存,以及
暂时存储下一个允许使用的回滚日志的存储空间在所述持久化内存中的存储地址;
所述检查点元数据寄存器用于,存储所述映射数据在所述持久化内存中的起始地址和内存空间分配位图的指定部分,以及
存储在检查点提交阶段用于标记处理器缓存、计数器缓存和映射数据缓存中的发生修改的数据以及处理器状态数据是否刷新到所述持久化内存的标志位。
可选地,所述映射数据中包含有第一标志位以及第二标志位,所述第一标志位用于表征所述检查点数据存储在所述第一存储区域还是所述第二存储区域,所述第二标志位用于表征所述工作数据存储在所述第一存储区域还是所述第二存储区域。
可选地,所述处理模块用于,在接收所述写入请求后,判断所述映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述映射数据中所述第二标志位指向的存储区域设置为所述第一标志位指向的存储区域;
将所述映射数据对应的检查点周期编号更新为当前检查点周期编号;
判断所述写入请求在所述映射数据中对应的所述第一标志位与所述第二标志位指向的存储区域是否相同,若否,将所述加密数据存储在所述第二标志位指向的存储区域,若是,对所述第二标志位进行翻转,并将所述加密数据存储在翻转后的所述第二标志位指向的存储区域。
可选地,所述处理模块还用于,获取所述持久化内存的读取请求,根据所述读取请求对应的目标内存地址,获取所述读取请求对应的计数器数据以及映射数据;
根据所述映射数据,确定所述第二标志位指向的所述持久化内存中的存储区域,作为目标存储区域,并从所述目标存储区域读取加密数据;
根据所述计数器数据,对所述加密数据进行解密,得到所述读取请求对应的解密数据。
可选地,所述处理模块还用于,在系统重启后,从所述持久化内存中的日志存储区域读取系统重启前的目标检查点周期内生成的计数器的回滚日志;
根据所述回滚日志确定在所述目标检查点周期内的工作数据在所述持久化内存中的第一存储区域地址;
根据所述第一存储区域地址,获取指定映射数据,并判断所述指定映射数据对应的检查点周期编号与所述持久化内存的检查点元数据存储区域中系统检查点周期编号是否相同,若是,将所述指定映射数据中与第一标志位不同的第二标志位的取值,更新为所述第一标志位的取值;
从所述持久化内存中读取系统重启前的检查点周期编号并发送到所述检查点元数据寄存器,增加检查点周期编号开始数据恢复;
利用所述回滚日志中的计数器数据取值对所述指定映射数据第一标志位指向的检查点数据进行解密,并在对解密后的数据进行再一次加密后,将得到的加密数据发送到所述持久化内存;
将计数器缓存和映射数据缓存中被修改的计数器和被修改的映射数据刷新回所述持久化内存,将检查点元数据存储区域中的处理器状态数据恢复到处理器的寄存器中,增加检查点周期编号完成数据恢复,继续应用程序执行。
可选地,所述处理模块用于,若所述目标计数器数据未存储在所述计数器缓存中,以及所述目标映射数据未存储在所述映射数据缓存中,则从所述持久化内存中获取所述目标计数器数据和所述目标映射数据。
可选地,所述目标数据包括:图数据,所述数据存储系统用于对图计算过程中涉及的图数据进行读写。
本说明书提供了一种数据存储方法,所述数据存储方法应用于数据存储系统,所述数据存储系统包括:数据缓存模块,数据处理模块以及持久化内存,所述数据缓存模块包括:计数器缓存以及映射数据缓存;
数据处理模块从所述映射数据缓存中获取所述持久化内存的写入请求对应的目标映射数据,从所述计数器缓存中获取所述写入请求对应的目标计数器数据,其中,所述映射数据用于确定在上一个检查点周期结束时提交的检查点数据和当前检查点周期中发生修改的工作数据在所述持久化内存中的存储区域,所述存储区域包括第一存储区域以及第二存储区域,针对所述映射数据缓存中存储的每个映射数据,若所述映射数据缓存空间小于预设阈值,则将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述计数器数据的数值随着所述目标数据的更新进行增加,所述检查点数据用于在系统发生重启后进行数据恢复,其中,每个目标数据的写入请求对应一个目标映射数据;
根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域。
可选地,所述方法还包括:
若所述映射数据缓存中未存储所述目标映射数据,则从所述持久化内存中获取所述目标映射数据;
在获取所述写入请求后,判断从所述持久化内存中获取的目标映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述加密数据存储在所述目标映射数据指向的检查点数据对应的存储区域,并将所述工作数据作为所述检查点数据,否则在所述映射数据指向的检查点数据和工作数据位于同一存储区域时,将所述加密数据存储在另一存储区域,在所述映射数据指向的检查点数据和工作数据位于不同存储区域时,将所述加密数据存储到所述映射数据指向的工作数据对应的存储区域。
可选地,所述持久化内存中还包括:日志存储区域、检查点元数据存储区域、计数器数据存储区域以及映射数据存储区域,所述日志存储区域用于存储所述计数器数据对应的回滚日志。
可选地,所述方法还包括:
针对每个检查点周期,当该检查点周期结束时,暂停应用程序的执行,将处理器缓存中的工作数据更新按照内存数据写入请求的处理流程写回所述持久化内存,将所述映射数据缓存中在该检查点周期发生更改的映射数据、所述计数器缓存中在该检查点周期发生更改的计数器数据以及处理器状态数据作为检查点数据写入所述持久化内存;
增加当前的检查点周期编号,并回收所述回滚日志所占用的持久化内存空间。
可选地,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,具体包括:
在接收所述写入请求后,获取计数器数据,根据所述计数器数据对应的缓存行标志位,判断所述计数器数据是否在当前检查点周期发生更改;
若否,将所述计数器数据写入所述回滚日志,将所述回滚日志写入所述持久化内存中的日志存储区域,并更新所述计数器数据以及所述缓存行标志位;
若是,仅更新所述计数器数据;
根据更新后的计数器数据,对所述目标数据进行加密,得到加密数据。
可选地,所述数据缓存模块还包括:日志元数据寄存器以及检查点元数据寄存器;
所述日志元数据寄存器暂时存储不多于指定数量的计数器数据在所述持久化内存中的存储地址,当存储的计数器存储地址达到所述指定数量时,将各计数器数据在所述持久化内存中的存储地址通过同一个内存写入请求发送到所述持久化内存,以及,暂时存储下一个允许使用的回滚日志的存储空间在所述持久化内存中的存储地址;
所述检查点元数据寄存器存储所述映射数据在所述持久化内存中的起始地址和内存空间分配位图的指定部分,以及,暂时存储在检查点提交阶段用于标记处理器缓存、计数器缓存和映射数据缓存中的发生修改的数据以及处理器状态数据是否刷新到所述持久化内存的标志位。
可选地,所述映射数据中包含有第一标志位以及第二标志位,所述第一标志位用于表征所述检查点数据存储在所述第一存储区域还是所述第二存储区域,所述第二标志位用于表征所述工作数据存储在所述第一存储区域还是所述第二存储区域。
可选地,所述方法还包括:在接收所述写入请求后,判断所述映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述映射数据中所述第二标志位指向的存储区域设置为所述第一标志位指向的存储区域;
将所述映射数据对应的检查点周期编号更新为当前检查点周期编号;
判断所述写入请求在所述映射数据中对应的所述第一标志位与所述第二标志位指向的存储区域是否相同,若否,将所述加密数据存储在所述第二标志位指向的存储区域,若是,对所述第二标志位进行翻转,并将所述加密数据存储在翻转后的所述第二标志位指向的存储区域。
可选地,所述方法还包括:
获取所述持久化内存的读取请求,根据所述读取请求对应的目标内存地址,获取所述读取请求对应的计数器数据以及映射数据;
根据所述映射数据,确定所述第二标志位指向的所述持久化内存中的存储区域,作为目标存储区域,并从所述目标存储区域读取加密数据;
根据所述计数器数据,对所述加密数据进行解密,得到所述读取请求对应的解密数据。
可选地,所述方法还包括:
在系统重启后,从所述持久化内存中的日志存储区域读取系统重启前的目标检查点周期内生成的计数器的回滚日志;
根据所述回滚日志确定在所述目标检查点周期内的工作数据在所述持久化内存中的第一存储区域地址;
根据所述第一存储区域地址,获取指定映射数据,并判断所述指定映射数据对应的检查点周期编号与所述持久化内存的检查点元数据存储区域中系统检查点周期编号是否相同,若是,将所述指定映射数据中与第一标志位不同的第二标志位的取值,更新为所述第一标志位的取值;
从所述持久化内存中读取系统重启前的检查点周期编号并发送到所述检查点元数据寄存器,增加检查点周期编号开始数据恢复;
利用所述回滚日志中的计数器数据取值对所述指定映射数据第一标志位指向的检查点数据进行解密,并在对解密后的数据进行再一次加密后,将得到的加密数据发送到所述持久化内存;
将计数器缓存和映射数据缓存中被修改的计数器和被修改的映射数据刷新回所述持久化内存,将检查点元数据存储区域中的处理器状态数据恢复到处理器的寄存器中,增加检查点周期编号完成数据恢复,继续应用程序执行。
可选地,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域,具体包括:
若所述目标计数器数据未存储在所述计数器缓存中,以及所述目标映射数据未存储在所述映射数据缓存中,则访问所述持久化内存,并从所述持久化内存中获取所述目标计数器数据和所述目标映射数据。
可选地,所述目标数据包括:图数据,所述数据存储系统用于对图计算过程中涉及的图数据进行读写。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据存储方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的数据存储系统中包括数据缓存模块、数据处理模块以及持久化内存,持久化内存中包括第一存储区域以及第二存储区域,数据缓存模块包括:映射数据缓存以及计数器缓存,所述映射数据缓存用于暂时存储至少部分映射数据,以及,在新到来的映射数据无可用所述映射数据缓存空间时,将所述映射数据缓存中最久未被访问的映射数据从所述映射数据缓存中逐出并写入所述持久化内存,所述数据处理模块用于,获取目标计数器数据目标映射数据,根据目标计数器数据对目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在持久加密内存中的指定位置。
从上述数据存储系统和数据存储方法可以看出,本说明书中的数据存储系统中的映射数据缓存模块能够在对内存的访问过程中将最久未被访问的映射数据进行逐出,这样一来,就能够保证映射数据缓存中具有充足的存储空间,从而有效避免了容易的检查点提交操作。
另外,本说明书中的数据存储系统能够通过计数器对数据进行加密,并且通过两个存储区域来实现对工作数据的存储和对检查点数据的存储,这样一来,就能够在保护数据隐私的同时保障数据的一致性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种数据存储系统的示意图;
图2为本说明书中提供的一种映射数据的结构示意图;
图3为本说明书中提供的数据存储方法的流程示意图;
图4为本说明书中提供的一种持久化内存的读取请求的执行过程示意图;
图5为本说明书中提供的一种持久化内存的写入请求的执行过程示意图;
图6为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
在实际应用中,实现检查点的方式之一为在持久化内存中设置与目标内存相对应的影子内存,二者轮换存储到达检查点后提交的检查点数据以及计算过程中产生的工作数据更新,避免有效检查点数据被修改导致失效,同时使用映射数据指示工作数据和检查点数据位置。
然而,已有研究都只是使用影子内存检查点实现持久化内存系统,当设计面向图计算的、基于影子内存检查点的高效加密持久化内存系统时,还需应对以下挑战:
其一,维护计数器数据一致性。当前常用的内存数据加密方法为基于计数器的数据加密策略,内存数据发生更改则计数器也要随之自增,数据在解密时需要用到与加密时相同的计数器。此外,为加速内存数据加解密,计数器被缓存在内存控制器的易失缓存中,系统断电则缓存数据丢失。因此,面向图计算的加密持久化内存系统不仅需要维护图数据之间的数据一致性,还需要维护图数据和其计数器数据的一致性,数据一致性维护难度更高;
其二,避免冗余停机检查点提交操作。传统影子内存检查点系统需要在映射数据缓存中保存映射数据,当片上缓存空间不足时就需要提前进行检查点提交操作,暂停程序执行并合并第一区域和第二区域的数据,以回收映射数据缓存空间。这些额外的、位于系统执行关键路径上的检查点提交操作,增加了持久化内存的访存数据量,加大了系统的访存开销,而在加密内存中,这些额外的访存操作还将增加系统的加密开销,进一步降低系统性能。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种数据存储系统的示意图,该数据存储系统包括:内存控制器和持久化内存,内存控制器中包含有数据缓存模块和数据处理模块,数据缓存模块负责暂存设置内存检查点、设置回滚日志、访存请求响应和内存数据加密所需的元数据,数据处理模块负责执行数据的读写请求、实现维护数据崩溃一致性及数据恢复所需的操作逻辑,该操作逻辑与内存数据崩溃一致性维护方法相对应。
由数据缓存模块、持久化内存以及数据处理模块共同构成了本说明书中的数据存储系统。
在本说明书中,该数据存储系统可以应有于图数据的计算场景,以对图数据的计算过程中所涉及的图数据进行读写。当然,该数据存储系统也可以应用于其他类型数据的计算场景,本说明书对此不做具体限定。
在实际应用中,执行应用程序(如图数据应用程序)的处理器可以将数据的读写请求发送给内存控制器,由内存控制器从持久化内存中读取数据或向持久化内存写入数据,进而将结果反馈至处理器的处理器缓存。
进一步的,数据缓存模块可以包括:映射数据缓存、计数器缓存、日志元数据寄存器以及检查点元数据寄存器。
映射数据缓存中存储有映射数据,该映射数据用于确定检查点数据和工作数据在持久化内存中的存储区域,即确定工作数据或检查点数据处于第一存储区域的原内存页面(内存读写请求中目的地址所在页面)还是第二存储区域的影子内存页面中,相邻2个原内存页面(尺寸为4KB)对应的映射数据被存储在映射数据缓存中大小为64B的缓存行中。
在实际应用中,通常会设置检查点来实现断电重启后的数据恢复,当一个检查点周期结束后,系统会将该检查点周期结束时发生修改的工作数据、数据缓存模块中存储的数据以及处理器状态数据作为检查点数据写入持久化内存,从而实现检查点的提交操作,这样一来,即使系统发生断电重启,也能够根据事先提交的检查点数据恢复该检查点结束时对应的数据处理状态,从而保证数据恢复时的数据一致性。关于检查点数据的提交操作将在下文进行详细描述,本说明书在此处不做过多赘述。
映射数据缓存断电数据丢失,该映射数据缓存可以以第一存储区域对应原内存页面的映射数据内存地址为索引,暂存持久化内存中较热的映射数据。
在本说明书中,可以按照映射数据被访问时间的远近对各映射数据进行排序,将排序在预设位次之后的映射数据作为较冷的映射数据,将排序在预设位次之前的映射数据作为较热的映射数据,上述预设位次可以根据实际情况进行设定,本说明书对此不做具体限定。
另外,映射数据缓存中的每一个缓存行都设置有标志位,以通过该标志位判断各缓存行中的映射数据是否被修改,发生修改的映射数据会在逐出缓存后被写回持久化内存,无需在映射数据缓存中保存所有映射数据,映射数据缓存容量可以根据持久化内存的容量进行设定。
具体的,在应用程序的执行过程中,当映射数据缓存空间小于预设阈值时,说明当前映射数据缓存空间不足以存储下一个映射数据,此时映射数据缓存可以将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,其中,上述预设阈值可以根据实际情况进行设定,本说明书对此不做具体限定。
上述映射数据的结构如图2所示。
图2为本说明书中提供的一种映射数据的结构示意图。
其中,检查点周期编号为64bits,代表修改映射数据时的检查点周期编号,在本说明书中,第二存储区域对应的内存页面可以作为影子内存页面,该影子内存页面地址为64bits,页面大小为4KB包含64个64B数据块,数据块尺寸与单个内存访问请求(读写请求)的数据量相同,第一存储区域中未发生修改的原内存页面不分配影子内存页面,对应影子内存页面地址为0。
第一标志位位图为64bits,表征检查点数据存储位置,位图中的每个标志位对应逻辑页面中的一个64B数据块,标志位取0表示数据块对应的检查点数据保存在第一存储区域的原内存页面,取1表示保存在第二存储区域的影子内存页面。
第二标志位位图为64bits,表征工作数据存储位置,位图中的每个标志位对应逻辑页面中的一个64B数据块,标志位取0表示数据块对应的工作数据保存在第一存储区域的原内存页面,取1表示保存在第二存储区域的影子内存页面。
当然,在本说明书中也可以将第一存储区域对应的内存页面作为影子内存页面,将第二存储区域对应的内存页面作为原内存页面。
计数器缓存的缓存行中暂时保存目标数据对应的计数器数据。
计数器缓存以原内存页面对应的计数器数据存储地址作为索引,缓存持久化内存中位于计数器数据存储区域的计数器数据,所述计数器数据的数值随着所述目标数据更新进行增加。计数器缓存容量可以随映射数据缓存容量进行设置,使得映射数据缓存中存储的映射数据数量不小于计数器缓存中存储的计数器数据的数量,保证绝大多数情况下计数器缓存命中则映射数据缓存也命中。
需要说明的是,原内存页面中的每个64B数据块即为一个目标数据,针对每个数据块,该数据块与影子内存页面中相对应的数据块共用同一个计数器,无论原内存页面还是影子内存页面中存储的数据块发生更新,计数器的数值都将发生自增。
日志元数据寄存器可以暂时存储不多于指定数量的计数器数据在持久化内存中的存储地址,当存储的计数器存储地址达到指定数量时,将各计数器数据在持久化内存中的存储地址通过同一个内存写入请求发送到所述持久化内存。
在本说明书中,日志元数据寄存器中可以暂时存储计数器的回滚日志对应的日志头,计数器的回滚日志有日志头和日志项构成,每个日志项存储64B修改前的计数器数据块,计数器数据块的内存地址送往64B大小的日志头中,每8个连续的日志项后为其对应的日志头。
因此,上述指定数量可以设置为8,即当日志头寄存器装满8个计数器数据块地址或再没有新的日志项到来时,该日志头将被写回持久化内存,当断电发生时,日志头寄存器将借助异步DRAM刷新部件(Asynchronous DRAM Refresh,ADR)写回持久化内存。
另外,日志元数据寄存器中还暂时存储了下一个回滚日志在持久化内存的日志存储区域中的允许使用的存储地址,该存储地址随着日志数据的写入而更新,当断电发生时,日志内存地址寄存器将借助ADR写回持久化内存,以界定计数器回滚日志的范围。
检查点元数据寄存器暂时保存了映射数据在持久化内存中的起始地址,系统可以根据内存读写请求对应的目标内存地址和映射数据的起始地址,计算出读写请求对应的映射数据的存储地址;
检查点元数据寄存器缓存了所述映射数据在持久化内存中的起始地址和内存空间分配位图的指定部分,其中,该指定部分可以为影子内存空间分配位图的较热部分,位图中的每一位代表着对应影子内存页面是否已经被分配,发生修改的位图数据将被写回持久化内存中的检查点元数据区域,当断电发生时,影子内存页面分配位图将借助ADR写回持久化内存。
检查点元数据寄存器中还缓存了四个标志位,用于标记在检查点提交阶段,处理器缓存、计数器缓存、映射数据缓存中的脏数据(发生修改的数据)以及处理器状态数据是否刷新到了持久化内存,其中处理器状态数据应被刷新到持久化内存中的位置为检查点元数据存储区域。
持久化内存中包含有多个存储区域,包括第一存储区域、第二存储区域、日志存储区域、检查点元数据存储区域、计数器数据存储区域以及映射数据存储区域,其中,第一存储区域以及第二存储区域分别用于存储在检查点周期结束时提交的检查点数据以及当前检查点周期中发生修改的工作数据,检查点元数据存储区域用于存储检查点周期结束时提交的处理器状态数据和检查点管理所需的元数据,计数器数据存储区域用于存储从计数器缓存中逐出的计数器数据,映射数据存储区域用于存储从映射数据缓存中逐出的映射数据。
另外,第一存储区域以及第二存储区域中还可以分别设置有应用数据存储区域,该存储区域用于存储数据读写过程中所需的应用数据。
数据处理模块包含有数据读写请求处理模块,检查点提交模块以及数据恢复模块,分别执行内存控制器中的内存读写请求处理方法、检查点提交方法和系统数据恢复方法。
当内存控制器接收到处理器发送的对内存的写入请求时,读写请求处理模块系统可以同时访问计数器缓存和映射数据缓存,如果两个缓存均未命中,则读写请求处理模块可以通过访问持久化内存获取该写入请求对应的目标计数器数据以及目标映射数据。
当持久化内存的读写请求处理模块获取到目标计数器数据后,如果对应计数器缓存行的脏数据标志位未被设置(即该缓存对应的计数器数据未发生修改,标志位取值为0),则读写请求处理模块可以在修改计数器取值前先将目标计数器数据缓存行写入回滚日志,系统根据日志元数据寄存器确定可用的日志存储区域地址,将原计数器缓存行中的计数器数据作为日志项写回持久化内存中的日志存储区域,并将计数器缓存行内存地址发送到日志元数据寄存器中的日志头内,而后读写请求处理模块更新计数器取值和计数器缓存行标志位,如果更新后的计数器取值第16位发生跳变,则将整个计数器缓存的目标计数器缓存行写回持久化内存。
当计数器取值更新完成后,读写请求处理模块可以根据更新后计数器数据计算加密所需的一次性加密块(One Time Pad,OTP),再与当前写入的目标数据的数据明文相异或得到密文,从而完成对目标数据的加密,得到加密数据。
由于在数据访问的过程中会将较冷的映射数据从映射数据缓存中逐出到持久化内存,因此,当目标映射数据可以从映射数据缓存中直接获取时,则读写请求处理模块可以直接根据该目标映射数据确定工作数据的存储区域,而如果目标映射数据需要从持久化内存中获取,则说明该目标映射数据已经被逐出映射数据缓存,可能有较长的时间未进行更新,这时目标映射数据所指向的检查点数据存储区域中的检查点数据可以能已经失效。
因此,为了保证有效的检查点数据不被写入的工作数据所覆盖,读写请求处理模块可以比较检查点元数据寄存器中系统当前的检查点周期编号与写请求对应目标映射数据中的检查点周期编号,并更新目标映射数据。
具体的,如果系统当前的检查点周期编号较大,说明最近一次对目标映射数据对应图数据的更新,发生在之前成功提交的检查点周期内,此时读写请求处理模块可以将目标映射数据中的第一标志位的取值设置为第二标志位的取值,同时设置目标映射数据的检查点周期编号为系统当前检查点周期编号。
而如果目标映射数据中的检查点周期编号与系统当前检查点周期编号相等,则目标映射数据第二标志位指向的目标工作数据,其未被提交的修改只会发生在当前检查点周期内,此时无需更新目标映射数据。
当得到加密数据并完成对目标映射数据的更新后,读写请求处理模块可以从目标映射数据中读取写入请求内存地址对应的第一标志位和第二标志位,如果两个标志位取值相同,说明该目标映射数据所指向的存储区域中存储的检查点数据有效,因此读写请求处理模块可以翻转第二标志位的取值,并将加密数据送往翻转后的第二标志位所指向的存储区域,即将翻转后的第二标志位所指向的存储区域作为新的工作数据对应的存储区域并存储加密数据,这样一来,就可以将加密数据存储在与第一标志位和翻转前的第二标志位所指向的相同存储区域外的另一存储区域中,从而避免第一标志位和翻转前的第二标志位共同指向的存储区域中的检查点数据被覆盖,以保证数据的一致性。
而如果两个标志位不同,此时读写请求处理模块可以直接将加密数据送往第二标志位指向的存储区域(即映射数据指向的工作数据对应的存储区域),从而保证未失效的检查点数据不被覆盖。需要说明的是,当上述两个标志位不同时,不需要对第二标志位进行翻转。
当内存控制器接收到处理器发送的对持久化内存的读取请求时,读写请求处理模块可以根据读取请求对应的内存地址计算出其对应的映射数据的存储地址、计数器数据的存储地址,并分别以这两个存储地址为索引访问映射数据缓存和计数器缓存。
当计数器缓存命中时,读写请求处理模块可以将该读取请求对应的计数器送入加密引擎,计算解密所需的OTP,当计数器缓存未命中(即计数器缓存中未存储该读取请求对应的计数器数据)时,系统从持久化内存中读取对应的计数器数据后再计算OTP。
当映射数据缓存命中时,读写请求处理模块可以读取映射数据的第二标志位位图中当前读取请求对应的第二标志位,并将读取请求送到第二标志位指向的内存页面读取加密数据。
当映射数据缓存未命中时(即映射数据缓存中未存储当前读取请求对应的映射数据),读写请求处理模块可以先从持久化内存中获取映射数据,之后根据映射数据从持久化内存中读取加密数据,并将映射数据送入映射数据缓存。
当OTP计算完成且获取加密数据,读写请求处理模块可以将二者相异或,从而对加密数据进行解密,得到该读取请求对应的明文数据,而后将该明文数据发送给处理器,从而完成对内存的读取请求。
在检查点数据的提交过程中,针对每个检查点周期,当该检查点周期结束时,处理器将停止执行应用程序,并将处理器缓存中发生修改的缓存行写回持久化内存,数据写回流程与持久化内存的写入请求流程相同。
将处理器缓存中的脏数据(发生修改的数据)全部写回持久化内存后,检查点提交模块可以将计数器缓存中的计数器数据、映射数据缓存中的映射数据和处理器状态数据分别写回持久化内存中的计数器数据存储区域、映射数据存储区域和检查点元数据存储区域。
另外,检查点提交模块可以增加检查点元数据寄存器中的当前系统检查点周期编号,从而进入下个检查点周期,与此同时,日志存储区域的当前计数器的回滚日志可以被舍弃,以回收其占用的内存,从而使其占用的内存在下个周期被重新使用。
当系统由于崩溃或者端点发生重启时,数据恢复模块可以从持久化内存的日志区域读取系统发生崩溃的检查点周期内生成的计数器的回滚日志,根据计数器缓存行和原数据页面的对应关系,确定检查点周期内发生修改的原数据页面的目标存储地址。
系统依据发生修改的目标存储地址,访问指定映射数据,系统对比该指定映射数据中的检查点周期编号,与持久化内存中检查点元数据内的系统检查点周期编号的大小,当指定映射数据中的检查点编号等于系统检查点编号时,数据恢复模块可以将指定映射数据中与第一标志位取值不同的第二标志位更新为第一标志位的取值。
系统从持久化内存中的检查点元数据区域读取崩溃发生时的检查点周期编号,并送入检查点元数据寄存器,之后增加检查点编号,并在该检查点周期内继续执行数据恢复操作。
为了避免计数器取值被重用,数据恢复模块对计数器的回滚日志中的每一个计数器,都访问其对应的加密数据,并利用回滚日志中计数器的取值对映射数据第一标志位指向的加密数据进行解密,之后系统再读取计数器在原内存区域的取值,将其取值增加到第16位发生跳变后,利用新值对数据明文重新加密,并更新计数器缓存中的计数器取值,同时按照内存写入请求的处理方法更新映射数据,并将重新加密后的数据写回持久化内存。
之后数据恢复模块将计数器和映射数据缓存中的脏数据刷新回持久化内存,同时将持久化内存中检查点元数据区域内的处理器状态数据恢复到处理器的寄存器中,增加检查点周期编号,完成数据恢复并继续执行处理器中的应用程序,回收计数器的回滚日志占用的内存空间,供之后的检查点周期使用。
需要说明的是,如果系统在进行数据恢复的过程中再一次崩溃,由于恢复操作是在新的检查点周期内进行,并未对已经提交的检查点数据进行修改,恢复模块只需要重新执行恢复操作即可。
另外,在本说明书中的数据读写请求可以是处理器在执行图应用程序时,针对图数据的读写操作时所生成的读写请求,当然,也可以是其他类型的数据对应的读写请求,本说明书对此不做具体限定。
以上为对本说明书提供的一种数据存储系统进行的说明,相应的,本说明书还提供了一种应用于上述数据存储系统的数据存储方法,如图3所示。
图3为本说明书中提供的一种数据存储方法的流程示意图,包括以下步骤:
S301:数据处理模块从所述映射数据缓存中获取所述持久化内存的写入请求对应的目标映射数据,从所述计数器缓存中获取所述写入请求对应的目标计数器数据,其中,所述映射数据用于确定在上一个检查点周期结束时提交的检查点数据和当前检查点周期中发生修改的工作数据在所述持久化内存中的存储区域,所述存储区域包括第一存储区域以及第二存储区域,针对所述映射数据缓存中存储的每个映射数据,若所述映射数据缓存空间小于预设阈值,则将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述计数器数据的数值随着所述目标数据的更新进行增加,所述检查点数据用于在系统发生重启后进行数据恢复,其中,每个目标数据的写入请求对应一个目标映射数据。
S302:根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域。
在本说明书中,用于实现数据存储方法的执行主体可以是处理器,当然,也可以是数据存储系统的数据处理模块,为了便于理解,本说明书仅以数据处理模块做为执行主体为例,对本说明书提供的一种数据存储方法进行说明。
在处理器对数据进行处理的过程中,通常会涉及到对内存的读取请求和写入请求,以对持久化内存中的数据进行读取或者向持久化内存写入数据为例,在对数据的写入过程中,为了保证数据隐私,数据处理模块可以根据随数据更新而自增的计数器对数据进行加密,这样一来,在对数据进行读取时就可以通过相应的计数器数据对数据进行解密,从而保证数据隐私。
另外,为了保证系统重启后的数据一致性,本说明书在数据的写入过程中将有效的检查点数据存储在与被修改的工作数据的存储区域不同的另一存储区域中,从而在断电重启后根据提交到持久化内存中的检查点数据进行数据恢复。
当获取内存的读取请求后,数据处理模块可以根据读取请求对应的目标内存地址,获取读取请求对应的计数器数据以及映射数据,根据映射数据,确定读取请求对应的数据在持久化内存中对应的目标存储区域,并从目标存储区域中读取加密数据,根据所述计数器数据,对加密数据进行解密,得到读取请求对应的解密数据。为了便于理解,本说明书提供了一种持久化内存的读取请求的执行过程示意图,如图4所示。
图4为本说明书中提供的一种持久化内存的读取请求的执行过程示意图。
其中,当获取持久化内存的读取请求后,数据处理模块可以根据读取请求对应的内存地址计算出其对应的映射数据的存储地址、计数器数据的存储地址,并分别以这两个存储地址为索引访问映射数据缓存和计数器缓存。
当计数器缓存命中时,处理模块可以将该读取请求对应的计数器送入加密引擎,计算解密所需的OTP,当计数器缓存未命中时,数据处理模块从持久化内存中读取对应的计数器数据后再计算OTP。
当映射数据缓存命中时,数据处理模块可以读取映射数据的第二标志位位图中当前读取请求对应的第二标志位,并将读取请求送到第二标志位指向的内存页面读取加密数据。
当映射数据缓存未命中时,处理模块可以先从持久化内存中获取映射数据,之后根据映射数据从持久化内存中读取加密数据,并将映射数据送入映射数据缓存。
当OTP计算完成且获取加密数据,处理模块可以将二者相异或,从而对加密数据进行解密,得到该读取请求对应的明文数据,而后将该明文数据发送给处理器,从而完成对内存的读取请求。
当获取持久化内存的写入请求后,数据处理模块可以从计数器缓存中获取写入请求对应的目标计数器数据以及从映射数据缓存中获取所述写入请求对应的目标映射数据,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并将所述加密数据存储在所述工作数据对应的存储区域。
在此过程中,若计数器缓存中未存储目标映射数据,则需要从持久化内存中获取目标映射数据,数据处理模块可以判断从持久化内存中获取的目标映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将加密数据存储在检查点数据对应的存储区域,并将工作数据作为所述检查点数据,否则将加密数据存储在工作数据对应的存储区域。为了便于理解,本说明书还提供了一种写入请求的执行过程示意图,如图5所示。
图5为本说明书中提供的一种持久化内存的写入请求的执行过程示意图。
其中,当获取持久化内存的写入请求时,数据处理模块可以同时访问计数器缓存和映射数据缓存,如果两个缓存均未命中,则数据处理模块可以通过访问持久化内存获取该写入请求对应的目标计数器数据以及目标映射数据。
当数据处理模块获取到目标计数器数据后,如果对应计数器缓存行的脏数据标志位未被设置(标志位取值为0),则数据处理模块可以在修改计数器取值前先将目标计数器数据行写入回滚日志,系统根据日志元数据寄存器确定可用的日志存储区域地址,将原计数器缓存行中的目标计数器数据作为日志项写回持久化内存中的日志存储区域,并将计数器缓存行内存地址发送到日志元数据寄存器中的日志头内,而后数据处理模块更新计数器取值和缓存行标志位,得到更新后计数器数据。如果更新后的计数器取值第16位发生跳变,则将计数器缓存行写回持久化内存。
数据处理模块可以比较内存控制器寄存器中系统当前的检查点周期编号与写请求对应目标映射数据中的检查点周期编号,如果系统当前的检查点周期编号较大,数据处理模块可以将目标映射数据中的第一标志位的取值设置为第二标志位的取值,同时设置目标映射数据的检查点周期编号为系统当前检查点周期编号。而如果目标映射数据中的检查点编号与系统当前检查点周期编号相等,则无需更新映射数据。
当通过更新后的计数器数据对目标数据进行加密得到加密数据并完成对映射数据的更新后,数据处理模块可以从目标映射数据中读取内存写入请求内存地址对应的第一标志位和第二标志位,如果两个标志位相同,数据处理模块可以翻转第二标志位,并将加密数据送往翻转后第二标志位指向的存储区域。而如果两个标志位不同,数据处理模块可以直接将加密送往第二标志位指向的存储区域。
对于检查点的提交处理以及数据恢复的处理已经在上述数据存储系统的描述中进行说明,本说明书在此处不做过多赘述。
从上述方法可以看出,本说明书中的数据存储系统能在保证图数据一致性和保密性的前提下,使映射数据缓存可以在程序运行过程中逐出较冷的映射数据,因此不会因映射数据缓存空间不足而提前进行检查点提交操作,减少了因冗余检查点提交操作产生的、位于系统执行关键路径上的额外内存读写请求,进而降低了系统的数据持久化和加密开销,以及系统停机时间。
另外,本说明书中的数据存储系统通过使用回滚日志而非影子内存,来维护计数器数据的一致性,保证计数器数据的最新取值位于原内存区域,无需经映射数据重定向即可访问,从而使访问计数器内存和映射数据内存的过程相重叠,缩短了内存请求的处理流程。
本说明书还提供了图6所示的一种对应于图3的电子设备的示意结构图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口以及持久化内存(非易失性存储器),当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序然后运行,以实现上述图3所述的数据存储方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware DescriptionLanguage,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated CircuitHardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据存储设备的处理器以产生一个机器,使得通过计算机或其他可编程数据存储设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据存储设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据存储设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (25)
1.一种数据存储系统,其特征在于,所述数据存储系统包括:数据缓存模块、数据处理模块以及持久化内存;
所述持久化内存中包括:第一存储区域以及第二存储区域,所述第一存储区域以及第二存储区域分别用于存储在上一个检查点周期结束时提交的检查点数据以及当前检查点周期中发生修改的工作数据,所述检查点数据用于在系统发生重启后进行数据恢复;
所述数据缓存模块包括:映射数据缓存以及计数器缓存,所述映射数据缓存用于暂时存储至少部分映射数据,以及,在所述映射数据缓存空间小于预设阈值时将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述映射数据用于确定所述检查点数据和所述工作数据在所述持久化内存中的存储区域;
所述计数器缓存用于,暂时存储至少部分计数器数据,所述计数器数据的数值随着目标数据的更新进行增加;
所述数据处理模块用于,从所述计数器缓存中获取所述持久化内存的写入请求对应的目标计数器数据,以及从所述映射数据缓存中获取所述写入请求对应的目标映射数据,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域,其中,每个目标数据的写入请求对应一个目标映射数据。
2.如权利要求1所述的数据存储系统,其特征在于,所述处理模块还用于,若所述映射数据缓存中未存储所述目标映射数据,则从所述持久化内存中获取所述目标映射数据;
在获取所述写入请求后,判断从所述持久化内存中获取的目标映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述加密数据存储在所述目标映射数据指向的检查点数据对应的存储区域,并将所述工作数据作为所述检查点数据,否则在所述映射数据指向的检查点数据和工作数据位于同一存储区域时,将所述加密数据存储在另一存储区域,在所述映射数据指向的检查点数据和工作数据位于不同存储区域时,将所述加密数据存储到所述映射数据指向的工作数据对应的存储区域。
3.如权利要求1所述的数据存储系统,其特征在于,所述持久化内存中还包括:日志存储区域、检查点元数据存储区域、计数器数据存储区域以及映射数据存储区域,所述日志存储区域用于存储所述计数器的回滚日志。
4.如权利要求3所述的数据存储系统,其特征在于,所述处理模块用于,针对每个检查点周期,当该检查点周期结束时,暂停应用程序的执行,将处理器缓存中的工作数据更新按照内存数据写入请求的处理流程写回所述持久化内存,将所述映射数据缓存中在该检查点周期发生更改的映射数据、所述计数器缓存中在该检查点周期发生更改的计数器数据以及处理器状态数据作为检查点数据写入所述持久化内存;
增加当前的检查点周期编号,并回收所述回滚日志所占用的持久化内存空间。
5.如权利要求3所述的数据存储系统,其特征在于,所述数据处理模块用于,在接收所述写入请求后,获取计数器数据,根据所述计数器数据对应的缓存行标志位,判断所述计数器数据是否在当前检查点周期发生更改;
若否,将所述计数器数据写入所述回滚日志,将所述回滚日志写入所述持久化内存中的日志存储区域,并更新所述计数器数据以及所述缓存行标志位;
若是,仅更新所述计数器数据;
根据更新后的计数器数据,对所述目标数据进行加密,得到加密数据。
6.如权利要求1所述的数据存储系统,其特征在于,所述数据缓存模块还包括:日志元数据寄存器以及检查点元数据寄存器;
所述日志元数据寄存器用于,暂时存储不多于指定数量的计数器数据在所述持久化内存中的存储地址,当存储的计数器存储地址达到所述指定数量时,将各计数器数据在所述持久化内存中的存储地址通过同一个内存写入请求发送到所述持久化内存,以及
暂时存储下一个允许使用的回滚日志的存储空间在所述持久化内存中的存储地址;
所述检查点元数据寄存器用于,存储所述映射数据在所述持久化内存中的起始地址和内存空间分配位图的指定部分,以及
存储在检查点提交阶段用于标记处理器缓存、计数器缓存和映射数据缓存中的发生修改的数据以及处理器状态数据是否刷新到所述持久化内存的标志位。
7.如权利要求1所述的数据存储系统,其特征在于,所述映射数据中包含有第一标志位以及第二标志位,所述第一标志位用于表征所述检查点数据存储在所述第一存储区域还是所述第二存储区域,所述第二标志位用于表征所述工作数据存储在所述第一存储区域还是所述第二存储区域。
8.如权利要求7所述的数据存储系统,其特征在于,所述处理模块用于,在接收所述写入请求后,判断所述映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述映射数据中所述第二标志位指向的存储区域设置为所述第一标志位指向的存储区域;
将所述映射数据对应的检查点周期编号更新为当前检查点周期编号;
判断所述写入请求在所述映射数据中对应的所述第一标志位与所述第二标志位指向的存储区域是否相同,若否,将所述加密数据存储在所述第二标志位指向的存储区域,若是,对所述第二标志位进行翻转,并将所述加密数据存储在翻转后的所述第二标志位指向的存储区域。
9.如权利要求7所述的数据存储系统,其特征在于,所述处理模块还用于,获取所述持久化内存的读取请求,根据所述读取请求对应的目标内存地址,获取所述读取请求对应的计数器数据以及映射数据;
根据所述映射数据,确定所述第二标志位指向的所述持久化内存中的存储区域,作为目标存储区域,并从所述目标存储区域读取加密数据;
根据所述计数器数据,对所述加密数据进行解密,得到所述读取请求对应的解密数据。
10.如权利要求7所述的数据存储系统,其特征在于,所述处理模块还用于,在系统重启后,从所述持久化内存中的日志存储区域读取系统重启前的目标检查点周期内生成的计数器的回滚日志;
根据所述回滚日志确定在所述目标检查点周期内的工作数据在所述持久化内存中的第一存储区域地址;
根据所述第一存储区域地址,获取指定映射数据,并判断所述指定映射数据对应的检查点周期编号与所述持久化内存的检查点元数据存储区域中系统检查点周期编号是否相同,若是,将所述指定映射数据中与第一标志位不同的第二标志位的取值,更新为所述第一标志位的取值;
从所述持久化内存中读取系统重启前的检查点周期编号并发送到所述检查点元数据寄存器,增加检查点周期编号开始数据恢复;
利用所述回滚日志中的计数器数据取值对所述指定映射数据第一标志位指向的检查点数据进行解密,并在对解密后的数据进行再一次加密后,将得到的加密数据发送到所述持久化内存;
将计数器缓存和映射数据缓存中被修改的计数器和被修改的映射数据刷新回所述持久化内存,将所述检查点元数据存储区域中的处理器状态数据恢复到处理器的寄存器中,增加检查点周期编号完成数据恢复,继续应用程序执行。
11.如权利要求1所述的数据存储系统,其特征在于,所述处理模块用于,若所述目标计数器数据未存储在所述计数器缓存中,以及所述目标映射数据未存储在所述映射数据缓存中,则从所述持久化内存中获取所述目标计数器数据和所述目标映射数据。
12.如权利要求1所述的数据存储系统,其特征在于,所述目标数据包括:图数据,所述数据存储系统用于对图计算过程中涉及的图数据进行读写。
13.一种数据存储方法,其特征在于,所述数据存储方法应用于数据存储系统,所述数据存储系统包括:数据缓存模块,数据处理模块以及持久化内存,所述数据缓存模块包括:计数器缓存以及映射数据缓存;
数据处理模块从所述映射数据缓存中获取所述持久化内存的写入请求对应的目标映射数据,从所述计数器缓存中获取所述写入请求对应的目标计数器数据,其中,所述映射数据用于确定在上一个检查点周期结束时提交的检查点数据和当前检查点周期中发生修改的工作数据在所述持久化内存中的存储区域,所述存储区域包括第一存储区域以及第二存储区域,针对所述映射数据缓存中存储的每个映射数据,若所述映射数据缓存空间小于预设阈值,则将最长时间未被访问的映射数据从缓存中逐出并写入所述持久化内存,所述计数器数据的数值随着所述目标数据的更新进行增加,所述检查点数据用于在系统发生重启后进行数据恢复,其中,每个目标数据的写入请求对应一个目标映射数据;
根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
若所述映射数据缓存中未存储所述目标映射数据,则从所述持久化内存中获取所述目标映射数据;
在获取所述写入请求后,判断从所述持久化内存中获取的目标映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述加密数据存储在所述目标映射数据指向的检查点数据对应的存储区域,并将所述工作数据作为所述检查点数据,否则在所述映射数据指向的检查点数据和工作数据位于同一存储区域时,将所述加密数据存储在另一存储区域,在所述映射数据指向的检查点数据和工作数据位于不同存储区域时,将所述加密数据存储到所述映射数据指向的工作数据对应的存储区域。
15.如权利要求13所述的方法,其特征在于,所述持久化内存中还包括:日志存储区域、检查点元数据存储区域、计数器数据存储区域以及映射数据存储区域,所述日志存储区域用于存储所述计数器数据对应的回滚日志。
16.如权利要求15所述的方法,其特征在于,所述方法还包括:
针对每个检查点周期,当该检查点周期结束时,暂停应用程序的执行,将处理器缓存中的工作数据更新按照内存数据写入请求的处理流程写回所述持久化内存,将所述映射数据缓存中在该检查点周期发生更改的映射数据、所述计数器缓存中在该检查点周期发生更改的计数器数据以及处理器状态数据作为检查点数据写入所述持久化内存;
增加当前的检查点周期编号,并回收所述回滚日志所占用的持久化内存空间。
17.如权利要求15所述的方法,其特征在于,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,具体包括:
在接收所述写入请求后,获取计数器数据,根据所述计数器数据对应的缓存行标志位,判断所述计数器数据是否在当前检查点周期发生更改;
若否,将所述计数器数据写入所述回滚日志,将所述回滚日志写入所述持久化内存中的日志存储区域,并更新所述计数器数据以及所述缓存行标志位;
若是,仅更新所述计数器数据;
根据更新后的计数器数据,对所述目标数据进行加密,得到加密数据。
18.如权利要求13所述的方法,其特征在于,所述数据缓存模块还包括:日志元数据寄存器以及检查点元数据寄存器;
所述日志元数据寄存器暂时存储不多于指定数量的计数器数据在所述持久化内存中的存储地址,当存储的计数器存储地址达到所述指定数量时,将各计数器数据在所述持久化内存中的存储地址通过同一个内存写入请求发送到所述持久化内存,以及,暂时存储下一个允许使用的回滚日志的存储空间在所述持久化内存中的存储地址;
所述检查点元数据寄存器存储所述映射数据在所述持久化内存中的起始地址和内存空间分配位图的指定部分,以及,暂时存储在检查点提交阶段用于标记处理器缓存、计数器缓存和映射数据缓存中的发生修改的数据以及处理器状态数据是否刷新到所述持久化内存的标志位。
19.如权利要求13所述的方法,其特征在于,所述映射数据中包含有第一标志位以及第二标志位,所述第一标志位用于表征所述检查点数据存储在所述第一存储区域还是所述第二存储区域,所述第二标志位用于表征所述工作数据存储在所述第一存储区域还是所述第二存储区域。
20.如权利要求19所述的方法,其特征在于,所述方法还包括:在接收所述写入请求后,判断所述映射数据对应的检查点周期编号是否小于当前的检查点周期编号,若是,将所述映射数据中所述第二标志位指向的存储区域设置为所述第一标志位指向的存储区域;
将所述映射数据对应的检查点周期编号更新为当前检查点周期编号;
判断所述写入请求在所述映射数据中对应的所述第一标志位与所述第二标志位指向的存储区域是否相同,若否,将所述加密数据存储在所述第二标志位指向的存储区域,若是,对所述第二标志位进行翻转,并将所述加密数据存储在翻转后的所述第二标志位指向的存储区域。
21.如权利要求19所述的方法,其特征在于,所述方法还包括:
获取所述持久化内存的读取请求,根据所述读取请求对应的目标内存地址,获取所述读取请求对应的计数器数据以及映射数据;
根据所述映射数据,确定所述第二标志位指向的所述持久化内存中的存储区域,作为目标存储区域,并从所述目标存储区域读取加密数据;
根据所述计数器数据,对所述加密数据进行解密,得到所述读取请求对应的解密数据。
22.如权利要求19所述的方法,其特征在于,所述方法还包括:
在系统重启后,从所述持久化内存中的日志存储区域读取系统重启前的目标检查点周期内生成的计数器的回滚日志;
根据所述回滚日志确定在所述目标检查点周期内的工作数据在所述持久化内存中的第一存储区域地址;
根据所述第一存储区域地址,获取指定映射数据,并判断所述指定映射数据对应的检查点周期编号与所述持久化内存的检查点元数据存储区域中系统检查点周期编号是否相同,若是,将所述指定映射数据中与第一标志位不同的第二标志位的取值,更新为所述第一标志位的取值;
从所述持久化内存中读取系统重启前的检查点周期编号并发送到所述检查点元数据寄存器,增加检查点周期编号开始数据恢复;
利用所述回滚日志中的计数器数据取值对所述指定映射数据第一标志位指向的检查点数据进行解密,并在对解密后的数据进行再一次加密后,将得到的加密数据发送到所述持久化内存;
将计数器缓存和映射数据缓存中被修改的计数器和被修改的映射数据刷新回所述持久化内存,将所述检查点元数据存储区域中的处理器状态数据恢复到处理器的寄存器中,增加检查点周期编号完成数据恢复,继续应用程序执行。
23.如权利要求13所述的方法,其特征在于,根据所述目标计数器数据对所述目标数据进行加密,得到加密数据,并根据所述映射数据,将所述加密数据存储在所述工作数据对应的存储区域,具体包括:
若所述目标计数器数据未存储在所述计数器缓存中,以及所述目标映射数据未存储在所述映射数据缓存中,则访问所述持久化内存,并从所述持久化内存中获取所述目标计数器数据和所述目标映射数据。
24.如权利要求13所述的方法,其特征在于,所述目标数据包括:图数据,所述数据存储系统用于对图计算过程中涉及的图数据进行读写。
25.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求13~24任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310259451.6A CN116243871A (zh) | 2023-03-13 | 2023-03-13 | 数据存储系统、数据存储方法及电子设备 |
US18/470,346 US20240311300A1 (en) | 2023-03-13 | 2023-09-19 | Data storing systems, data storing methods, and electronic devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310259451.6A CN116243871A (zh) | 2023-03-13 | 2023-03-13 | 数据存储系统、数据存储方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116243871A true CN116243871A (zh) | 2023-06-09 |
Family
ID=86624136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310259451.6A Pending CN116243871A (zh) | 2023-03-13 | 2023-03-13 | 数据存储系统、数据存储方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240311300A1 (zh) |
CN (1) | CN116243871A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880905A (zh) * | 2023-09-08 | 2023-10-13 | 之江实验室 | 一种数据存储方法、装置、存储介质及电子设备 |
-
2023
- 2023-03-13 CN CN202310259451.6A patent/CN116243871A/zh active Pending
- 2023-09-19 US US18/470,346 patent/US20240311300A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880905A (zh) * | 2023-09-08 | 2023-10-13 | 之江实验室 | 一种数据存储方法、装置、存储介质及电子设备 |
CN116880905B (zh) * | 2023-09-08 | 2024-01-09 | 之江实验室 | 一种数据存储方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20240311300A1 (en) | 2024-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8453015B2 (en) | Memory allocation for crash dump | |
KR102407782B1 (ko) | 변환 색인 버퍼의 엔트리들에 대한 리스의 적응 확장 | |
US10552339B2 (en) | Dynamically adapting mechanism for translation lookaside buffer shootdowns | |
US8250331B2 (en) | Operating system virtual memory management for hardware transactional memory | |
US6560690B2 (en) | System and method for employing a global bit for page sharing in a linear-addressed cache | |
KR100772863B1 (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
US10049036B2 (en) | Reliable distributed messaging using non-volatile system memory | |
US10078588B2 (en) | Using leases for entries in a translation lookaside buffer | |
US9767015B1 (en) | Enhanced operating system integrity using non-volatile system memory | |
US9317448B2 (en) | Methods and apparatus related to data processors and caches incorporated in data processors | |
US9760480B1 (en) | Enhanced logging using non-volatile system memory | |
US7197605B2 (en) | Allocating cache lines | |
US9483400B2 (en) | Multiplexed memory for segments and pages | |
US20130304972A1 (en) | Control device, storage device, and storage control method | |
CN116243871A (zh) | 数据存储系统、数据存储方法及电子设备 | |
CN111868700B (zh) | 存储器管理系统、存储器管理方法以及信息处理设备 | |
US10089220B1 (en) | Saving state information resulting from non-idempotent operations in non-volatile system memory | |
CN115048047A (zh) | 一种数据处理系统和方法 | |
WO2019118042A1 (en) | Rinsing cache lines from a common memory page to memory | |
CN115422604A (zh) | 针对非易失内存的数据安全处理方法、内存控制器及系统 | |
JP2024510127A (ja) | ページ再マッピングおよびローテーションによるアドレス空間配置のランダム化エントロピーの増大 | |
TWI428741B (zh) | 記憶體管理系統與方法 | |
CN115485667A (zh) | 记录高速缓存一致性协议跟踪以与独立存储器值跟踪结合使用 | |
JPS58166584A (ja) | バツフアメモリ制御方式 | |
JPH02287740A (ja) | コンピュータシステムおよびキャッシュメモリの無効化方法 |
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 |