CN107562567A - 一种数据处理方法以及数据处理设备 - Google Patents

一种数据处理方法以及数据处理设备 Download PDF

Info

Publication number
CN107562567A
CN107562567A CN201610511254.9A CN201610511254A CN107562567A CN 107562567 A CN107562567 A CN 107562567A CN 201610511254 A CN201610511254 A CN 201610511254A CN 107562567 A CN107562567 A CN 107562567A
Authority
CN
China
Prior art keywords
data
upper layer
flash
address
layer data
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
Application number
CN201610511254.9A
Other languages
English (en)
Inventor
毛波
吴素贞
王雅坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610511254.9A priority Critical patent/CN107562567A/zh
Publication of CN107562567A publication Critical patent/CN107562567A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据处理方法以及数据处理设备,用于使得日志数据在RAM中不会发生丢失,有效保存日志数据。本发明实施例方法包括:获取第一上层数据,所述第一上层数据包括逻辑地址;根据所述逻辑地址判断所述第一上层数据的类型是否为日志数据;若所述第一上层数据的类型为日志数据,则将所述第一上层数据的所述逻辑地址修改为第一存储地址和第二存储地址,所述第一存储地址用于指示所述第一上层数据在随机存取存储器RAM中的存储位置,所述第二存储地址用于指示所述第一上层数据在闪存FLASH中的存储位置;将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH。

Description

一种数据处理方法以及数据处理设备
技术领域
本发明涉及终端领域,尤其涉及一种数据处理方法以及数据处理设备。
背景技术
目前大部分手机采用的Linux内核默认使用第四代扩展文件系统(英文全称:Fourth Extended File System,简称EXT4)是Linux操作系统下的一种日志文件系统,同时手机通常上的许多应用都依赖于SQLite数据库。EXT4通过日志记录,该文件系统提供了数据一致性。依据可靠性的强弱,日志记录有3种不同的模式,分别为日志(Journal)、预定(Ordered)以及写回(Write back),其中日志模式记录文件系统所有数据和元数据的改变,预定模式记录文件系统元数据的改变并在日志记录完成后写入数据,写回模式记录文件系统元数据的改变但数据被直接写入存储单元。SQLite数据库也通过日志提供应用层面的数据一致性。
现有技术中通过修改手机下层EXT4的日志记录方式,对SQLite的不同类型数据采用不同的日志模式,SQLite的日志数据用Ordered日志模式,而SQLite的业务数据则采用Journal的日志模式。即该手机将SQLite的日志数据存储到随机存取存储器(英文全称:random access memory,简称:RAM)中,而将SQLite的业务数据和延迟后的日志数据写入到Flash中。
该方法将日志数据存储在RAM,而RAM在出现故障后容易丢失保存的数据,导致日志数据容易丢失。
发明内容
本申请实施例提供了一种数据处理方法以及数据处理设备,用于使得日志数据在RAM中不会发生丢失,有效保存日志数据。
第一方面,本申请实施例提供一种数据处理方法,包括:获取第一上层数据,该第一上层数据包括逻辑地址;
在实际应用中,该第一上层数据的逻辑地址可以为存储地址或请求地址或请求类型等,只要可以表明该第一上层数据的类型即可,具体此处不做限定。
根据该逻辑地址判断该第一上层数据的类型是否为日志数据;
若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;
将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
在实际应用中,可以增加该数据处理设备的电池容量,即有效保证该数据处理设备不发生断电事故,从而有效降低RAM发生故障的概率,进而有效保存日志数据。只要可以有效保存日志数据即可,具体的实现方式,此处不做限定。
在本申请实施例中,在确定该第一上层数据的类型为日志数据之后,将该第一上层数据同时存储在RAM和FLASH中,可以有效的避免丢失该第一上层数据。
可选的,将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH之前,将该第一层数据的逻辑地址修改为第一存储地址和第二存储地址之后,该方法还包括:在所述第一上层数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则触发将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH,所述第一偏移地址为所述第二存储地址中的位置标识。
在本申请实施例中,将该第一上层数据以块对齐的方式存储到该RAM和该FLASH中,可以有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
可选的,在基于上述的存储方式,该方法还包括:在所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第一偏移地址修改为第二偏移地址生成第三存储地址,所述第二偏移地址指示的存储位置包含的所述FLASH的数据块的数目为所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第三存储地址写入所述FLASH。在本申请实施例中,当该第一上层数据占用的存储空间为该FLASH的块占用的存储空间的整数倍时,若该第一上层数据在该FLASH中的偏移地址不满足块对齐存储时,可以将该第一上层数据的偏移地址进行修改,有利于实现块对齐存储,从而有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
可选的,基于上述存储方法,该方法还包括:若所述第一上层数据的占用的存储空间不等于所述FLASH的数据块占用的存储空间的整数倍,则获取第二上层数据;
若所述第二上层数据的类型为日志数据,则将所述第一上层数据与所述第二上层数据进行合并优化生成整合数据;
在所述整合数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述整合数据的第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述第五存储地址写入所述FLASH,所述第四存储地址用于指示所述整合数据在所述RAM中的存储位置,所述第五存储地址用于指示所述整合数据在所述FLASH中的存储位置,所述第三偏移地址为所述第五存储地址中的位置标识。
本申请实施例中,将多个占用的存储空间不为该FLASH的数据块占用的存储空间的整数倍的上层数据进行合并优化得到一个占用的存储空间为该FLASH的数据块占用的存储空间的整数倍的整合数据,从而实现块对齐存储,进而有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
可选的,该方法还包括:在所述第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第三偏移地址修改为第四偏移地址生成第六存储地址,所述第四偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述六存储地址写入所述FLASH。
在本申请实施例中,当该整合数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍时,若该整合数据在该FLASH中的偏移地址不满足块对齐存储时,可以将该整合数据的偏移地址进行修改,有利于实现块对齐存储,从而有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
可选的,将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH之后,该方法还包括:在该第一上层数据对应的业务数据写操作完成的情况下,根据该第二存储地址查找存储在该FLASH中的该第一上层数据;
将该FLASH中存储该第一上层数据的数据块进行擦除并标记擦除操作后的该数据块可用。本申请实施例中,当该RAM中的该第一上层数据无效时,主动擦除该FLASH中存储该第一上层数据的数据块并标记擦除操作后的数据块为可用数据块,从而释放该FLASH的资源空间,有效的提高该FLASH存储系统的响应性能。
可选的,该RAM为预留RAM,该FLASH为预留FLASH。
在实际应用中,该预留RAM的大小可以为该数据处理设备的百分之一到百分之二,也可以为其他的大小,只要可以满足日志数据的存储需求即可,此处不做限定。本申请实施例中,采用预留RAM和预留FLASH存储日志数据,可以有效的提高该日志数据的存储效率。
可选的,该方法还包括:在该第一上层数据不为日志数据的情况下,则将该第一上层数据按照该逻辑地址写入该FLASH。
在实际应用中,若该数据处理设备采用了预留RAM和预留FLASH进行存储日志数据,则该数据处理设备在存储业务数据时,可以将该业务数据存储在该预留FLASH之外的资源空间中,从而有效的日志数据的存储效率。
可选的,该第一上层数据至少包括以下数据中的一种:数据库数据和文件系统数据。
实际应用中,该数据库的运行可以产生业务数据和日志数据,该数据库产生的业务数据和日志数据同时作为该第一上层数据发送给本申请实施例中的数据处理层;而应用程序在运行过程中产生的业务数据在经过文件系统之后也可以产生日志数据,同时该应用程序产生的业务数据与该文件系统产生的日志数据也可以作为该第一上层数据发送给本申请实施例中的数据处理层。
可选的,将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址包括:按照顺序存储的方式确定该第一上层数据的该第一存储地址和该第二存储地址;
将该逻辑地址修改为该第一存储地址和该第二存储地址。
实际应用中,该第一存储地址与该第二存储地址的确定方式可以采用多种方式,只要可以实现将该第一上层数据存储进RAM和FLASH即可,具体此处不做限定。
本申请实施例中,采用顺序存储方式确定该第一存储地址和该第二存储地址,可以有效的提高存储效率。
第二方面,本申请实施例提供一种数据处理设备,该数据处理设备具有实现上述方法中数据处理设备的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
一种可能实现方式中,该数据处理设备包括:
获取模块,处理模块;
该获取模块,用于获取第一上层数据,该第一上层数据包括逻辑地址;
该处理模块,用于根据该逻辑地址判断该第一上层数据的类型是否为日志数据;若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
另一种可能实现方式中,该数据处理设备包括:
收发器,处理器,总线;
该收发器与该处理器通过该总线相连;
该收发器,执行如下步骤:
获取第一上层数据,该第一上层数据包括逻辑地址;
该处理器,执行如下步骤:
根据该逻辑地址判断该第一上层数据的类型是否为日志数据;若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
第三方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示执行上述第一方面的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:该数据处理设备在确定该第一上层数据的类型为日志数据后,将该第一上层数据存储在RAM和FLASH。若该RAM发生故障导致该上层数据丢失,则该数据处理设备可以从该FLASH中将该第一上层数据找回并恢复,因此避免了数据的丢失。
附图说明
图1为本申请实施例中数据处理架构的示意图;
图2为本申请实施例中数据处理方法的一种实施例的示意图;
图3为本申请实施例中顺序存储的示意图;
图4为本申请实施例中数据处理方法的另一种实施例的示意图;
图5为本申请实施例中数据处理方法的另一种实施例的示意图;
图6为本申请实施例中数据处理方法的另一种实施例的示意图;
图7为本申请实施例中的数据处理设备的一种实施例的示意图;
图8为本申请实施例中的数据处理设备的另一种实施例的示意图。
具体实施方式
本发明实施例提供了一种数据处理方法以及数据处理设备,用于使得日志数据在RAM中不会发生丢失,有效保存日志数据。
为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分的实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前大部分手机采用的Linux内核默认使用EXT4,同时手机通常上的许多应用都依赖于SQLite数据库。SQLite和EXT4的协作性不足导致了严重的写放大问题,产生大量的Flash更新操作,这将严重影响Flash存储系统的性能和可靠性。为消除SQLite日志数据的频繁更新操作对Flash的性能和可靠性影响,现有技术中通过修改手机下层EXT4的日志记录方式,将SQLite的日志数据存储到RAM中,而将SQLite的业务数据和延迟后的日志数据写入到FLASH中。但是采用这种方式,日志数据仅存储在RAM中,当RAM出现故障时,该日志数据则会出现丢失。
为了使得日志数据在RAM中不会发生丢失,有效保存日志数据,本申请实施例提供一种数据处理方法,在确定该第一上层数据的类型为日志数据后,将该第一上层数据存储在RAM和FLASH。若该RAM发生故障导致该上层数据丢失,则该数据处理设备可以从该FLASH中将该第一上层数据找回并恢复。
请参阅图1所示的数据处理架构中,应用程序层,应用程序架构层以及系统运行库层产生的业务数据进入Linux内核的文件系统之后,该文件系统会生成一个对应该业务数据的日志数据,同时将该业务数据和该日志数据作为第一上层数据发送给本申请实施例的数据处理层;同时通过SQLite在运行过程中产生的日志数据和业务数据也将作为上层数据发送给该数据处理层。该数据处理层将该日志数据写入RAM和FLASH中,将该业务数据写入FLASH中。
为有效保存该日志数据,本申请实施例提供了如下技术方案:
获取第一上层数据,该第一上层数据包括逻辑地址;根据该逻辑地址判断该第一上层数据的类型是否为日志数据;若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
具体请参阅图2,本申请实施例中数据处理方法的一个实施例如下:
201、获取第一上层数据。
该数据处理设备获取第一上层数据,该第一上层数据的数据结构中包含有该第一上层数据的逻辑地址。
在实际应用中,该数据处理设备的应用程序层,应用程序架构层以及系统运行库层产生的业务数据发送给该数据处理设备文件系统层,该文件系统层在接收到该业务数据之后会生成一个与该业务数据对应的日志数据。即该第一上层数据的类型包括了业务数据和日志数据。比如用户在早上8点15分时正通过微信接收一个图片文件并将该图片文件进行保存,在本实施例中,该业务数据即为该图片文件,而通过文件系统生成的日志数据即为“早上8点15分,微信正在保存该图片文件”。
202、判断该第一上层数据的类型是否为日志数据,若是,则执行步骤203至204,若否,则执行步骤205。
该数据处理设备可以通过判断该第一上层数据的逻辑地址来确认当前获取到的该第一上层数据的类型是否为日志数据,若是,则执行步骤203至204,若否,则执行步骤205。
在实际应用中,业务数据与日志数据的逻辑地址是不同的,例如,文件系统生成日志数据时,该日志数据的偏移地址都是固定在预设区域内,若该数据处理设备检测到该第一上层数据的偏移地址位于该预设区域内,则该数据处理设备确定该第一上层数据的类型为日志数据。
203、确定该第一上层数据的第一存储地址和第二存储地址。
在该数据处理设备确定该第一上层数据的类型为日志数据之后,该数据处理设备将该第一上层数据的逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在该RAM中的存储位置,该第二存储地址用于指示该第一上层数据在FLASH中的存储位置。
该数据处理设备可以按照如图3所示的顺序存储的方式确定该第一存储地址和该第二存储地址。在图3中,假设该RAM的数据块A包括数据页1,数据页2,数据页3,数据页4;数据块B包括数据页5,数据页6,数据页7,数据页8。其中数据页1,数据页2和数据页3已存储有数据,且为有效数据页;数据页4,数据页5,数据页6,数据页7和数据页8都为空闲数据页。若本实施例中的该第一上层数据的占用的存储空间为该RAM的一个块占用的存储空间,即该第一上层数据包含有4个数据页,按照顺序存储的方式,该第一上层数据的第一存储地址即应该为该RAM中数据页4至数据页7。同理,在图3中,假设该FLASH的数据块C包括数据页9,数据页10,数据页11,数据页12;数据块D包括数据页13,数据页14,数据页15,数据页16。其中数据页9,数据页10,数据页11和数据页12已存储有数据,且为有效数据页,而本实施例中的该第一上层数据的占用的存储空间为该FLASH的一个块占用的存储空间,即该第一上层数据包含有4个数据页,按照顺序存储的方式,该第一上层数据的第一存储地址即应该为该FLASH中数据页13至数据页16。
实际应用中也可以采用其他的方式确定该第一存储地址和该第二存储地址,只要可以实现块存储即可,具体实现方式,此处不做限定。
在实际应用中,为了有效的提高日志数据写入的性能,该数据处理设备可以采用预留RAM与预留FLASH用作日志数据存储。同时由于日志数据的占用的存储空间通常只在比特级,因此该预留RAM的占用的存储空间可以是该数据处理设备的RAM的百分之一到百分之二的大小。在实际应用中,只要可以将日志数据顺利写入RAM和FLASH即可,具体的实现方式,此处不做限定。
204、将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
该数据处理设备在确定获取到该第一上层数据的第一存储地址和第二存储地址之后,将该第一上层数据分别按照第一存储地址写入该RAM,按照第二存储地址写入该FLASH。在本实施例中,该数据处理设备可以将该“早上8点15分,微信正在保存该图片文件”这条信息写入到该RAM的数据页4,数据页5,数据页6和数据页7,将该“早上8点15分,微信正在保存该图片文件”这条日志数据写入到该FLASH的数据页13,数据页14,数据页15和数据页16中。
205、将该第一上层数据按照该逻辑地址写入该FLASH。
在该数据处理设备确定该第一上层数据的类型不为日志数据之后,该数据处理设备将该第一上层数据直接按照该逻辑地址写入该FLASH。本实施例中,该数据处理设备将该图片文件按照该图片文件的逻辑地址保存在FLASH中。
在实际应用中,若该数据处理设备将该日志数据存储在预留RAM和预留FLASH中,则该数据处理设备可以将业务数据存储在预留FLASH之外的FLASH中,这样可以保证业务数据的写入不会影响日志数据的存储效率。同时,若为了避免该第一上层数据的丢失,该数据处理设备还可以增加该数据处理设备的电池容量,保证其不容易断电,这样该RAM也可以有效的保证不丢失该第一上层数据,此做为备选方案,具体实现方式,此处不做限定。
本实施例中,该数据处理设备在确定该第一上层数据的类型为日志数据之后,将该第一上层数据同时存入该RAM和该FLASH中,能有效的避免该第一上层数据的丢失。同时在该数据处理设备采用预留RAM和预留FLASH作为日志数据的存储位置,可以有效的提高该日志数据的存储效率。
基于上述实施例的描述,该数据处理设备为了消除日志数据的频繁更新操作对该数据处理设备的FLASH的性能和可靠性影响,该数据处理设备在将该将该第一上层数据分别按照第一存储地址写入该RAM,按照第二存储地址写入该FLASH时,可以采用如下方法,具体情况请参阅图4:
401、判断该第一上层数据占用的存储空间是否为该FLASH的数据块占用的存储空间的整数倍,若是,则执行步骤402至步骤405,若否,则执行步骤406。
该数据处理设备在确定该第一上层数据的类型为日志数据之后,将该第一上层数据占用的存储空间与该FLASH的数据块占用的存储空间进行比较,若该第一上层数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍,则执行步骤402至步骤405,若否,则执行步骤406。
比如本实施例中的“早上8点15分,微信正在保存该图片文件”这条日志数据占用的存储空间为20比特,而该FLASH的数据块占用的存储空间为1兆,则该第一上层数据,即该日志数据占用的存储空间不等于该FLASH的数据块占用的存储空间的整数倍。若该日志数据占用的存储空间为1兆,则该第一上层数据,即该日志数据占用的存储空间为该FLASH的数据块占用的存储空间的1倍。
402、判断该第一上层数据的第一偏移地址指示的存储位置包含的该FLASH的数据块的数目是否为该第一上层数据占用的存储空间对应的该FLASH的数据块的数目,若是,则执行步骤403,若否,则执行步骤404至405;
该数据处理在确定该第一上层数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍之后,判断该第一上层数据的第一偏移地址指示的存储位置包含的该FLASH的数据块的数目是否与该第一上层数据占用的存储空间对应的该FLASH的数据块的数目,若是,则执行步骤403,若否,则执行步骤404至405。
假设本实施例中的“早上8点15分,微信正在保存该图片文件”这条日志数据的占用的存储空间正好为该FLASH的块占用的存储空间的1倍,即该日志数据占用的存储空间对应的该FLASH的数据块占用的存储空间的数目为1,该日志数据用于指示在该FLASH中的存储位置的第一偏移地址正好是数据页13至数据页16,即正好包含了1个该FLASH的数据块,则执行步骤403;而若该日志数据用于指示在该FLASH中的存储位置的第一偏移地址为数据页11至数据页14,即包含了两个该FLASH的数据块,则执行步骤404至步骤405。
403、将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH;
该数据处理设备将该第一上层数据按照该第一存储地址写入该RAM,同时将该第一上层数据按照该第二存储地址写入该FLASH。
本实施例中,“早上8点15分,微信正在保存该图片文件”这条日志数据的第一存储地址为该RAM中数据页4,数据页5,数据页6和数据页7,第二存储地址为该FLASH中的数据页13,数据页14,数据页15和数据页16,该数据处理设备将该日志数据按照该第一存储地址和该第二存储地址进行存储。
404、将该第一偏移地址修改为第二偏移地址生成第三存储地址。
该第一上层数据的第一偏移地址指示的存储位置包含的该FLASH的数据块的数目不为该第一上层数据占用的存储空间对应的该FLASH的数据块的数目时,该数据处理设备将该第一上层数据的第一偏移地址修改为第二偏移地址生成第三存储地址,该第二偏移地址指示的存储位置包含的该FLASH的数据块的数目为该第一上层数据占用的存储空间对应的该FLASH的数据块的数目。
本实施例中,若“早上8点15分,微信正在保存该图片文件”这条日志数据用于指示在该FLASH中的存储位置的第一偏移地址为数据页11至数据页14,即包含了两个该FLASH的数据块,则该数据处理设备将该第一偏移地址修改为数据页13至数据页16,即该日志数据的第三存储地址为该的FLASH中数据页13至数据页16。
405、将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第三存储地址写入该FLASH。
该数据处理设备将该第一上层数据按照该第一存储地址写入该RAM,同时将该第一上层数据按照该第三存储地址写入该FLASH。
本实施例中,“早上8点15分,微信正在保存该图片文件”这条日志数据的第一存储地址为该RAM中数据页4,数据页5,数据页6和数据页7,第三存储地址为该FLASH中的数据页13,数据页14,数据页15和数据页16,该数据处理设备将该日志数据按照该第一存储地址和该第三存储地址进行存储。
406、延迟该第一上层数据的写入。
该数据处理设备在确定该第一上层数据的占用的存储空间不为该FLASH的数据块占用的存储空间的整数倍后,比如若该第一上层数据占用的存储空间为该FLASH的数据页13至数据页14,则该数据处理设备延迟该第一上层数据的写入。
本实施例中,该数据处理设备在确定该第一上层数据的类型为日志数据之后,将该第一上层数据采用块对齐的方式写入RAM和FLASH,可以有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
基于上述实施例,在该数据处理设备延迟该第一上层数据的写入后,该数据处理设备还可以执行如图5所示的步骤。如图5所示的方法,具体情况如下:
501、获取第二上层数据。
该数据处理设备获取第二上层数据,该第二上层数据的数据结构中包含有该第二上层数据的逻辑地址。
比如用户在早上8点16分时正通过微信接收一个视频文件并将该视频文件进行保存,在本实施例中,该业务数据即为该视频文件,而通过文件系统生成的日志数据即为“早上8点16分,微信正在保存该视频文件”。
502、判断该第二上层数据的类型是否为日志数据,若是,则执行步骤503至步骤509,若否,则执行步骤510。
该数据处理设备可以通过判断该第二上层数据的逻辑地址来确认当前获取到的该第二上层数据的类型是否为日志数据,若是,则执行步骤503至509,若否,则执行步骤510。
在实际应用中,业务数据与日志数据的逻辑地址是不同的,例如,文件系统生成日志数据时,该日志数据的偏移地址都是固定在预设区域内,若该数据处理设备检测到该第二上层数据的偏移地址位于该预设区域内,则该数据处理设备确定该第二上层数据的类型为日志数据。
503、将该第一上层数据与该第二上层数据合并优化生成整合数据。
该数据处理设备将该第一上层数据与该第二上层数据合并优化,生成一个整合数据。
本实施例中,该数据处理设备将“早上8点15分,微信正在保存该图片文件”这条日志数据与“早上8点16分,微信正在保存该视频文件”这条日志数据进行合并优化生成一个整合数据,该整合数据包含了“早上8点15分,微信正在保存该图片文件”和“早上8点16分,微信正在保存该视频文件”两条信息。
实际应用中,该数据处理设备合并优化数据可以采用多种方式,只要可以由多个数据生成一个数据即可,具体实现方式,此处不做限定。
504、确定该整合数据的第四存储地址和第五存储地址。
该数据处理设备在得到该整合数据后,可以按照步骤203中图3所示的方法确定该整合数据的该第四存储地址和该第五存储地址,具体方式不再赘述。
505、判断该整合数据占用的存储空间是否为该FLASH的数据块占用的存储空间的整数倍,若是,则执行步骤506至步骤509,若否,则循环执行步骤501至505。
该数据处理设备在确定该整合数据的类型为日志数据之后,将该整合数据占用的存储空间与该FLASH的数据块占用的存储空间进行比较,若该整合数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍,则执行步骤506至步骤509,若否,循环执行步骤501至505。
比如本实施例中的整合数据占用的存储空间为60比特,而该FLASH的数据块占用的存储空间为1兆,则该整合数据占用的存储空间不为该FLASH的数据块占用的存储空间的整数倍。若该整合数据占用的存储空间为1兆,则该整合数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍。
506、判断该整合数据的第三偏移地址指示的存储位置包含的该FLASH的数据块的数目是否为该整合数据占用的存储空间对应的该FLASH的数据块的数目,若是,则执行步骤507,若否,则执行步骤508至509;
该数据处理在确定该整合数据占用的存储空间为该FLASH的数据块占用的存储空间的整数倍之后,判断该整合数据的第三偏移地址指示的存储位置包含的该FLASH的数据块的数目是否与该整合数据占用的存储空间对应的该FLASH的数据块的数目,若是,则执行步骤507,若否,则执行步骤508至509。
假设本实施例中的整合数据占用的存储空间正好为该FLASH的数据块占用的存储空间的1倍,即该整合数据占用的存储空间对应的该FLASH的数据块的数目为1,该整合数据用于指示在该FLASH中的存储位置的第三偏移地址正好是数据页13至数据页16,即正好包含了1个该FLASH的数据块,则执行步骤507;而若该整合数据用于指示在该FLASH中的存储位置的第三偏移地址为数据页11至数据页14,即包含了两个该FLASH的数据块,则执行步骤508至步骤509。
507、将该整合数据按照第四存储地址写入该RAM,按照该第五地址写入该FLASH。
该数据处理设备将该整合数据按照该第四存储地址写入该RAM,同时将该整合数据按照该第五存储地址写入该FLASH。
本实施例中,若该整合数据的第四存储地址为该RAM中数据页4,数据页5,数据页6和数据页7,第五存储地址为该FLASH中的数据页13,数据页14,数据页15和数据页16,该数据处理设备将该整合数据按照该第一存储地址和该第二存储地址进行存储。
508、将该第三偏移地址修改为第四偏移地址生成第六存储地址。
该整合数据的第三偏移地址指示的存储位置包含的该FLASH的数据块的数目不为该整合数据占用的存储空间对应的该FLASH的数据块的数目时,该数据处理设备将该整合数据的第三偏移地址修改为第四偏移地址生成第六存储地址,该第四偏移地址指示的存储位置包含的该FLASH的数据块的数目为该整合数据占用的存储空间对应的该FLASH的数据块的数目。
本实施例中,若整合数据中用于指示在该FLASH中的存储位置的第三偏移地址为数据页11至数据页14,即包含了两个该FLASH的数据块,则该数据处理设备将该第三偏移地址修改为数据页13至数据页16,即该整合数据的第六存储地址为数据页13至数据页16。
509、将该整合数据按照该第四存储地址写入该RAM,并将该整合数据按照该第六存储地址写入该FLASH。
该数据处理设备将该整合数据按照该第四存储地址写入该RAM,同时将该整合数据按照该第六存储地址写入该FLASH。
本实施例中,整合数据的第四存储地址为该RAM中数据页4,数据页5,数据页6和数据页7,第六存储地址为该FLASH中的数据页13,数据页14,数据页15和数据页16,该数据处理设备将该整合数据按照该第一存储地址和该第二存储地址进行存储。
510、将该第二上层数据按照该逻辑地址写入该FLASH。
在该数据处理设备确定该第二上层数据的类型不为日志数据之后,该数据处理设备将该第二上层数据直接按照该第二上层数据的逻辑地址写入该FLASH。本实施例中,该数据处理设备将该视频文件按照该视频文件的逻辑地址写入该FLASH。
本实施例中,该数据处理设备在延迟该第一上层数据写入之后,继续获取第二上层数据,并在该第二上层数据的类型为日志数据时,将该第一上层数据与该第二上层数据进行合并优化,以使得可以将日志数据采用块对齐的方式写入RAM和FLASH,可以有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
基于上述图2所示的数据存储方法,若该第一上层数据的类型为日志数据,该数据处理设备还可以采用如图6所示的方法对该FLASH中的无效数据块进行擦除,从而释放该FLASH的存储空间用于存储后续的日志数据,提高该FLASH存储系统的响应性能,具体流程如下:
601、获取该第一上层数据对应的业务数据的写操作的写入进度。
该数据处理设备实时获取该第一上层数据对应的业务数据的写操作的写入进度。
602、判断该第一上层数据对应的业务数据的写操作是否完成,若是,则执行步骤603至步骤604,若否,则执行步骤601。
该数据处理设备获取该第一上层数据对应的业务数据的写操作的写入进度,确定该业务数据的写操作是否完成,若该业务数据的写操作已完成,则确定该第一上层数据无效,并执行步骤603至步骤604,若该业务数据的写操作尚未完成,则该数据处理设备执行步骤601,继续获取该业务数据的写入进度。
本实施例中,“早上8点15分,微信正在保存该图片文件”这条日志数据对应的业务为该图片文件,则该数据处理设备获取该图片文件的写入进度,若该图片文件已完成写入请求,则“早上8点15分,微信正在保存该图片文件”这条日志数据无效,即该RAM中数据页4至数据页7为无效数据页。
603、根据该第二存储地址查找存储在该FLASH中的该第一上层数据。
该数据处理设备确定该RAM中的第一上层数据无效之后,同时知道该FLASH中的第一上层数据也变为无效。该数据处理设备可以通过该RAM中的第一上层数据中的第二存储地址查找该FLASH中的第一上层数据。即在本实施例中,该数据处理设备确定该FLASH中“早上8点15分,微信正在保存该图片文件”这条日志数据无效。
604、将该FLASH中存储该第一上层数据的数据块进行擦除并标记该擦除操作后的数据块可用。
该数据处理设备在查找到该FLASH中的第一上层数据之后,将存储该第一上层数据的数据块进行擦除并标记该数据块可用。
该数据处理设备在确定该FLASH中“早上8点15分,微信正在保存该图片文件”这条日志数据无效之后,即确定该FLASH中的数据页13至数据页16为无效数据页,同时将该数据页13,该数据页14,该数据页15和该数据页16上的数据进行擦除,并标记该数据页13,该数据页14,该数据页15和该数据页16可用。
在实际应用,该数据处理设备可以在空闲时间对该FLASH的无效数据块进行擦除,若采用如图4或图5所示的数据存储方法,同样可以采用如图6所示的方法对该FLASH中的无效数据块进行擦除。
本实施例中,该数据处理设备在确定在RAM中的该第一上层数据无效后,即将存储在FLASH中的该第一上层数据进行删除,释放该FLASH的资源空间,能有效的提高该FLASH存储系统的响应性能。
上面对本申请实施例中的数据处理方法进行了描述,下面对本申请实施例中的数据处理设备进行描述,具体请参阅图7,本申请实施例中数据处理设备的一个实施例,包括:
接收模块701,处理模块702;
该接收模块701,用于获取第一上层数据,该第一上层数据包括逻辑地址;
该处理模块702,用于根据该逻辑地址判断该第一上层数据的类型是否为日志数据;若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
可选的,该处理模块702,还用于在所述第一上层数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则触发将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH,所述第一偏移地址为所述第二存储地址中的位置标识。
可选的,该处理模块702,还用于
在所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第一偏移地址修改为第二偏移地址生成第三存储地址,所述第二偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第三存储地址写入所述FLASH。
可选的,该获取模块701,还用于若所述第一上层数据占用的存储空间不等于所述FLASH的数据块占用的存储空间的整数倍,则获取第二上层数据;
该处理模块702,还用于若所述第二上层数据的类型为日志数据,则将所述第一上层数据与所述第二上层数据进行合并优化生成整合数据;在所述整合数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述整合数据的第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述第四存储地址写入所述FLASH,所述第四存储地址用于指示所述整合数据在所述RAM中的存储位置,所述第五存储地址用于指示所述整合数据在所述FLASH中的存储位置,所述第三偏移地址为所述第五存储地址中的位置标识。
可选的,该处理模块702,还用于在所述第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第三偏移地址修改为第四偏移地址生成第六存储地址,所述第四偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述六存储地址写入所述FLASH。
可选的,该处理模块702,还用于在所述第一上层数据对应的业务数据写操作完成的情况下,根据所述第二存储地址查找存储在所述FLASH中的所述第一上层数据;将所述FLASH中存储所述第一上层数据的数据块进行擦除并标记擦除操作后的所述数据块可用。
可选的,该处理模块702,还用于按照顺序存储的方式确定所述第一上层数据的所述第一存储地址和所述第二存储地址;
将所述逻辑地址修改为所述第一存储地址和所述第二存储地址。
本实施例中,在处理模块702在确定该获取模块701获取得到的该第一上层数据的类型为日志数据之后,该处理模块702将该第一上层数据同时存储在RAM和FLASH中,能有效的避免该第一上层数据的丢失。同时在该处理模块702还可以将多个小日志数据进行合并优化以块对齐的方式写入RAM和FLASH,同时还可以将该FLASH中的无效数据块进行主动回收,可以有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
具体请参阅图8,本申请实施例中数据处理设备的另一个实施例,包括:
收发器801,处理器802,总线803;
该收发器801与该处理器802通过该总线803相连;
该总线803可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
该处理器802可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。
该处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
该收发器801,执行如下步骤:
获取第一上层数据,该第一上层数据包括逻辑地址;
该处理器802,执行如下步骤:
根据该逻辑地址判断该第一上层数据的类型是否为日志数据;若该第一上层数据的类型为日志数据,则将该第一上层数据的该逻辑地址修改为第一存储地址和第二存储地址,该第一存储地址用于指示该第一上层数据在随机存取存储器RAM中的存储位置,该第二存储地址用于指示该第一上层数据在闪存FLASH中的存储位置;将该第一上层数据按照该第一存储地址写入该RAM,并将该第一上层数据按照该第二存储地址写入该FLASH。
可选的,该处理器802,还执行如下步骤:在所述第一上层数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则触发将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH,所述第一偏移地址为所述第二存储地址中的位置标识。
可选的,该处理器802,还执行如下步骤:
在所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第一偏移地址修改为第二偏移地址生成第三存储地址,所述第二偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第三存储地址写入所述FLASH。
可选的,该收发器801,还执行如下步骤:
若所述第一上层数据占用的存储空间不等于所述FLASH的数据块占用的存储空间的整数倍,则获取第二上层数据;该处理器802,还执行如下步骤:
若所述第二上层数据的类型为日志数据,则将所述第一上层数据与所述第二上层数据进行合并优化生成整合数据;在所述整合数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述整合数据的第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述第四存储地址写入所述FLASH,所述第四存储地址用于指示所述整合数据在所述RAM中的存储位置,所述第五存储地址用于指示所述整合数据在所述FLASH中的存储位置,所述第三偏移地址为所述第五存储地址中的位置标识。
可选的,该处理器802,还执行如下步骤:
在所述第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第三偏移地址修改为第四偏移地址生成第六存储地址,所述第四偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述六存储地址写入所述FLASH。
可选的,该处理器802,还执行如下步骤:
在所述第一上层数据对应的业务数据写操作完成的情况下,根据所述第二存储地址查找存储在所述FLASH中的所述第一上层数据;将所述FLASH中存储所述第一上层数据的数据块进行擦除并标记擦除操作后的所述数据块可用。
可选的,该处理器802,还执行如下步骤:
按照顺序存储的方式确定所述第一上层数据的所述第一存储地址和所述第二存储地址;
将所述逻辑地址修改为所述第一存储地址和所述第二存储地址。参见图8所示,该系统还可以包括存储器804;
该存储器804,用于保存该第一上层数据或该整合数据。
该存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器804还可以包括上述种类的存储器的组合。
可选地,存储器804还可以用于存储程序指令,处理器802调用该存储器804中存储的程序指令,可以执行图2或图4或图5或图6所示实施例中的一个或多个步骤,或其中可选的实施方式,实现上述方法中系统行为的功能。
本实施例中,在处理器802在确定该收发器801获取得到的该第一上层数据的类型为日志数据之后,该处理器802将该第一上层数据同时存储在RAM和FLASH中,能有效的避免该第一上层数据的丢失。同时在该处理器802还可以将多个小日志数据进行合并优化以块对齐的方式写入RAM和FLASH,同时还可以将该FLASH中的无效数据块进行主动回收,可以有效的避免写放大和过多的写入操作,并且有效的提高了FLASH的写入效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (21)

1.一种数据处理方法,其特征在于,包括:
获取第一上层数据,所述第一上层数据包括逻辑地址;
根据所述逻辑地址判断所述第一上层数据的类型是否为日志数据;
若所述第一上层数据的类型为日志数据,则将所述第一上层数据的所述逻辑地址修改为第一存储地址和第二存储地址,所述第一存储地址用于指示所述第一上层数据在随机存取存储器RAM中的存储位置,所述第二存储地址用于指示所述第一上层数据在闪存FLASH中的存储位置;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH。
2.根据权利要求1所述的方法,其特征在于,将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH之前,将所述第一层数据的逻辑地址修改为第一存储地址和第二存储地址之后,所述方法还包括:
在所述第一上层数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则触发将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH,所述第一偏移地址为所述第二存储地址中的位置标识。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第一偏移地址修改为第二偏移地址生成第三存储地址,所述第二偏移地址指示的存储位置包含的所述FLASH的数据块的数目为所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第三存储地址写入所述FLASH。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一上层数据的占用的存储空间不等于所述FLASH的数据块占用的存储空间的整数倍,则获取第二上层数据;
若所述第二上层数据的类型为日志数据,则将所述第一上层数据与所述第二上层数据进行合并优化生成整合数据;
在所述整合数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述整合数据的第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述第五存储地址写入所述FLASH,所述第四存储地址用于指示所述整合数据在所述RAM中的存储位置,所述第五存储地址用于指示所述整合数据在所述FLASH中的存储位置,所述第三偏移地址为所述第五存储地址中的位置标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第三偏移地址修改为第四偏移地址生成第六存储地址,所述第四偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述六存储地址写入所述FLASH。
6.根据权利要求1所述的方法,其特征在于,将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH之后,所述方法还包括:
在所述第一上层数据对应的业务数据写操作完成的情况下,根据所述第二存储地址查找存储在所述FLASH中的所述第一上层数据;
将所述FLASH中存储所述第一上层数据的数据块进行擦除并标记擦除操作后的所述数据块可用。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述RAM为预留RAM,所述FLASH为预留FLASH。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一上层数据不为日志数据的情况下,则将所述第一上层数据按照所述逻辑地址写入所述FLASH。
9.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一上层数据至少包括以下数据中的一种:数据库数据和文件系统数据。
10.根据权利要求1至6中任一项所述的方法,其特征在于,将所述第一上层数据的所述逻辑地址修改为第一存储地址和第二存储地址包括:
按照顺序存储的方式确定所述第一上层数据的所述第一存储地址和所述第二存储地址;
将所述逻辑地址修改为所述第一存储地址和所述第二存储地址。
11.一种数据处理设备,其特征在于,包括:
获取模块,用于获取第一上层数据,所述第一上层数据包括逻辑地址;
处理模块,用于根据所述逻辑地址判断所述第一上层数据的类型是否为日志数据;若所述第一上层数据的类型为日志数据,则将所述第一上层数据的所述逻辑地址修改为第一存储地址和第二存储地址,所述第一存储地址用于指示所述第一上层数据在随机存取存储器RAM中的存储位置,所述第二存储地址用于指示所述第一上层数据在闪存FLASH中的存储位置;将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH。
12.根据权利要求11所述的数据处理设备,其特征在于,所述处理模块,还用于在所述第一上层数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则触发将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH,所述第一偏移地址为所述第二存储地址中的位置标识。
13.根据权利要求12所述的数据处理设备,其特征在于,所述处理模块,还用于在所述第一上层数据的第一偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第一偏移地址修改为第二偏移地址生成第三存储地址,所述第二偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述第一上层数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第三存储地址写入所述FLASH。
14.根据权利要求12所述的数据处理设备,其特征在于,所述获取模块,还用于若所述第一上层数据的占用的存储空间不等于所述FLASH的数据块占用的存储空间的整数倍,则获取第二上层数据;
所述处理模块,还用于若所述第二上层数据的类型为日志数据,则将所述第一上层数据与所述第二上层数据进行合并优化生成整合数据;
在所述整合数据占用的存储空间为所述FLASH的数据块占用的存储空间的整数倍,且所述整合数据的第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述第四存储地址写入所述FLASH,所述第四存储地址用于指示所述整合数据在所述RAM中的存储位置,所述第五存储地址用于指示所述整合数据在所述FLASH中的存储位置,所述第三偏移地址为所述第五存储地址中的位置标识。
15.根据权利要求14所述的数据处理设备,其特征在于,所述处理模块,还用于在所述第三偏移地址指示的存储位置包含的所述FLASH的数据块的数目不等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目的情况下,则将所述第三偏移地址修改为第四偏移地址生成第六存储地址,所述第四偏移地址指示的存储位置包含的所述FLASH的数据块的数目等于所述整合数据占用的存储空间对应的所述FLASH的数据块的数目;
将所述整合数据按照所述第四存储地址写入所述RAM,并将所述整合数据按照所述六存储地址写入所述FLASH。
16.根据权利要求11所述的数据处理设备,其特征在于,所述处理模块,还用于在所述第一上层数据对应的业务数据写操作完成的情况下,根据所述第二存储地址查找存储在所述FLASH中的所述第一上层数据;将所述FLASH中存储所述第一上层数据的数据块进行擦除并标记擦除操作后的所述数据块可用。
17.根据权利要求11至16中任一项所述的数据处理设备,其特征在于,所述RAM为预留RAM,所述FLASH为预留FLASH。
18.根据权利要求11至16中任一项所述的数据处理设备,其特征在于,所述存储模块,还用于在所述第一上层数据不为日志数据的情况下,则将所述第一上层数据按照所述逻辑地址写入所述FLASH。
19.根据权利要求11至16中任一项所述的数据处理设备,其特征在于,所述第一上层数据至少包括以下数据中的一种:数据库数据和文件系统数据。
20.根据权利要求11至16中任一项所述的数据处理设备,其特征在于,所述处理模块,还用于按照顺序存储的方式确定所述第一上层数据的所述第一存储地址和所述第二存储地址;
将所述逻辑地址修改为所述第一存储地址和所述第二存储地址。
21.一种数据处理设备,其特征在于,包括:
收发器,处理器,总线;
所述收发器与所述处理器通过所述总线相连;
所述收发器,执行如下步骤:
获取第一上层数据,所述第一上层数据包括逻辑地址;
所述处理器,执行如下步骤:
根据所述逻辑地址判断所述第一上层数据的类型是否为日志数据;若所述第一上层数据的类型为日志数据,则将所述第一上层数据的所述逻辑地址修改为第一存储地址和第二存储地址,所述第一存储地址用于指示所述第一上层数据在随机存取存储器RAM中的存储位置,所述第二存储地址用于指示所述第一上层数据在闪存FLASH中的存储位置;将所述第一上层数据按照所述第一存储地址写入所述RAM,并将所述第一上层数据按照所述第二存储地址写入所述FLASH。
CN201610511254.9A 2016-06-30 2016-06-30 一种数据处理方法以及数据处理设备 Pending CN107562567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610511254.9A CN107562567A (zh) 2016-06-30 2016-06-30 一种数据处理方法以及数据处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610511254.9A CN107562567A (zh) 2016-06-30 2016-06-30 一种数据处理方法以及数据处理设备

Publications (1)

Publication Number Publication Date
CN107562567A true CN107562567A (zh) 2018-01-09

Family

ID=60969647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610511254.9A Pending CN107562567A (zh) 2016-06-30 2016-06-30 一种数据处理方法以及数据处理设备

Country Status (1)

Country Link
CN (1) CN107562567A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875075A (zh) * 2018-07-09 2018-11-23 深圳市道通智能航空技术有限公司 无人机系统日志的存储方法及无人机图传系统
CN109614042A (zh) * 2018-11-30 2019-04-12 维沃移动通信有限公司 一种存储日志信息的方法及终端设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
CN102012849A (zh) * 2010-11-19 2011-04-13 中国人民大学 一种基于闪存的数据库恢复方法
CN103257831A (zh) * 2012-02-20 2013-08-21 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
CN103544097A (zh) * 2013-10-21 2014-01-29 广东威创视讯科技股份有限公司 嵌入式系统的日志存储方法、系统及日志读取方法和系统
CN104268274A (zh) * 2014-10-14 2015-01-07 华为技术有限公司 一种记录数据库日志的方法、装置及系统
WO2015081470A1 (zh) * 2013-12-02 2015-06-11 华为技术有限公司 数据处理设备和数据处理的方法
CN104778126A (zh) * 2015-04-20 2015-07-15 清华大学 非易失性主存中事务数据存储优化方法及系统
CN105373338A (zh) * 2014-08-20 2016-03-02 深圳市中兴微电子技术有限公司 一种flash的控制方法和控制器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
CN102012849A (zh) * 2010-11-19 2011-04-13 中国人民大学 一种基于闪存的数据库恢复方法
CN103257831A (zh) * 2012-02-20 2013-08-21 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
CN103544097A (zh) * 2013-10-21 2014-01-29 广东威创视讯科技股份有限公司 嵌入式系统的日志存储方法、系统及日志读取方法和系统
WO2015081470A1 (zh) * 2013-12-02 2015-06-11 华为技术有限公司 数据处理设备和数据处理的方法
CN105373338A (zh) * 2014-08-20 2016-03-02 深圳市中兴微电子技术有限公司 一种flash的控制方法和控制器
CN104268274A (zh) * 2014-10-14 2015-01-07 华为技术有限公司 一种记录数据库日志的方法、装置及系统
CN104778126A (zh) * 2015-04-20 2015-07-15 清华大学 非易失性主存中事务数据存储优化方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875075A (zh) * 2018-07-09 2018-11-23 深圳市道通智能航空技术有限公司 无人机系统日志的存储方法及无人机图传系统
CN109614042A (zh) * 2018-11-30 2019-04-12 维沃移动通信有限公司 一种存储日志信息的方法及终端设备

Similar Documents

Publication Publication Date Title
CN103729442B (zh) 记录事务日志的方法和数据库引擎
CN103488583B (zh) 一种高性能高可靠的固态盘实现方法
CN101923448B (zh) 一种nand闪存的转换层读写方法
CN103608866B (zh) 用于闪存存储器的数据擦除方法及装置
CN102508785B (zh) 一种磨损均衡方法及装置
CN102750317B (zh) 数据持久化处理方法、装置及数据库系统
CN107357680A (zh) 数据处理设备和数据处理的方法
CN102843396A (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
CN103617097B (zh) 文件恢复方法及装置
CN105659204A (zh) 用于进行带有注释的原子写入操作的方法和装置
CN107391774A (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN102142032B (zh) 一种分布式文件系统的数据读写方法及系统
CN103530388A (zh) 一种云存储系统中提升性能的数据处理方法
CN104407933A (zh) 一种数据的备份方法及装置
CN110347613B (zh) 多租户固态盘中实现raid的方法、控制器及多租户固态盘
CN108733306A (zh) 一种文件合并方法及装置
CN109522154A (zh) 数据恢复方法及相关设备与系统
CN106445832A (zh) 闪存存储系统的地址映射方法及装置
CN107229414A (zh) 存储空间回收方法及装置
CN104182182B (zh) 智能终端及智能终端的数据备份方法
CN106293497A (zh) 瓦记录感知文件系统中垃圾数据的回收方法和装置
CN102662799B (zh) 数据备份的方法、服务器及热备份系统
CN107562567A (zh) 一种数据处理方法以及数据处理设备
CN104461779B (zh) 一种分布式数据的存储方法、装置及系统
CN107329836A (zh) 多系统的内存管理方法、管理装置以及移动终端

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180109