CN110262757A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110262757A CN110262757A CN201910549682.4A CN201910549682A CN110262757A CN 110262757 A CN110262757 A CN 110262757A CN 201910549682 A CN201910549682 A CN 201910549682A CN 110262757 A CN110262757 A CN 110262757A
- Authority
- CN
- China
- Prior art keywords
- disk
- disk file
- memory
- file
- memory headroom
- 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
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开的数据处理方法,磁盘地址与内存空间中的虚拟地址建立了对应关系,所以,程序发起读磁盘文件的读取请求后,基于内存映射***的特性,内存映射***能够直接将磁盘文件从磁盘复制至内存空间,而无需多次调用读函数,并且,磁盘文件预先被转换为***语言对应的内存数据格式,所以,程序可以直接从内存空间中读取磁盘文件,无需再进行格式转换。因此,简化了解码流程。并且,因为程序对内存空间中的磁盘文件修改,修改后的文件会触发内存映射***将内存空间中的修改后的磁盘文件同步至磁盘,而无需多次调用写函数。因此,简化了编码流程。
Description
技术领域
本申请属于信息处理技术领域,涉及一种数据处理方法及装置。
背景技术
计算机程序通过多次调用读函数,将磁盘文件从磁盘空间中读到内存空间,并将磁盘文件转换为计算机程序可利用对象的格式,此过程为解码。计算机程序对内存空间中的磁盘文件(可能为通过解码操作从磁盘空间中读取的磁盘文件)进行改写后,通过多次调用写函数,将更新后的磁盘文件更新到磁盘空间中,此过程为编码。
可见,计算机程序在进行解码操作中需要多次调用读函数且要进行磁盘文件的格式转换,在编码操作中,需要多次调用写函数,而对于读函数或写函数的多次调用,会导致计算机程序访问磁盘文件效率低,进而导致计算机***的性能有待提高。
发明内容
本发明的目的在于提出一种数据处理及编解码方法、装置,以解决计算机程序的编码或解码效率低而导致计算机***低的性能。
为达到上述目的,本发明提供了以下技术方案:
一种数据处理方法,包括:
程序发起读磁盘文件的读取请求,所述读取请求触发内存映射***将所述磁盘文件从磁盘复制至内存空间;其中,所述磁盘文件的地址预先通过所述内存映射***,建立与所述内存空间中的虚拟地址之间的对应关系,所述磁盘文件预先被转换为***语言对应的内存数据格式;
所述程序从所述内存空间中读取所述磁盘文件。
可选的,所述内存映射***将所述磁盘文件从磁盘复制至内存空间,包括:
所述内存映射***通过调用一次读函数,将所述磁盘文件从磁盘复制至内存空间。
可选的,在所述程序发起读磁盘文件的读取请求之前,还包括:
通过所述内存映射***,建立磁盘中存储的各磁盘文件的地址与所述内存空间中的虚拟地址之间的对应关系;
将所述磁盘中存储的所述各磁盘文件的数据格式转换为***语言对应的内存数据格式。
可选的,在所述程序从所述内存空间中读取所述磁盘文件之后,还包括:
所述程序对所述磁盘文件进行修改,修改后的磁盘文件触发所述内存映射***将修改后的磁盘文件从所述内存空间同步至所述磁盘。
一种数据处理方法,包括:
程序对内存空间中的磁盘文件进行修改;其中,所述磁盘文件在磁盘中的地址预先通过内存映射***,建立与所述内存中的虚拟地址之间的对应关系;
在所述程序对所述内存空间中的所述磁盘文件修改完成后,修改后的文件触发所述内存映射***将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
可选的,所述内存映射***将所述内存空间中的修改后的磁盘文件同步至所述磁盘,包括:
所述内存映射***通过调用一次写函数,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
一种数据处理装置,包括:
请求发起模块,用于发起读磁盘文件的读取请求,所述读取请求触发内存映射***将所述磁盘文件从磁盘复制至内存空间;其中,所述磁盘文件的地址预先通过所述内存映射***,建立与所述内存空间中的虚拟地址之间的对应关系,所述磁盘文件预先被转换为***语言对应的内存数据格式;
读取模块,用于从所述内存空间中读取所述磁盘文件。
可选的,还包括:
所述内存映射***;
所述内存映射***将所述磁盘文件从磁盘复制至内存空间,包括:
所述内存映射***具体用于,通过调用一次读函数,将所述磁盘文件从磁盘复制至内存空间。
可选的,还包括:
映射模块,用于在所述请求发起模块发起读磁盘文件的读取请求之前,通过所述内存映射***,建立磁盘中存储的各磁盘文件的地址与进程虚拟地址空间中的虚拟地址之间的对应关系;
转换模块,用于将所述磁盘中存储的所述各磁盘文件的数据格式转换为***语言对应的内存数据格式。
可选的,还包括:
存储模块,用于在所述读取模块从所述内存空间中读取所述磁盘文件之后,对所述磁盘文件进行修改,修改后的磁盘文件触发所述内存映射***将修改后的磁盘文件从所述内存空间同步至所述磁盘。
一种数据处理装置,包括:
修改模块,用于对内存空间中的磁盘文件进行修改;其中,所述磁盘文件在磁盘中的地址预先通过内存映射***,建立与所述内存中的虚拟地址之间的对应关系;
内存映射***,用于在对所述内存空间中的所述磁盘文件修改完成后,基于修改后的文件的触发,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
可选的,所述内存映射***用于将所述内存空间中的修改后的磁盘文件同步至所述磁盘包括:
所述内存映射***具体用于,通过调用一次写函数,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
本申请公开的数据处理方法,程序发起读磁盘文件的读取请求,读取请求触发内存映射***将磁盘文件从磁盘复制至内存空间,程序从内存空间中读取磁盘文件。因为磁盘地址与内存空间中的虚拟地址建立了对应关系,所以,程序发起读磁盘文件的读取请求后,基于内存映射***的特性,内存映射***能够直接将磁盘文件从磁盘复制至内存空间,而无需多次调用读函数,并且,因为磁盘文件预先被转换为***语言对应的内存数据格式,所以,程序可以直接从内存空间中读取磁盘文件,而无需再进行格式转换。因此,简化了解码流程。
并且,因为程序对内存空间中的磁盘文件修改,修改后的文件会触发内存映射***将内存空间中的修改后的磁盘文件同步至磁盘,因为预先建立了对应关系,且基于内存映射***的特性,内存映射***能够直接将磁盘文件从内存空间复制至磁盘,而无需多次调用写函数。因此,简化了编码流程。
综上所述,本申请公开的数据处理方法,能够提高解码以及编码的效率,从而提高***的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明的实施例的一个示例性应用场景的框架示意图;
图2为本发明的实施例提供的一种数据处理方法流程示意图;
图3为本发明的实施例提供的内存映射方式的基本原理图;
图4为本发明的实施例提供的解码过程以及编码过程的示例图;
图5为本发明的实施例提供的一种数据处理装置的结构示意图;
图6为本发明的实施例提供的又一种数据处理装置的结构示意图。
具体实施方式
本申请提供的方法及装置,应用于图1所示的场景中:内存空间102中包括进程空间103,进程空间103用于运行各个程序,运行的程序通过多次调用读函数,将磁盘文件从磁盘空间101读取到内存空间102中,在将磁盘文件转换为***语言对应的内存数据格式(解码过程)后,可以对磁盘文件进行修改,再多次调用写函数将修改后的磁盘文件更新到磁盘空间101中。
本申请的目的在于计算机程序进行解码的过程中减少读函数的调用次数,在编码的过程中,减少写函数的调用次数,进一步的,还可以避免磁盘文件格式的转换,提高程序访问磁盘文件的效率,从而提升计算机***的性能。
图1所示的框架示意图仅是本发明的实时方式可以在其中得以实现的一个示例。本发明实施方式的适用范围不受该框架任何方面的限制。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本申请实施例提供的一种数据处理方法的流程,包括如下步骤:
S201:通过内存映射方式,建立各磁盘文件的地址与内存空间中的虚拟地址之间的对应关系。
内存映射方式是将磁盘中的一个文件或者其他对象映射到进程的地址空间,实现各磁盘文件的地址和内存的进程虚拟地址空间中的虚拟地址之间的一一对应关系。其中,进程虚拟地址空间为图1所示的进程空间的一部分。
因为现有的内存映射技术能够建立磁盘文件的地址和进程虚拟地址空间中的虚拟地址之间的一一对应关系,所以,本实施例中,可以通过调用mmap***(内存映射***的一个示例),实现内存映射,内存映射的结果为:建立各磁盘文件的地址与进程虚拟地址空间中的虚拟地址之间的对应关系。
例如,如图3所示,进程虚拟地址空间中的虚拟地址由多个虚拟内存区域构成,虚拟内存区域是进程虚拟地址空间中的虚拟地址的一个同质区间,即具有同样特性的连续地址范围。图3中所示的text数据段(代码段)、初始数据段、bss数据段、堆、栈和文件存储映射区域,都是一个独立的虚拟内存区域,为内存映射服务的地址空间处在堆、栈之间的空余部分。
因为mmap***创建新的虚拟内存区域以及建立文件磁盘地址和虚拟内存区域映射这两步,没有任何文件拷贝操作。而之后程序访问文件时发现内存中并无文件而发起的缺页异常过程,可以通过已经建立好的映射关系,只使用一次数据拷贝,就从磁盘中将文件传入内存的用户空间中,供进程使用。并且,mmap技术自动的回写脏页面(被修改后的文件)到对应的磁盘文件。可见,mmap技术使得程序对于磁盘文件的访问简化为:调用一次读函数即可将文件从磁盘读入内存中,在文件被修改后,调用一次写函数即可将更新后的文件写入磁盘的原地址中。
需要说明的是,磁盘文件为各个程序建立的磁盘文件,磁盘文件可能为空文件,即程序初始化过程中建立的磁盘文件,用于存储程序运行过程中需要存储到磁盘的数据;也可能为被程序写入数据的文件。
S202:将磁盘中存储的磁盘文件的数据格式转换为***语言对应的内存数据格式。
其中,内存数据格式为程序可以直接读和/或写的数据格式。因为每种语言都有对应的内存数据格式,例如:以Golang为例,Go提供了Unsafe包供开发者操作直接操作内存,Unsafe包中的数据格式可以被程序直接访问,Unsafe包兼容的数据格式如String、Integer、Struct,在内存中均为地址连续且长度可知的bytes。因此,本步骤中,将磁盘文件的数据格式转换为***语言对应的内存数据格式。其中,***是指磁盘文件所在的操作***。
将磁盘空间中存储的磁盘文件的数据格式转换为***语言对应的内存数据格式的目的在于,在解码过程中,无需再将读取到内存空间中的磁盘文件转换为程序可利用对象,从而实现简化解码流程的目的。
需要说明的是,本实施例中的步骤S201和步骤S202的执行顺序仅为示例,而非限定,可选的,S201可以在S202之后执行,S201和S202也可以并行执行。
在上述步骤的基础上,数据解码流程包括如下步骤:
S203:程序发起读磁盘文件的读取请求。
其中,读取请求作为内存映射***的触发条件,mmap***在监测到读取请求后,从磁盘空间中将磁盘文件拷贝到内存空间。
具体的,如前所述,mmap***依据程序的读操作访问虚拟映射区域的映射地址,通过查询页表,发现对应的映射地址并不在内存页面上,因为目前只建立了地址映射,真正的磁盘文件的数据还没有拷贝到内存空间中,因此引发缺页异常,对缺页异常进行一系列判断,确定无非法操作后,mmap***发起请求调页过程:调页过程先在交换缓存空间(swapcache)中寻找需要访问的内存页,如果没有则调用nopage函数把所缺的页从磁盘空间拷贝到内存空间中。
可见,建立磁盘文件的地址和虚拟内存区域映射无需任何磁盘文件的拷贝操作,而在进程对磁盘文件进行解码操作时,mmap***只使用一次数据拷贝,就可以从磁盘空间中将磁盘文件拷贝到内存空间中,供进程使用。
S204:程序从内存空间中读取磁盘文件。
由于预先已经将磁盘空间中存储的磁盘文件的数据格式转换为***语言对应的内存数据格式,因此,在解码过程中,无需再将读取到内存空间中的磁盘文件转换为程序可利用对象的格式,从而实现简化解码流程的目的。
从以上数据处理流程可以看出,通过内存映射方式能够减少磁盘文件的拷贝次数,提高了程序访问磁盘文件的效率,从而提升了计算机***的性能;进一步的,由于预先对磁盘文件进行了数据格式的转换,则在后续进行磁盘文件的读取时,无需再次将磁盘文件转换为程序可利用对象的格式,进一步提高了程序访问磁盘文件的效率,从而提升了计算机***的性能。
在解码后,程序还可以对磁盘文件进行编码操作,编码流程如下:
S205:程序对内存空间中的磁盘文件进行修改。
基于mmap技术原理:mmap***自动的回写脏页面(被修改后的文件)到对应的磁盘文件。对内存空间中的磁盘文件的修改完成后,修改后的文件作为触发条件,触发mmap***,mmap***将内存空间中修改后的磁盘文件同步至磁盘空间中。
具体的,当编码操作改变了内存空间中的磁盘文件的内容,一定时间后mmap***会自动将修改后的磁盘文件同步到磁盘空间对应的原地址中,即完成修改后的磁盘文件编码操作。也就是说,修改过的文件并不会立即更新到磁盘文件中,而是有一定时间的延时。延时的时长由mmap***自动确定,确定机制可参见现有技术。
或者,mmap***将修改过的文件立即同步到磁盘文件中。
具体的,mmap***可以通过调用msync()(可以看作写函数)来强调同步,则所修改后的数据内容就能立即保存到对应的磁盘文件中。
可见,通过内存映射方式能够同步内存空间与磁盘空间中已经建立映射关系的文件,因此,也能够减少写磁盘文件的拷贝次数,提高了程序访问磁盘文件的效率,从而提升了计算机***的性能。
综上所述,从图2所述的数据处理过程可以看出,解码过程只需调用一次读函数,且无需再对文件进行格式转换,编码只需调用一次写函数,所以能够提高程序访问磁盘文件的效率,从而提升了计算机***的性能。
需要说明的是,图2所示的编码步骤,不是必须依赖于图2所示的解码步骤,使用现有的解码方式获得文件后,也可以使用图2所示的编码步骤提高编码的性能。
图4为程序访问文件(包括编码和解码)的举例说明,以Golang语言为例,首先需要将磁盘空间中的所有磁盘文件的数据格式转换成Golang语言对应的内存数据格式,再通过内存映射方式将磁盘空间中的所有磁盘文件的地址与进程虚拟地址空间中的虚拟地址建立一一对应关系。如图4所示,例如,基于Golang语言的磁盘空间中存储的磁盘文件的内存数据格式为:Struct{name:“abcde”,value:100},其中,“Struct”为磁盘文件的名称,“name”和“abcde”为磁盘文件的一对“键”和“键值”,“value”和“100”为磁盘文件的另一对“键”和“键值”。通常,该Struct磁盘文件进行存储的时候只存储“键”的“键值”,对于“键”不进行存储,则“键值”为“abcde”和“100”的存储情况可以参见图4。
具体的,如图4所示,在程序进行解码操作时,程序发起读磁盘文件的读取请求,当mmap***在监控到读取请求后,从磁盘空间中将磁盘文件拷贝到内存空间,然后,程序从内存空间中读取磁盘文件即可,即程序访问磁盘文件进行解码操作时,直接调用一次读函数从内存空间中读取对应的磁盘文件。本实施例通过内存映射方式减少了磁盘文件的拷贝次数,提高了程序访问磁盘文件的读取效率,从而提升了计算机***的性能;进一步的,由于预先对磁盘文件进行了数据格式的转换,即将磁盘文件的数据格式转换成了Golang语言对应的内存数据格式,则在后续进行磁盘文件的读取时,无需再次将磁盘文件转换为程序可利用对象的格式,进一步提高了程序访问磁盘文件的效率,从而提升了计算机***的性能。
具体的,如图4所示,在程序进行编码操作时,程序对内存空间中的磁盘文件进行修改,修改完成后,mmap***将内存空间中修改后的磁盘文件同步至磁盘空间中,即程序访问磁盘文件进行编码操作时,直接调用一次写函数即可将内存空间中修改后的磁盘文件拷贝至磁盘空间。通过内存映射方式减少了磁盘文件的拷贝次数,提高了程序访问磁盘文件的效率,从而提升了计算机***的性能。
图5为本申请实施例公开的一种数据处理装置,包括请求发起模块和读取模块,可选的,还包括:内存映射***、映射模块、转换模块和存储模块。
其中,请求发起模块用于发起读磁盘文件的读取请求,所述读取请求触发内存映射***将所述磁盘文件从磁盘复制至内存空间;其中,所述磁盘文件的地址预先通过所述内存映射***,建立与所述内存空间中的虚拟地址之间的对应关系,所述磁盘文件预先被转换为***语言对应的内存数据格式。
读取模块,用于从所述内存空间中读取所述磁盘文件。
映射模块,用于在所述请求发起模块发起读磁盘文件的读取请求之前,通过所述内存映射***,建立磁盘中存储的各磁盘文件的地址与进程虚拟地址空间中的虚拟地址之间的对应关系。
转换模块,用于将所述磁盘中存储的所述各磁盘文件的数据格式转换为***语言对应的内存数据格式。
存储模块,用于在所述读取模块从所述内存空间中读取所述磁盘文件之后,对所述磁盘文件进行修改,修改后的磁盘文件触发所述内存映射***将修改后的磁盘文件从所述内存空间同步至所述磁盘。
图5所述的装置,能够实现调用一次读函数直接解码,有利于提高读性能。
图6为本申请实施例公开的又一种数据处理装置,包括修改模块和内存映射***。
其中,修改模块,用于对内存空间中的磁盘文件进行修改;其中,所述磁盘文件在磁盘中的地址预先通过内存映射***,建立与所述内存中的虚拟地址之间的对应关系;
内存映射***,用于在对所述内存空间中的所述磁盘文件修改完成后,基于修改后的文件的触发,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
具体的,内存映射***将所述内存空间中的修改后的磁盘文件同步至所述磁盘的具体实现方式为:通过调用一次写函数,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
图6所述的装置,能够实现调用一次写函数实现编码,有利于提高写性能。
需要说明的是,图5和图6所示的装置,可以独立设置,也可以集成为一个装置,共用内存映射***。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
程序发起读磁盘文件的读取请求,所述读取请求触发内存映射***将所述磁盘文件从磁盘复制至内存空间;其中,所述磁盘文件的地址预先通过所述内存映射***,建立与所述内存空间中的虚拟地址之间的对应关系,所述磁盘文件预先被转换为***语言对应的内存数据格式;
所述程序从所述内存空间中读取所述磁盘文件。
2.根据权利要求1所述的方法,其特征在于,所述内存映射***将所述磁盘文件从磁盘复制至内存空间,包括:
所述内存映射***通过调用一次读函数,将所述磁盘文件从磁盘复制至内存空间。
3.根据权利要求1所述的方法,其特征在于,在所述程序发起读磁盘文件的读取请求之前,还包括:
通过所述内存映射***,建立磁盘中存储的各磁盘文件的地址与所述内存空间中的虚拟地址之间的对应关系;
将所述磁盘中存储的所述各磁盘文件的数据格式转换为***语言对应的内存数据格式。
4.根据权利要求1所述的方法,其特征在于,在所述程序从所述内存空间中读取所述磁盘文件之后,还包括:
所述程序对所述磁盘文件进行修改,修改后的磁盘文件触发所述内存映射***将修改后的磁盘文件从所述内存空间同步至所述磁盘。
5.一种数据处理方法,其特征在于,包括:
程序对内存空间中的磁盘文件进行修改;其中,所述磁盘文件在磁盘中的地址预先通过内存映射***,建立与所述内存中的虚拟地址之间的对应关系;
在所述程序对所述内存空间中的所述磁盘文件修改完成后,修改后的文件触发所述内存映射***将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
6.根据权利要求5所述的方法,其特征在于,所述内存映射***将所述内存空间中的修改后的磁盘文件同步至所述磁盘,包括:
所述内存映射***通过调用一次写函数,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
7.一种数据处理装置,其特征在于,包括:
请求发起模块,用于发起读磁盘文件的读取请求,所述读取请求触发内存映射***将所述磁盘文件从磁盘复制至内存空间;其中,所述磁盘文件的地址预先通过所述内存映射***,建立与所述内存空间中的虚拟地址之间的对应关系,所述磁盘文件预先被转换为***语言对应的内存数据格式;
读取模块,用于从所述内存空间中读取所述磁盘文件。
8.根据权利要求7所述的装置,其特征在于,还包括:
所述内存映射***;
所述内存映射***将所述磁盘文件从磁盘复制至内存空间,包括:
所述内存映射***具体用于,通过调用一次读函数,将所述磁盘文件从磁盘复制至内存空间。
9.根据权利要求7所述的装置,其特征在于,还包括:
映射模块,用于在所述请求发起模块发起读磁盘文件的读取请求之前,通过所述内存映射***,建立磁盘中存储的各磁盘文件的地址与进程虚拟地址空间中的虚拟地址之间的对应关系;
转换模块,用于将所述磁盘中存储的所述各磁盘文件的数据格式转换为***语言对应的内存数据格式。
10.根据权利要求7所述的装置,其特征在于,还包括:
存储模块,用于在所述读取模块从所述内存空间中读取所述磁盘文件之后,对所述磁盘文件进行修改,修改后的磁盘文件触发所述内存映射***将修改后的磁盘文件从所述内存空间同步至所述磁盘。
11.一种数据处理装置,其特征在于,包括:
修改模块,用于对内存空间中的磁盘文件进行修改;其中,所述磁盘文件在磁盘中的地址预先通过内存映射***,建立与所述内存中的虚拟地址之间的对应关系;
内存映射***,用于在对所述内存空间中的所述磁盘文件修改完成后,基于修改后的文件的触发,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
12.根据权利要求11所述的装置,其特征在于,所述内存映射***用于将所述内存空间中的修改后的磁盘文件同步至所述磁盘包括:
所述内存映射***具体用于,通过调用一次写函数,将所述内存空间中的修改后的磁盘文件同步至所述磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910549682.4A CN110262757A (zh) | 2019-06-24 | 2019-06-24 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910549682.4A CN110262757A (zh) | 2019-06-24 | 2019-06-24 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110262757A true CN110262757A (zh) | 2019-09-20 |
Family
ID=67920840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910549682.4A Pending CN110262757A (zh) | 2019-06-24 | 2019-06-24 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262757A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000589A (zh) * | 2020-07-13 | 2020-11-27 | 北京奇艺世纪科技有限公司 | 一种数据写入方法、数据读取方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020166038A1 (en) * | 2001-02-20 | 2002-11-07 | Macleod John R. | Caching for I/O virtual address translation and validation using device drivers |
CN101539842A (zh) * | 2009-04-27 | 2009-09-23 | 杭州华三通信技术有限公司 | 磁盘阵列***的数据写入方法及磁盘阵列*** |
CN101853184A (zh) * | 2010-05-21 | 2010-10-06 | 中兴通讯股份有限公司 | 应用程序的管理方法和装置、以及终端 |
CN107992569A (zh) * | 2017-11-29 | 2018-05-04 | 北京小度信息科技有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
-
2019
- 2019-06-24 CN CN201910549682.4A patent/CN110262757A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020166038A1 (en) * | 2001-02-20 | 2002-11-07 | Macleod John R. | Caching for I/O virtual address translation and validation using device drivers |
CN101539842A (zh) * | 2009-04-27 | 2009-09-23 | 杭州华三通信技术有限公司 | 磁盘阵列***的数据写入方法及磁盘阵列*** |
CN101853184A (zh) * | 2010-05-21 | 2010-10-06 | 中兴通讯股份有限公司 | 应用程序的管理方法和装置、以及终端 |
CN107992569A (zh) * | 2017-11-29 | 2018-05-04 | 北京小度信息科技有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000589A (zh) * | 2020-07-13 | 2020-11-27 | 北京奇艺世纪科技有限公司 | 一种数据写入方法、数据读取方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI549060B (zh) | Access methods and devices for virtual machine data | |
JP4809040B2 (ja) | ストレージ装置及びスナップショットのリストア方法 | |
EP2863310B1 (en) | Data processing method and apparatus, and shared storage device | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
US11836112B2 (en) | Path resolver for client access to distributed file systems | |
CN106682110B (zh) | 一种基于哈希格网索引的影像文件存储和管理***及方法 | |
CN110109873B (zh) | 一种用于消息队列的文件管理方法 | |
CN109710185B (zh) | 数据处理方法及装置 | |
US11354050B2 (en) | Data processing method, apparatus, and computing device | |
WO2009092254A1 (zh) | 一种高速缓存数据恢复的方法、装置和*** | |
CN113138945B (zh) | 一种数据缓存方法、装置、设备及介质 | |
CN109558456A (zh) | 一种文件迁移方法、装置、设备及可读存储介质 | |
JP2009003934A (ja) | データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN110442307A (zh) | 一种Linux***中磁盘的绑定方法、设备以及存储介质 | |
CN110413376A (zh) | 一种虚拟机管理usb设备的方法、设备以及存储介质 | |
CN112799595A (zh) | 数据处理方法、设备及存储介质 | |
CN113806300A (zh) | 数据存储方法、***、装置、设备及存储介质 | |
CN110262757A (zh) | 一种数据处理方法及装置 | |
KR100809293B1 (ko) | 가상 머신에서 스택을 관리하는 장치 및 그 방법 | |
CN111061652B (zh) | 一种基于mpi-io中间件的非易失内存管理方法与*** | |
WO2024022330A1 (zh) | 一种基于文件***的元数据管理方法及其相关设备 | |
CN105677579A (zh) | 缓存***中的数据访问方法和*** | |
CN107422990B (zh) | 一种动态迁移方法及装置 | |
CN112748854B (zh) | 对快速存储设备的优化访问 | |
JPH08202595A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190920 |