CN108628753A - Memory headroom management method and device - Google Patents

Memory headroom management method and device Download PDF

Info

Publication number
CN108628753A
CN108628753A CN201710184680.0A CN201710184680A CN108628753A CN 108628753 A CN108628753 A CN 108628753A CN 201710184680 A CN201710184680 A CN 201710184680A CN 108628753 A CN108628753 A CN 108628753A
Authority
CN
China
Prior art keywords
node
file
memory
directory entry
bitmap
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.)
Granted
Application number
CN201710184680.0A
Other languages
Chinese (zh)
Other versions
CN108628753B (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.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
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 Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201710184680.0A priority Critical patent/CN108628753B/en
Publication of CN108628753A publication Critical patent/CN108628753A/en
Application granted granted Critical
Publication of CN108628753B publication Critical patent/CN108628753B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Abstract

This application provides a kind of memory headroom management methods and device, this method to include:The file access request of first thread is received, this document access request includes the data of first object file to be stored;Obtain the first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread, wherein, the first bitmap Kd-Trees includes N/S leaf node, wherein, the N is used to indicate the storage number of blocks that first memory space includes, which is used to indicate the number of the memory block in first memory space of each leaf node management;The first leaf node is determined in the first bitmap Kd-Trees;At least one free memory blocks are selected from S memory block of the first leaf node management;It will be in the data storage at least one free memory blocks of the first object file.The memory headroom management method and device of the embodiment of the present application, can be randomly assigned free memory blocks, to realize the abrasion equilibrium of memory, extend the service life of memory.

Description

Memory headroom management method and device
Technical field
This application involves computer realms, and more particularly, to a kind of memory headroom management method and device.
Background technology
Nonvolatile memory (Non-Volatile Memory, NVM) is a kind of novel memory, it has very much Advantage can such as be addressed according to byte, and data are not lost after power down, and storage density is high, and without frequently refreshing, and low energy consumption, Therefore, it is well suited as memory (or main memory).But NVM is there is also some shortcomings, it is such as relatively long write delay, It is limited etc. to write number.NVM can with existing dynamic random access memory (Dynamic Random Access Memory, DRAM mixing memory) is collectively formed, the ephemeral data that application program generates is storable in DRAM, and application program generates lasting Property data are storable in NVM.
It is traditional based on the file system of disk on NVM using the advantage that can not excavate out NVM well because it For data I/O request have to that by very deep software stack whole flow process could be completed.It is existing in order to solve this problem It such as can the lasting memory text of byte-accessed for the persistent file system for rebuilding byte granularity based on NVM there are some Part system (Byte addressable Persisten File System, BPFS), storage class file memory file system (Storage Class Memory File System, SCMFS), persistence memory file system (Persistent Memory File System, PMFS) and hierarchical file system (Hierarchical File System, HiNFS) etc..But these are literary The problem of aging of part system is seldom taken into account, for example, PMFS, after prolonged operation, with the establishment of file It can be reduced with the running time increases with the efficiency of the accumulation of delete operation, system operation, it is, therefore, desirable to provide a kind of side Method effectively manages memory headroom.
Invention content
A kind of memory headroom management method of the application offer and device, can be randomly assigned free memory blocks, realize storage The abrasion equilibrium of device extends the service life of memory.
In a first aspect, providing a kind of memory headroom management method, the method is applied to have file system in memory Storage device, wherein it is described in save as nonvolatile memory NVM, which is characterized in that including:
The file access request of first thread is received, the file access request includes first object file to be stored Data;
Obtain the first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread, wherein in described It includes multiple memory spaces to deposit, and each memory space is respectively adopted different bitmap Kd-Trees and is managed, described first Figure Kd-Trees includes N/S leaf node, wherein N is used to indicate the storage number of blocks that first memory space includes, S It is used to indicate the number of the memory block in first memory space of each leaf node management, N is not less than 1 not less than 2, S, N is not less than S;
The first leaf node is determined in the first bitmap Kd-Trees, wherein being recorded in first leaf node has The information of free memory blocks, first leaf node are from the root node of the first bitmap Kd-Trees to the side of leaf node To stochastic searching Logm(N/S) secondary rear lookup obtains, wherein m is used to indicate any one in the first bitmap Kd-Trees The value of the number of the next stage child node of a node, m is not less than 2;
At least one free memory blocks are selected from S memory block of the first leaf node management, wherein described Record has the use state information of the S memory block in one leaf node;
It will be in the data storage at least one free memory blocks of the first object file.
The memory headroom management method of the embodiment of the present application, receives the file access request of first thread, by obtain with The corresponding first bitmap Kd-Trees of the first memory space belonging to the first thread determines first in the first bitmap Kd-Trees Leaf node records the information of available free memory block in first leaf node, and first leaf node is from described Direction stochastic searching Log of the root node of one bitmap Kd-Trees to leaf nodem(N/S) secondary rear searching acquisition, then from institute It states in S memory block of the first leaf node management and selects at least one free memory blocks, by the number of the first object file According in storage at least one free memory blocks, free memory blocks can be randomly assigned, to realize the abrasion of memory Equilibrium extends the service life of memory.Also, in applying for embodiment, if desired recycling stores data in the block, can make The corresponding bitmap of relevant block is quickly positioned with bitmap Kd-Trees, and changes elastic bitmap Kd-Trees, improves search efficiency, is searched Better performances.
Optionally, can also include file identification in the file access request.File identification is that process opens the text It is the file handle of the file destination distribution when part access request file destination to be accessed.In other words, the file identification It is used to indicate the file destination to be accessed.Process can find the description information of the file destination according to the file identification. Specifically, the file identification may include file type (catalogue file or the number of the store path of file destination, file destination According to file) etc..
In the embodiment of the present application, the first thread operates in first memory space.First memory space It is corresponding with the first bitmap Kd-Trees.
Optionally, the use state information of each memory block can be indicated using bitmap bitmap in S memory block.Than Such as, 0 or 1 can be used to indicate whether memory block is idle.If specifically for example, by bit position 0, then it represents that memory block is idle, if By bit position 1, then it represents that memory block is occupied or is unsatisfactory for condition;If alternatively, bit position 1 is indicated that memory block is empty Spare time, if by bit position 0, then it represents that memory block is occupied.
In some possible realization methods, the method further includes:
The establishment file request of the first thread is obtained, the establishment file request includes the first object file Routing information includes the first directory entry to be created, first directory entry in the routing information of the first object file For the directory entry belonging to the first object file;
The directory entry of parent directory where obtaining the first object file according to the routing information;
It is empty from the first of the directory entry of the parent directory according to the required byte number of the first directory entry to be created Between first node is determined in chained list, include P node in the space chained list, each node in the P node is used for It indicates one in the corresponding first memory block of the directory entry of the parent directory idle section, includes the in the first node The address information in one section, wherein P is the integer not less than 1;
First directory entry is stored in the first interval that the first node is directed toward.
In the embodiment of the present application, include P node in the space chained list, each node in the P node It may be used to indicate an idle section in the corresponding first memory block of directory entry of the parent directory, wherein P is no less than 1 Integer.That is, in the corresponding first memory block of directory entry of parent directory where first object file, if there is sky Not busy section (such as first interval) then can be used for storing the directory entry of first object file.
Optionally, include the address information of the first interval in the first node.For example, described address packet Initial address and end address are included, alternatively, described address information includes initial address and offset (or length).In this way, memory Space management device can determine specific location of the first interval in the chained list of space according to described address information, to It will be in first directory entry storage to the first interval.
In some possible realization methods, the method further includes:
The second establishment file request from the first thread is obtained, the second establishment file request includes the second mesh The second routing information for marking file includes the second directory entry to be created, second catalogue in second routing information Item is the directory entry belonging to second file destination;
The directory entry of parent directory where obtaining second file destination according to second routing information;
It is not assignable in multiple memory blocks corresponding to the directory entry of parent directory where second file destination When idle section, the corresponding first bitmap Kd-Trees of first memory space belonging to the first thread is obtained;
According to determining second leaf node in the first bitmap Kd-Trees, wherein recorded in second leaf node There is the information of assignable free memory blocks, second leaf node is from the root node of the first bitmap Kd-Trees to leaf The direction stochastic searching Log of child nodem(N/S) secondary rear lookup obtains;
At least one free time is selected to deposit from first memory space according to the bitmap of the second leaf node management Store up block;
Second directory entry to be created is stored at least one free memory blocks.
Here, since the request of the second establishment file and the request of the first establishment file are to belong to same thread (the i.e. First Line Journey) establishment file request, then for the second establishment file ask determine free memory blocks when, still in the first thread It is searched in the corresponding first bitmap Kd-Trees of the first affiliated memory space, that is, searches its of the first bitmap Kd-Trees His leaf node, such as the second leaf node.
In the embodiment of the present application, further, if desired increase directory entry for the file destination in a certain thread, if There is no assignable free block in memory block corresponding to the directory entry of parent directory where file destination, then it can be in the thread institute In the corresponding bitmap Kd-Trees of memory space of category, other leaf nodes are searched, to obtain free memory blocks, wait increasing to store The directory entry added.
In some possible realization methods, the method further includes:
File deletion requests are received, include the path letter of the second file destination to be deleted in the file deletion requests Breath;
The catalogue of the parent directory belonging to second file destination is determined according to the routing information of second file destination ;
The directory entry of parent directory belonging to second file destination searches belonging to second file destination The address information of second interval belonging to the directory entry of the mark of two memory blocks and second file destination;
Calculate the cryptographic Hash of the mark of second memory block;
The second space chained list of the directory entry of the parent directory belonging to second file destination is searched according to the cryptographic Hash, The second space chained list is used to record corresponding second memory block of directory entry of the parent directory belonging to second file destination In available idle section;
It is inserted into second node in the second space chained list, wherein record has secondth area in the second node Between address information.
It should be noted that " being inserted into second node in the second space chained list " indicate that the second node is can , alternatively, second node has been recovered, alternatively, it can be appreciated that deleting the directory entry stored in second node .Second space chained list indicates available section for recording.
Further, when recycling the second interval (for example, the item that deltrees in second file destination When file1.txt), it is also necessary to recycle the inode of second file destination and the memory block of second file destination occupancy (it can be appreciated that deleting memory block).
In some possible realization methods, the first leaf node is determined in the first bitmap Kd-Trees, including:
To the direction stochastic searching of leaf node to i-th of middle node since the root node of the first bitmap Kd-Trees Point, wherein i-th of intermediate node is obtained since the root node after stochastic searching i times, the i not less than 1 and No more than Logm(N/S), Logm(N/S) it is the natural number more than 1, i-th of intermediate node record has among described i-th The number of available free memory blocks in the subtree of node;
When the number of available free memory blocks in the subtree of i-th of intermediate node is unsatisfactory for distributive condition, from J-th of intermediate node is selected in the brotgher of node of i-th of intermediate node, wherein in the subtree of j-th of intermediate node Include the free memory blocks for meeting distributive condition;
The first leaf node is determined in the subtree of j-th of intermediate node.
Here, the brotgher of node of i-th of intermediate node can be understood as the middle node in same level-one with i-th of intermediate node Point.
That is, if the number of available free memory blocks is unsatisfactory for distributive condition in the subtree of a certain intermediate node When, can be selected from the brotgher of node of the intermediate node one include the free memory blocks for meeting distributive condition middle node Point, to store the directory entry of file destination.
In some possible realization methods, according to the bitmap of the first leaf node management from first space At least one free memory blocks are selected, including:
At least one free memory blocks are randomly choosed according in S memory block of the first leaf node management.
Second aspect provides a kind of memory headroom managing device, for executing above-mentioned first aspect or first aspect Method in arbitrary possible realization method.Specifically, which includes for executing above-mentioned first aspect or first aspect The module or unit of method in arbitrary possible realization method.
Third method provides a kind of memory headroom managing device.The device includes that processor, memory and communication connect Mouthful.Processor is connect with memory and communication interface.For storing instruction, processor communicates memory for executing the instruction Interface with other network elements for being communicated under the control of a processor.When the processor executes the instruction of memory storage, The execution makes the processor execute the method in the arbitrary possible realization method of first aspect or first aspect.
Fourth aspect provides a kind of computer readable storage medium, which has program, It is above-mentioned in a first aspect, and its any one of various realization methods memory headroom that the program so that memory headroom managing device executes Management method.
Description of the drawings
Fig. 1 is for a kind of a kind of application scenario diagram of next-generation nonvolatile storage provided by the embodiments of the present application.
Fig. 2 is the schematic layout figure of data structure in the file system according to the embodiment of the present application.
Fig. 3 is the schematic flow chart according to the memory headroom management method of the embodiment of the present application.
Fig. 4 is the schematic flow chart according to the memory headroom management method of another embodiment of the application.
Fig. 5 is the schematic flow chart according to the memory headroom management method of the application another embodiment.
Fig. 6 is the schematic diagram according to the example of a space chained list of the embodiment of the present application.
Fig. 7 is the schematic diagram according to an example of the bitmap Kd-Trees of the embodiment of the present application.
Fig. 8 is the schematic block diagram according to the memory headroom managing device of the embodiment of the present application.
Fig. 9 is the schematic block diagram according to the memory headroom managing device of another embodiment of the application.
Specific implementation mode
Below in conjunction with attached drawing, the technical solution in the application is described.
The technical solution of the embodiment of the present application can be applied to based on nonvolatile memory (Non-Volatile Memory, NVM) in the computer system of memory.Wherein, operation has file system in NVM, for example, can the lasting memory file system of byte-accessed It unites (Byte addressable Persisten File System, BPFS), storage class file memory file system (Storage Class Memory File System, SCMFS), persistence memory file system (Persistent Memory File System, PMFS) and hierarchical file system (Hierarchical File System, HiNFS).NVM is for storing text The data and metadata of part system.Optionally, NVM can be with dynamic random access memory (Dynamic Random Access Memory, DRAM) mixing memory is collectively formed, the ephemeral data that application program generates is storable in DRAM, application program production Raw persistent data is storable in NVM.
Fig. 1 is a kind of a kind of application scenario diagram of next-generation nonvolatile storage (NVM) provided by the embodiments of the present application. In a kind of application scenarios shown in FIG. 1, NVM 102 is used as memory.As shown in Figure 1, dynamic RAM DRAM 103 It is connected by rambus and central processing unit (Central Processing Unit, CPU) 101.In central processing unit (CPU) 101 operating system and other software program are installed, to which central processing unit (CPU) 101 can be realized to DRAM 103, the access of disk 104 and NVM 102.It is understood that in the embodiment of the present application, central processing unit (CPU) 101 An only example of processor.Other than central processing unit (CPU) 101, processor can also be other specific integrated electricity Road (Application Specific Integrated Circuit, ASIC), or be arranged to implement the application implementation One or more integrated circuits of example.
DRAM 103 has the advantages that access speed is fast, CPU 101 can high speed access DRAM 103, in DRAM 103 Any storage unit carry out read or write, therefore usually DRAM 103 is used as main memory.Usual DRAM 103 is used for The various softwares being currently running, the information etc. for outputting and inputting data and being exchanged with external memory in deposit operation system.However, DRAM 103 is volatibility, and after computer closes power supply, the information in DRAM 103 will be preserved no longer.
Disk 104 can be used as external memory, for storing data.It is, of course, understood that the memory as external memory removes Can be can also be the nonvolatile memories such as solid state disk (SSD) outside disk 104.Storage usually as external memory is situated between Matter need to have the characteristics that it is non-volatile, when computer close power supply after, being stored in the data of external memory still can be saved.And And the memory capacity of external memory is larger.
Novel nonvolatile memory (NVM) 102 can directly hang on rambus as with DRAM 103.Center Processor (CPU) 101 can access NVM 102 by memory management unit (Memory Management Unit, MMU), to Data are quickly stored in NVM 102 or read data from NVM 102.It is understood that in directly hanging over as NVM 102 It deposits in bus in use, the stand-by period (latency) of data access as DRAM 103, can be reduced.Also, with DRAM 103 compare, due to NVM 102 have it is non-volatile, so as to preferably preserve data.
It should be noted that the nonvolatile memory that can be hung on rambus described in the embodiment of the present application May include:Phase transition storage (Phase Change Memory, PCM), resistance-variable storing device (Resistive Random Access Memory, RRAM), magnetic storage (Magnetic Random Access Memory, MRAM) or ferroelectric deposit The novel nonvolatile memories such as reservoir (Ferroelectric Random Access Memory, FRAM).These novel NVM All have the characteristics that access speed is fast and it is non-volatile to have, also, these novel NVM can be addressed by byte (Byte), it will Data are that unit is written in nonvolatile memory with position (bit).
It is understood that the storage that application scenarios shown in FIG. 1 can be applied to establish file system based on memory is set In standby.In embodiments of the present invention, storage device may include that computer, server, storage array etc. establish text in memory The equipment of part system.The application scenarios of the embodiment of the present invention are not defined herein.It should be noted that implementing in the present invention In example, unless otherwise instructed, described memory is NVM.
In the embodiment of the present application, file system and file are stored in NVM 102.Those skilled in the art can know Road, file system are the software configurations being responsible in operating system with storage file information.From the point of view of system perspective, file system System is to carry out tissue and distribution to the space of file-storage device, is responsible for file and stores and the file of deposit is protected and examined The system of rope.The central concept of file system is superblock (Super Block, SB), i-node (inode), data block (data Block), directory block (directory block) and indirect block (indirection block).Superblock includes file system Overall information, such as file system size.Inode includes all information of a file other than filename. For filename there are in directory block together with inode numbers, catalogue entry includes the inode numbers of filename and file.In i-node The only space of low volume data block, if necessary to which more, the pointer space for being directed toward data block can be dynamically distributed, these dynamic allocation Block be indirect block.It in the embodiment of the present application, can be with the data and metadata of storage file in NVM 102.
Wherein, the specific descriptions of file system are referring to following content:
File system defines the access strategy of file for storing, organizing organization data.Data in file system are divided into member Data and data, wherein data refer to the real data in ordinary file, and metadata refers to the feature for describing a file System data.Metadata may include such as access rights, the distributed intelligence of file owner and file data blocks (inode) etc..User needs to operate a file, and necessity obtains its metadata, can just navigate to the position of file first And obtain the interior perhaps association attributes of file.Metadata is exactly the data of data, in each file pair of field of filesystems Answer a metadata structure body.This structure includes the attribute of file, for example, document creation, modification and the time of access, text Part owner, permission, map information etc..
File system is made of three parts:The interface of file system, the software assembly to file manipulation and management, number of files According to and attribute.When process reads file or written document, operating system first can open the process target to be accessed text according to filename Then part carries out read operation or write operation further according to the read request of reception or write request to open file destination.Wherein, file Name can be the comspec of file, be the logical description of location information of the file destination in disk.Such as file destination Filename can be:D:\FILE\file1.During opening file by the comspec of file, need according to file Complete trails successively search, ceaselessly read disk, and corresponding data structure is created to indicate the catalogue of file destination in memory Structure.After opening file, according to read request or write request access target file during, if according further to file destination Comspec carries out read operation or write operation to file, can be related to frequently reading disk or write magnetic disk, and process is more complicated, when processing Between also can be long.
Therefore, in practical application, during operating system opens file destination, operating system can be that the process accesses File destination distribute file handle (also referred to as filec descriptor), and in one file sentence of process internal maintenance Handle array.Wherein, file handle can be indicated by number, for example, file handle can be:Fd 0, fd1 or fd 2.Text The pointer for being directed toward file description information is stored in part handle array.Include to be directed toward file directory knot in file description information Structure, metadata (metadata) and the pointer for accessing the information such as position.Document directory structure is used to describe the logical bit of file It sets, document directory structure is stored in memory, and process can position the position of file destination by document directory structure.Metadata It is the data for describing file data, specifically, including the tissue, data field and its relationship of file data in metadata Information.Access the initial position that position is used to indicate process current accessed.It can be a position in logic to access position.It is logical Often, it can be 0 to access location information, accessed since the initial address of file for representing.During opening file It is the other positions in addition to 0 that setting file access position can be called by system.In file (read/write file) process of access In, process can also call setting file access position according to file handle by system.Those skilled in the art know, in random write In the case of writing, it can be any one access position that setting is called by system to access position, the case where sequence is read and write Under, the position that accesses of current accessed is the last end position accessed.Read operation or write operation are being carried out to file destination During, process can find target text according to the file handle of the file destination in the file handle array that process is safeguarded Part description information.The metadata of file is found in file description information and accesses the information such as position, to realize to target The read operation of file or write operation.Know during read/write file destination it is understood that file handle is current process A kind of file identification of other file destination.In the embodiment of the present application, file identification can also be its in addition to file handle His filec descriptor, does not limit, identifies file destination as long as process can be made to pass through file identification and find target herein The description information of file.
For the ease of understanding technical solution provided by the embodiments of the present application, lower the embodiment of the present application is described with reference to Fig. 2. Fig. 2 shows the schematic layout figures of data structure in the file system of the embodiment of the present application.As shown in Fig. 2, the application is implemented Example deposits each of multiple memory spaces (such as memory space shown in Fig. 20 to memory space N) of memory (such as NVM) Storage space is individually managed using an elastic bitmap Kd-Trees (Flexible Bitmap Segment Tree, FBST). The corresponding physical address spaces of NVM may include:Superblock (Super Block, SB), the regions Log and data area (Data Area).Wherein, SB can preserve more parts;The regions Log are for writing daily record.In the spaces Data Area, a certain free space can For storage catalogue item, for example useIndicate the memory space of storage catalogue item.Further, it will be used in the embodiment of the present application The memory space of hash index table and space chained list to storage catalogue itemIt is managed.In fig. 2, it usesIndicate storage catalogue The section of item data is usedIndicate free space, a certain idle section in the memory space for needing to recycle directory entryWhen, Hash index table may be used to be searched.It should be understood that the structure chart in Fig. 2 simply facilitates those skilled in the art's understanding, it is not right The embodiment of the present application, which is constituted, to be limited.
Memory headroom management method in the embodiment of the present application can be by the processor (Processor) in computer system It executes, it further includes interior that operation, which has operating system (Operating System, OS), the computer system, in the processor It deposits, being established in the memory has file system.For ease of description, it is hereafter illustrated so that processor is CPU as an example.
Fig. 3 shows the schematic flow chart of the memory headroom management method 300 according to the embodiment of the present application.The method 300 can be executed by CPU.The method 300 is applied to have the storage device of file system in memory, wherein the memory For nonvolatile memory NVM, the method 300 includes:
S310, receives the file access request of first thread, and the file access request includes first object to be stored The data of file;
Optionally, the file access request may include write request, and the write request is described to be stored for being written The data of first object file.It should be understood that optionally, the file access request can also ask in access including file read request etc. It asks.
Optionally, can also include file identification in the file access request.File identification is that process opens the text It is the file handle of the file destination distribution when part access request file destination to be accessed.In other words, the file identification It is used to indicate the file destination to be accessed.Process can find the description information of the file destination according to the file identification. Specifically, the file identification may include file type (catalogue file or the number of the store path of file destination, file destination According to file) etc..Wherein, a process may include multiple threads, and per thread is an execution entity in process, each line Journey has unique identifier.
S320 obtains the first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread, wherein institute It includes multiple memory spaces to state memory, and each memory space is respectively adopted different bitmap Kd-Trees and is managed, and described One bitmap Kd-Trees includes N/S leaf node, wherein N is used to indicate the storage block number that first memory space includes Amount, S are used to indicate the number of the memory block in first memory space of each leaf node management, and N is not small not less than 2, S It is not less than S in 1, N;
Due to including file identification in file access request, CPU can determine file access request according to file identification Affiliated thread.And per thread has that unique identifier is corresponding with memory space, CPU can be known according to the identifier of thread The corresponding memory space of thread then obtains the corresponding bitmap Kd-Trees of memory space.In other words, CPU is being obtained from a certain After the file access request of thread, it is also known that the memory space that thread is run.
In the embodiment of the present application, the first thread operates in first memory space.First memory space It is corresponding with the first bitmap Kd-Trees.Wherein, first memory space includes N (N is not less than 2) a memory block (Block), the first bitmap Kd-Trees includes N/S leaf node, and each leaf node manages S memory block.Specifically, Each leaf node can pass through each memory block in S (S is not less than 1) a memory block of bitmap (bitmap) to indicate its management Use state information.For example, each memory block is indicated on bitmap using a bit position (bit) in S memory block, then The digit of the bitmap of the leaf node management is S.
It should be noted that the intermediate node on the tree of the first bitmap Kd-Trees, which includes at least, the intermediate node Subtree instruction free memory blocks quantity information, in order to subsequently search free memory blocks.In general, the middle node Location information of the point not comprising free memory blocks.
Optionally, the first bitmap Kd-Trees can be the elastic bitmap Kd-Trees FBST in Fig. 2 or following FIG. 7.Bullet Property bitmap Kd-Trees can be by adjusting the bitmap digit that leaf node includes, i.e. the value size of S, with realize tree height become Change.And the height change of elastic bitmap Kd-Trees, can influence the time of memory block distribution and/or memory block recycling in memory opens Pin.Wherein, the height change of elastic bitmap Kd-Trees can flexibly be configured according to the storage size of memory.
If it should be understood that there are multiple threads in memory, per thread operates in an independent memory space, each to store Space can be managed using a bitmap line segment tree construction.
S330 determines the first leaf node, wherein remember in first leaf node in the first bitmap Kd-Trees Record the information of available free memory block, first leaf node is from the root node of the first bitmap Kd-Trees to leaf node Direction stochastic searching Logm(N/S) secondary rear lookup obtains, wherein m is used to indicate appointing in the first bitmap Kd-Trees The value of the number of the next stage child node of one node of meaning, m is not less than 2;
Here, the first leaf node is to walk Log at random to the direction of leaf node from the root node of the first bitmap Kd-Treesm (N/S) acquisition is searched after step, i.e., is searched using Random Walk Algorithm.Wherein, m is used to indicate the first bitmap line segment The number of the next stage node of any one node of tree.For example, when m values are 2, the first bitmap Kd-Trees is one The number of binary tree, the next stage node of any one node of the first bitmap Kd-Trees is 2.
It should be noted that described " walk Log at random from the root node of the first bitmap Kd-Trees to the direction of leaf nodem (N/S) step " searches the first leaf node, necessarily refers to since root node, the lookup step by step to the child node of next stage, without It is the lookup of same first nodes.
Optionally, first leaf node can be deposited by bitmap to record the S storage free time in the block of its management Store up the information of block.
S340 selects at least one free memory blocks from S memory block of the first leaf node management, wherein Record has the use state information of the S memory block in first leaf node;
Optionally, the use state information of each memory block can be indicated using bitmap bitmap in S memory block.Than Such as, 0 or 1 can be used to indicate whether memory block is idle.If specifically for example, by bit position 0, then it represents that memory block is idle, if By bit position 1, then it represents that memory block is occupied or is unsatisfactory for condition;If alternatively, bit position 1 is indicated that memory block is empty Spare time, if by bit position 0, then it represents that memory block is occupied.
Optionally, S340 may include:
At least one free memory blocks are randomly choosed according in S memory block of the first leaf node management.
Specifically, whether the use state that the first leaf node records S memory block using bitmap mode is (i.e. empty It is not busy) information.CPU in S memory block, can randomly choose at least one sky according to the use state information of each memory block Not busy memory block.
S350, will be in the data storage at least one free memory blocks of the first object file.
Optionally, when storing the data of the first object file at least one free memory blocks, CPU can To record its information the corresponding index node of first object file (inode) is inner.
The memory headroom management method of the embodiment of the present application, CPU are obtained by receiving the file access request of first thread The first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread is taken, is determined in the first bitmap Kd-Trees First leaf node records the information of available free memory block in first leaf node, and first leaf node is from institute The root node of the first bitmap Kd-Trees is stated to the direction stochastic searching Log of leaf nodem(N/S) secondary rear searching acquisition, then At least one free memory blocks are selected from S memory block of the first leaf node management, by the first object file Data storage at least one free memory blocks, free memory blocks can be randomly assigned, to realize memory Abrasion equilibrium extends the service life of memory.Also, in applying for embodiment, if desired recycling stores data in the block, can To use bitmap Kd-Trees quickly to position the corresponding bitmap of relevant block, and elastic bitmap Kd-Trees is changed, improves search efficiency, Search performance is preferable.
The memory headroom management method of the embodiment of the present application can be executed by CPU, wherein operation has operating system in CPU. CPU is during accessing file system, the storage using the memory headroom management method of the embodiment of the present application to memory (NVM) Space is allocated, and to realize the abrasion equilibrium of NVM, improves the performance of file system.
It should be understood that each file in file system corresponds to an index node, accordingly, it is determined where file system File destination is stored in memory block, it will be able to obtain the index node corresponding to file destination.
The data of storage first object file are described above, further, if the memory block of storage first object file In there is also idle sections, then the catalogue file (directory entry) of the first object file can also be created, by first mesh In catalogue file (directory entry) storage to idle section for marking file.It is described according to another implementation of the application below in conjunction with Fig. 4 The memory headroom management method 400 of example.The method 400 can be executed by CPU.As shown in figure 4, the method 400 includes:
S410 obtains the establishment file request of the first thread, and the establishment file request includes the first object The routing information of file, includes the first directory entry to be created in the routing information of the first object file, and described first Directory entry is the directory entry belonging to the first object file;
S420, the directory entry of parent directory where obtaining the first object file according to the routing information;
S430, according to the required byte number of the first directory entry to be created from the of the directory entry of the parent directory First node is determined in one space chained list, includes each of P node, the P node in the chained list of first space Node is used to indicate one in the corresponding first memory block of directory entry of the parent directory idle section, in the first node Include the address information of first interval, wherein P is the integer not less than 1;
S440 stores first directory entry in the first interval that the first node is directed toward.
Specifically, CPU can also obtain the establishment file request of the first thread, the establishment file request includes The store path information of the first object file includes to be created first in the routing information of the first object file Directory entry, for example, the complete trails of the first object file is:/ dir1/123/file.txt, first mesh to be created Recording item is:file.txt.CPU can obtain the first object file institute according to the routing information of the first object file In the directory entry of parent directory, for example, the directory entry of parent directory is where the first object file:/dir1/123.In addition, tool Body, CPU can calculate required byte number, so according to the length of the name character string of the first directory entry to be created First node is determined from the space chained list of the directory entry of the parent directory (such as first space chained list) afterwards, in order to described First directory entry is stored in the first interval that first node is directed toward.Optionally, CPU can be directed toward described first by pointer Section.
In the embodiment of the present application, include P node in the space chained list, each node in the P node It may be used to indicate an idle section in the corresponding first memory block of directory entry of the parent directory, wherein P is no less than 1 Integer.That is, in the corresponding first memory block of directory entry of parent directory where first object file, if there is sky Not busy section (such as first interval) then can be used for storing the directory entry of first object file.
Optionally, the first interval can be described with length or range (extent), can specifically use (first, Last it) indicates.Wherein, extent is a concept in file system.
Optionally, include the address information of the first interval in the first node.For example, described address packet Initial address and end address are included, alternatively, described address information includes initial address and offset (or length).In this way, CPU can To determine specific location of the first interval in the chained list of space according to described address information, thus by first catalogue In item storage to the first interval.
It is described above the catalogue file (directory entry) of file destination, stores the mesh to the parent directory where file destination Record the embodiment of the corresponding storage of item idle section (i.e. first interval) in the block.Optionally, if father's mesh where file destination When there is no the idle section that can be distributed in the corresponding multiple memory blocks of directory entry of record, then need in the first bitmap line segment In tree, free memory blocks are determined for directory entry to be created.It is carried out by taking the request of the second establishment file of first thread as an example below Explanation.
Optionally, can also include as one embodiment, the method 300 or the method 400:
The second establishment file request from the first thread is obtained, the second establishment file request includes the second mesh The second routing information for marking file includes the second directory entry to be created, second catalogue in second routing information Item is the directory entry belonging to second file destination;
The directory entry of parent directory where obtaining second file destination according to second routing information;
It is not assignable in multiple memory blocks corresponding to the directory entry of parent directory where second file destination When idle section, the corresponding first bitmap Kd-Trees of first memory space belonging to the first thread is obtained;
According to determining second leaf node in the first bitmap Kd-Trees, wherein recorded in second leaf node There is the information of assignable free memory blocks, second leaf node is from the root node of the first bitmap Kd-Trees to leaf The direction stochastic searching Log of child nodem(N/S) secondary rear lookup obtains;
At least one free time is selected to deposit from first memory space according to the bitmap of the second leaf node management Store up block;
Second directory entry to be created is stored at least one free memory blocks.
Specifically, CPU can also obtain the second establishment file request of the first thread, second establishment file Request includes the second file destination, includes the second directory entry to be created, second catalogue in second routing information Item is the directory entry belonging to second file destination.CPU can obtain second target according to second routing information The directory entry of parent directory where file.If it is judged that more corresponding to the directory entry of parent directory where second file destination There is no assignable idle section in a memory block, then needs to obtain the first memory space correspondence belonged to described in the first thread The first bitmap Kd-Trees.Similarly, CPU searches assignable free memory blocks in the first bitmap Kd-Trees, Determine the second leaf node, wherein the process that the determination of the second leaf node is determined to the first leaf node above is similar 's.Finally, CPU selects at least one free time according to the bitmap of the second leaf node management in first memory space Memory block, and store second directory entry to be created.
Here, since the request of the second establishment file and the request of the first establishment file are to belong to same thread (the i.e. First Line Journey) establishment file request, then for the second establishment file ask determine free memory blocks when, still in the first thread It is searched in the corresponding first bitmap Kd-Trees of the first affiliated memory space, that is, searches its of the first bitmap Kd-Trees His leaf node, such as the second leaf node.
It should be understood that in the embodiment of the present application, introducing number " first " or " second " ... and being intended merely to distinguish different pairs As for example, different " file destination " is distinguished, alternatively, different " leaf node " is distinguished, alternatively, distinguishing different " catalogues ", alternatively, different " establishment file request " is distinguished, alternatively, different " space chained list " is distinguished, alternatively, distinguishing different " memory block " etc. does not constitute the embodiment of the present application and limits.
Therefore, in the embodiment of the present application, further, if desired increase catalogue for the file destination in a certain thread , it, can be if there is no assignable free block in memory block corresponding to the directory entry of parent directory where file destination In the corresponding bitmap Kd-Trees of memory space belonging to the thread, other leaf nodes are searched, to obtain free memory blocks, to Store directory entry to be increased.
The data of storage file destination or the embodiment of directory entry is described above.Further, the embodiment of the present application is also A kind of memory headroom management method is provided, memory space to be recycled can be managed by space chained list and hash index, More specifically, memory space to be recycled is in the form of section or node in insertion space chained list.Root is described below in conjunction with Fig. 5 According to the memory headroom management method 500 of the application another embodiment.The method 500 can be executed by CPU.As shown in figure 5, institute Stating method 500 includes:
S510, receives file deletion requests, includes the second file destination to be deleted in the file deletion requests Routing information;
S520 determines the parent directory belonging to second file destination according to the routing information of second file destination Directory entry;
S530, the directory entry of the parent directory belonging to second file destination search the second file destination institute The address information of the second interval belonging to the mark of the second memory block and the directory entry of second file destination belonged to;
S540 calculates the cryptographic Hash of the mark of second memory block;
S550 searches the second space of the directory entry of the parent directory belonging to second file destination according to the cryptographic Hash Chained list, the directory entry corresponding second that the second space chained list is used to record the parent directory belonging to second file destination are deposited Store up available idle section in block;
S560 is inserted into second node in the second space chained list, wherein record has described the in the second node The address information in two sections.
Specifically, CPU can also receive file deletion requests, can include to be deleted in the file deletion requests The second file destination routing information, second target is then determined according to the routing information of second file destination The directory entry of parent directory belonging to file.For example, the complete trails of second file destination is:/ dir2/123/file1.txt, Then the directory entry of the parent directory belonging to second file destination is:/dir2/123.CPU can be according to second target text The directory entry of parent directory belonging to part searches the mark and described the of the second memory block belonging to second file destination The address information of second interval belonging to the directory entry of two file destinations.For example, second belonging to second file destination deposits The mark for storing up block is indicated with (block_index_nr).Optionally, described address information includes the starting point of the second interval The offset address of location and the second interval, for example, being expressed as (in_block_offset_start), (in_block_ offset_len);Or described address information includes the end of the initial address and the second interval of the second interval Location, for example, being expressed as (in_block_offset_start), (in_block_offset_end).Then, CPU passes through Hash It calculates, obtains the cryptographic Hash of the mark of second memory block, the cryptographic Hash can be understood as the address of the second interval Then information searches second space chained list according to the cryptographic Hash, the second space chained list is for recording described the Available free time section in corresponding second memory block of directory entry of parent directory belonging to two file destinations.Finally, CPU can be incited somebody to action Second node is inserted into the second space chained list, and record has the address information of second interval, i.e. table in the second node Show that the second interval has been released space and has been recovered in the second space chained list.In this way, a certain mesh in file system In the case that record number of files is larger, space chained list is searched by cryptographic Hash, it is not efficient enough that the related operation of directory entry can be solved Caused system bottleneck can realize the efficient distribution and release of memory space.
Specifically for example, the key of cryptographic Hash is the block number of the second memory block, value is the second memory block in second space chain Initial address in table.
It should be noted that " being inserted into second node in the second space chained list " indicate that the second node is can , alternatively, second node has been recovered, alternatively, it can be appreciated that deleting the directory entry stored in second node .Wherein, second space chained list indicates available section for recording.
Further, when recycling the second interval (for example, the item that deltrees in second file destination When file1.txt), it is also necessary to recycle the inode of second file destination and the memory block of second file destination occupancy (it can be appreciated that deleting memory block).
Optionally, if the second interval and its adjacent section in second space chained list of recycling are complete adjacent , then second interval section adjacent thereto can be merged operation.
Can be optionally, 1 by the bit position of the correspondence leaf node on bitmap Kd-Trees when deltreeing (or Person can also be other identifier), illustrate that the memory block is idle state.
Fig. 6 shows the schematic diagram of the example of a space chained list according to the embodiment of the present application.As shown in fig. 6, space Chained list includes multiple nodes (being respectively node 0, node 1, node 2 and node 3), and each node is used to indicate corresponding Idle section in Block.Corresponding 4 memory blocks of 4 nodes are respectively:Block0, Block1, Block2 and Block3.When receiving file deletion requests, this document removal request includes the file destination in Block2 to be deleted Routing information, CPU search the directory entry of the parent directory belonging to file destination according to the routing information of file destination, and according to target The directory entry of parent directory belonging to file searches the mark (ID) of the Block2 belonging to file destination and the catalogue of file destination The address (such as initial address and offset) in the section belonging to.In figure 6, it usesIndicate area to be recycled in Block2 Between.CPU searches space chained list by the cryptographic Hash of the mark of calculating Block2 according to the cryptographic Hash.Then, it waits for back finding After receiving section, CPU can be by section to be recycledThe catalogue entry deletion of middle storage, to discharge the section, then in space chained list It is middle to be inserted into section to be recycledIt is possible to further by section to be recycledSection adjacent thereto merges, in order to rear It is continuous to be allocated.
Therefore, in the embodiment of the present application, it is possible to further by calculate the second memory block mark cryptographic Hash, And the second space chained list of the directory entry of the parent directory belonging to the second file destination is searched according to the cryptographic Hash, in second space It is inserted into second node in chained list, idle section can be recycled, memory space is efficiently distributed and discharge to realize.
Optionally, as one embodiment, the first leaf node is determined in the first bitmap Kd-Trees, including:
To the direction stochastic searching of leaf node to i-th of middle node since the root node of the first bitmap Kd-Trees Point, wherein i-th of intermediate node is obtained since the root node after stochastic searching i times, and i is not less than 1 and less In Logm(N/S), Logm(N/S) it is the natural number more than 1, i-th of intermediate node record has i-th of intermediate node Subtree in available free memory blocks number;
When the number of available free memory blocks in the subtree of i-th of intermediate node is unsatisfactory for distributive condition, from J-th of intermediate node is selected in the brotgher of node of i-th of intermediate node, wherein in the subtree of j-th of intermediate node Include the free memory blocks for meeting distributive condition;
The first leaf node is determined in the subtree of j-th of intermediate node.
Specifically, CPU can be carried out to the direction of leaf node step by step since the root node of the first bitmap Kd-Trees It searches, and stochastic searching is to i-th of intermediate node.That is, i-th of intermediate node be since the root node with What machine obtained after searching i times.Wherein, i-th of intermediate node record has the number of available free memory blocks in its subtree, But the location information of available free memory blocks is not included.If the available free time deposits in the subtree of i-th of intermediate node The off-capacity for storing up the number of block, can not accommodate the data of new file or file destination to be created, be unsatisfactory for demand in other words, Then CPU can select j-th of intermediate node from the brotgher of node of i-th of intermediate node, wherein among described j-th Include the free memory blocks for meeting distributive condition in the subtree of node, then in the subtree of j-th of intermediate node, Xiang Ye The direction of child node continues to search for (Logm(N/S)-i) it is secondary, to find the first leaf node, then in the first leaf node management Memory block in select at least one free memory blocks, by the storage of the data of file to be created or file destination at least one sky In not busy memory block.
Here, the brotgher of node of i-th of intermediate node can be understood as being located at the centre with level-one with i-th of intermediate node Node.
That is, if the number of available free memory blocks is unsatisfactory for distributive condition in the subtree of a certain intermediate node When, can be selected from the brotgher of node of the intermediate node one include the free memory blocks for meeting distributive condition middle node Point, to store the directory entry of file destination or the data of file destination.
The structure of bitmap Kd-Trees is described below in conjunction with Fig. 7.Fig. 7 shows the bitmap line segment according to the embodiment of the present application The schematic diagram of an example for tree.It is simply facilitated it will be understood by those skilled in the art that bitmap Kd-Trees it should be understood that introducing Fig. 7, and The embodiment of the present application is not constituted and limited, practical Bitmap Kd-Trees can have the transformation or adjustment of other forms.
It is set as shown in fig. 7, the bitmap Kd-Trees is 2 forks, i.e. Logm(N/S) the m values in are 2.The bitmap Kd-Trees pipe The number N=64 (including storage block number 0- numbers 63) of the memory block of reason, specifically includes N/S=8 leaf node, Mei Geye The number S=8 of the memory block of child node management, each leaf node have the use state of 8 memory blocks using bitmap method record The height of information, the bitmap Kd-Trees is Log2(N/S)=3.Optionally, the height of the bitmap Kd-Trees can taking according to S Value neatly adjust or change.Specifically, the root node of the bitmap Kd-Trees is level-one (the number 0- numbers of the top 63);The leaf node of the bitmap Kd-Trees is level-one bottom, i.e. 8 of each leaf node management in 8 leaf nodes Memory block is:Number 0- numbers 7, number 8- numbers 15, number 16- numbers 23, number 24- numbers 31, number 32- numbers 39, Number 40- numbers 47, number 48- numbers 55, number 56- numbers 63.Each leaf node usesIndicate 8 memory blocks In each memory block use state;The root node of the bitmap Kd-Trees and the two-stage among leaf node are intermediate node. Optionally, intermediate node (number 0- numbers 31) is properly termed as left child;Intermediate node (number 32- numbers 63) can claim For right child.The left child and the right child brotgher of node each other.It can be used in the subtree of left child The number of memory block when being unsatisfactory for distributive condition, it is assumed that include the idle storage for meeting distributive condition in right child Block, then CPU leaf node can be selected from right child, free memory blocks are then selected in leaf node.
The method of the memory headroom management of the embodiment of the present application, can be randomly assigned free memory blocks, to realize storage The abrasion equilibrium of device extends the service life of memory.Also, in applying for embodiment, if desired recycling stores number in the block According to can quickly position the corresponding bitmap of relevant block using bitmap Kd-Trees, and change elastic bitmap Kd-Trees, improve lookup Efficiency, search performance are preferable.Further, idle section can be recycled, memory space is efficiently distributed and discharge to realize.
It should be understood that technical solution provided by the embodiments of the present application, can be applied to (SuSE) Linux OS, can also apply Possess the operating system in oneself exclusive space in other each processes.
It should also be understood that technical solution provided by the embodiments of the present application, hardware need not be transformed, versatility is stronger.
Above in conjunction with Fig. 1 to Fig. 7, the method that the memory headroom management according to the embodiment of the present application is described in detail, under The memory headroom managing device according to the embodiment of the present application will be described in detail in conjunction with Fig. 8 to Fig. 9 in face.It should be understood that the application is implemented The memory headroom managing device of example can be integrated in modular form in storage device, can also be individually present, be not construed as limiting to this.
Fig. 8 shows that the schematic block diagram of the memory headroom managing device 800 according to the embodiment of the present application, described device are answered Storage device for having file system in memory, wherein save as nonvolatile memory NVM in described.Optionally, described Device can also be individually present.As shown in figure 8, the device 800 includes:
Receiving module 810, the file access request for receiving first thread, the file access request include to be stored First object file data;
Acquisition module 820, for obtaining the first bitmap line corresponding with the first memory space belonging to the first thread Duan Shu, wherein the memory includes multiple memory spaces, and each memory space is respectively adopted different bitmap Kd-Trees and carries out Management, the first bitmap Kd-Trees includes N/S leaf node, wherein the N is used to indicate in first memory space Including storage number of blocks, the S is used to indicate the memory block in first memory space of each leaf node management Number, N are not less than S not less than 2, S not less than 1, N;
Determining module 830, for determining the first leaf node in the first bitmap Kd-Trees, wherein described first The information of available free memory block is recorded in leaf node, first leaf node is the root section from the first bitmap Kd-Trees Direction stochastic searching Log of the point to leaf nodem(N/S) secondary rear searching acquisition, wherein the m is used to indicate described first The value of the number of the next stage child node of any one node in figure Kd-Trees, m is not less than 2;
Selecting module 840, for selecting at least one free time to deposit from S memory block of the first leaf node management Store up block, wherein record has the use state information of the S memory block in first leaf node;
Memory module 850, for storing the data of the first object file at least one free memory blocks In.
Optionally, as one embodiment, the acquisition module 820 is additionally operable to:
The establishment file request of the first thread is obtained, the establishment file request includes the first object file Routing information includes the first directory entry to be created, first directory entry in the routing information of the first object file For the directory entry belonging to the first object file;Parent directory where obtaining the first object file according to the routing information Directory entry;
Wherein, the determining module 830 is additionally operable to, according to the required byte number of the first directory entry to be created from First node is determined in first space chained list of the directory entry of the parent directory, includes P node, institute in the space chained list State the free area that each node in P node is used to indicate in the corresponding first memory block of directory entry of the parent directory Between, include the address information of first interval in the first node, wherein P is the integer not less than 1;
The memory module 850 is additionally operable to, and described first is stored in the first interval that the first node is directed toward Directory entry.
Optionally, as one embodiment, the acquisition module 820 is additionally operable to:
The second establishment file request from the first thread is obtained, the second establishment file request includes the second mesh The second routing information for marking file includes the second directory entry to be created, second catalogue in second routing information Item is the directory entry belonging to second file destination;The second file destination place is obtained according to second routing information The directory entry of parent directory;May not be used in multiple memory blocks corresponding to the directory entry of parent directory where second file destination When the idle section of distribution, the corresponding first bitmap line segment of first memory space belonging to the first thread is obtained Tree;
The determining module 830 is additionally operable to, according to determining second leaf node in the first bitmap Kd-Trees, wherein Record has the information of assignable free memory blocks in second leaf node, and second leaf node is from described first Direction stochastic searching Log of the root node of bitmap Kd-Trees to leaf nodem(N/S) secondary rear lookup obtains;
The selecting module 840 is additionally operable to, empty from first storage according to the bitmap of the second leaf node management Between at least one free memory blocks of middle selection;
The memory module 850 is additionally operable to, and described to be created second is stored at least one free memory blocks Directory entry.
As shown in figure 9, optionally, as one embodiment, described device 800 includes:
Receiving module 810 includes to be deleted second for receiving file deletion requests, in the file deletion requests The routing information of file destination;
Determining module 830, for determining the second file destination institute according to the routing information of second file destination The directory entry of the parent directory of category;
Searching module 860, the directory entry for the parent directory belonging to second file destination search described second The ground of second interval belonging to the directory entry of the mark of the second memory block belonging to file destination and second file destination Location information;
Computing module 870, the cryptographic Hash of the mark for calculating second memory block;
The searching module 860 is additionally operable to, and the parent directory belonging to second file destination is searched according to the cryptographic Hash Directory entry second space chained list, the second space chained list is used to record parent directory belonging to second file destination Available free time section in corresponding second memory block of directory entry;
It is inserted into module 880, for being inserted into second node in the second space chained list, wherein in the second node Record has the address information of the second interval.
Optionally, as one embodiment, the determining module 830 is specifically used for:
To the direction stochastic searching of leaf node to i-th of middle node since the root node of the first bitmap Kd-Trees Point, wherein i-th of intermediate node is obtained since the root node after stochastic searching i times, the i not less than 1 and No more than Logm(N/S), Logm(N/S) it is the natural number more than 1, i-th of intermediate node record has among described i-th The number of available free memory blocks in the subtree of node;
When the number of available free memory blocks in the subtree of i-th of intermediate node is unsatisfactory for distributive condition, from J-th of intermediate node is selected in the brotgher of node of i-th of intermediate node, wherein in the subtree of j-th of intermediate node Include the free memory blocks for meeting distributive condition;
First leaf node is determined in the subtree of j-th of intermediate node.
Optionally, as one embodiment, the selecting module 840 is specifically used for:
At least one free memory blocks are randomly choosed according in S memory block of the first leaf node management.
It should be understood that according to the above and other of the modules in the memory headroom managing device 800 of the embodiment of the present application Operation and/or function is respectively in order to realize each method (including each method in Fig. 3, Fig. 4 and Fig. 5) of embodiment above Corresponding flow, for sake of simplicity, details are not described herein.
The memory headroom managing device 800 of the embodiment of the present application, receives the file access request of first thread, passes through acquisition The first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread determines the in the first bitmap Kd-Trees One leaf node records the information of available free memory block in first leaf node, and first leaf node is from described Direction stochastic searching Log of the root node of first bitmap Kd-Trees to leaf nodem(N/S) search after secondary and to obtain, then from At least one free memory blocks are selected in S memory block of the first leaf node management, by the first object file In data storage at least one free memory blocks, free memory blocks can be randomly assigned, to realize the mill of memory Damage is balanced, extends the service life of memory.
It is possible to further the cryptographic Hash of the mark by calculating the second memory block, and the is searched according to the cryptographic Hash The second space chained list of the directory entry of parent directory belonging to two file destinations, is inserted into second node, energy in second space chained list Enough idle sections of recycling, memory space is efficiently distributed and discharges to realize.
Those of ordinary skill in the art may realize that lists described in conjunction with the examples disclosed in the embodiments of the present disclosure Member and algorithm steps can be realized with the combination of electronic hardware or computer software and electronic hardware.These functions are actually It is implemented in hardware or software, depends on the specific application and design constraint of technical solution.Professional technician Each specific application can be used different methods to achieve the described function, but this realization is it is not considered that exceed The range of the embodiment of the present application.
In several embodiments that the embodiment of the present application is provided, it should be understood that disclosed system, device and side Method may be implemented in other ways.For example, the apparatus embodiments described above are merely exemplary, for example, described The division of module, only a kind of division of logic function, formula that in actual implementation, there may be another division manner, such as multiple modules Or component can be combined or can be integrated into another system, or some features can be ignored or not executed.Another point, institute Display or the mutual coupling, direct-coupling or communication connection discussed can be by some interfaces, device or module INDIRECT COUPLING or communication connection can be electrical, machinery or other forms.
The module illustrated as separating component may or may not be physically separated, aobvious as module The component shown may or may not be physical module, you can be located at a place, or may be distributed over multiple On network module.Some or all of module therein can be selected according to the actual needs to realize the mesh of this embodiment scheme 's.
In addition, each function module in applying for each embodiment of embodiment can be integrated in a processing module, Can be that modules physically exist alone, can also two or more modules be integrated in a module.
It, can be with if the function is realized in the form of SFU software functional unit and when sold or used as an independent product It is stored in a computer read/write memory medium.Based on this understanding, the technical solution of the embodiment of the present application is substantially The part of the part that contributes to existing technology or the technical solution can embody in the form of software products in other words Come, which is stored in a storage medium, including some instructions are used so that a computer equipment (can To be personal computer, server or the network equipment etc.) execute each embodiment the method for the embodiment of the present application whole Or part steps.And storage medium above-mentioned includes:USB flash disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disc or CD etc. are various can store program The medium of code.

Claims (12)

1. a kind of memory headroom management method, the method is applied to have the storage device of file system in memory, wherein institute Nonvolatile memory NVM is saved as in stating, which is characterized in that including:
The file access request of first thread is received, the file access request includes the number of first object file to be stored According to;
Obtain the first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread, wherein in the memory Including multiple memory spaces, each memory space is respectively adopted different bitmap Kd-Trees and is managed, the first bitmap line Duan Shu includes N/S leaf node, wherein N is used to indicate the storage number of blocks that first memory space includes, and S is used for Indicate the number of the memory block in first memory space of each leaf node management, N is not less than 1, N not less than 2, S Less than S;
The first leaf node is determined in the first bitmap Kd-Trees, wherein recorded in first leaf node available free The information of memory block, first leaf node be from the root node of the first bitmap Kd-Trees to the direction of leaf node with Machine searches Logm(N/S) secondary rear searching acquisition, wherein the m is used to indicate any one in the first bitmap Kd-Trees The value of the number of the next stage child node of node, m is not less than 2;
At least one free memory blocks are selected from S memory block of the first leaf node management, wherein first leaf Record has the use state information of the S memory block in child node;
It will be in the data storage at least one free memory blocks of the first object file.
2. according to the method described in claim 1, it is characterized in that, the method further includes:
The establishment file request of the first thread is obtained, the establishment file request includes the path of the first object file Information includes the first directory entry to be created in the routing information of the first object file, and first directory entry is institute State the directory entry belonging to first object file;
The directory entry of parent directory where obtaining the first object file according to the routing information;
First space beam of the directory entry according to the required byte number of the first directory entry to be created from the parent directory First node is determined in table, includes P node in the space chained list, each node in the P node is used to indicate One in the corresponding first memory block of directory entry of the parent directory idle section includes the firstth area in the first node Between address information, wherein P is integer not less than 1;
First directory entry is stored in the first interval that the first node is directed toward.
3. method according to claim 1 or 2, which is characterized in that the method further includes:
The second establishment file request from the first thread is obtained, the second establishment file request includes the second target text Second routing information of part, includes the second directory entry to be created in second routing information, and second directory entry is Directory entry belonging to second file destination;
The directory entry of parent directory where obtaining second file destination according to second routing information;
There is no the assignable free time in multiple memory blocks corresponding to the directory entry of parent directory where second file destination When section, the corresponding first bitmap Kd-Trees of first memory space belonging to the first thread is obtained;
According to determining the second leaf node in the first bitmap Kd-Trees, wherein have can for record in second leaf node The information of the free memory blocks of distribution, second leaf node are from the root node of the first bitmap Kd-Trees to leaf section The direction stochastic searching Log of pointm(N/S) secondary rear lookup obtains;
According to the bitmap of the second leaf node management at least one free memory blocks are selected from first memory space;
Second directory entry to be created is stored at least one free memory blocks.
4. according to the method in any one of claims 1 to 3, which is characterized in that the method further includes:
File deletion requests are received, include the routing information of the second file destination to be deleted in the file deletion requests;
The directory entry of the parent directory belonging to second file destination is determined according to the routing information of second file destination;
What the directory entry of the parent directory belonging to second file destination searched belonging to second file destination second deposits Store up the address information of the second interval belonging to the mark of block and the directory entry of second file destination;
Calculate the cryptographic Hash of the mark of second memory block;
The second space chained list of the directory entry of the parent directory belonging to second file destination is searched according to the cryptographic Hash, it is described Second space chained list can in corresponding second memory block of directory entry for recording the parent directory belonging to second file destination Idle section;
It is inserted into second node in the second space chained list, wherein record has the second interval in the second node Address information.
5. method according to claim 1 to 4, which is characterized in that described in the first bitmap Kd-Trees The first leaf node of middle determination, including:
To the direction stochastic searching of leaf node to i-th of intermediate node since the root node of the first bitmap Kd-Trees, Wherein, i-th of intermediate node is obtained since the root node after stochastic searching i times, and i is not less than 1 and is not more than Logm(N/S), Logm(N/S) it is the natural number more than 1, i-th of intermediate node record has i-th of intermediate node The number of available free memory blocks in subtree;
When the number of available free memory blocks in the subtree of i-th of intermediate node is unsatisfactory for distributive condition, from described J-th of intermediate node is selected in the brotgher of node of i-th of intermediate node, wherein include in the subtree of j-th of intermediate node There are the free memory blocks for meeting distributive condition;
First leaf node is determined in the subtree of j-th of intermediate node.
6. the method according to any one of claims 1 to 5, it is characterized in that, described according to first leaf node The bitmap of management selects at least one free memory blocks from first space, including:
At least one free memory blocks are randomly choosed according in S memory block of the first leaf node management.
7. a kind of memory headroom managing device, described device is applied to have the storage device of file system in memory, wherein institute Nonvolatile memory NVM is saved as in stating, which is characterized in that including:
Receiving module, the file access request for receiving first thread, the file access request include to be stored first The data of file destination;
Acquisition module, for obtaining the first bitmap Kd-Trees corresponding with the first memory space belonging to the first thread, In, the memory includes multiple memory spaces, and each memory space is respectively adopted different bitmap Kd-Trees and is managed, institute It includes N/S leaf node to state the first bitmap Kd-Trees, wherein N is used to indicate the storage that first memory space includes Number of blocks, S are used to indicate the number of the memory block in first memory space of each leaf node management, and N is not less than 2, S It is not less than S not less than 1, N;
Determining module, for determining the first leaf node in the first bitmap Kd-Trees, wherein first leaf node The middle information for recording available free memory block, first leaf node are from the root node of the first bitmap Kd-Trees to leaf The direction stochastic searching Log of nodem(N/S) secondary rear lookup obtains, wherein m is used to indicate in the first bitmap Kd-Trees Any one node next stage child node number, the value of m is not less than 2;
Selecting module, for selecting at least one free memory blocks from S memory block of the first leaf node management, In, record has the use state information of the S memory block in first leaf node;
Memory module, in the data storage at least one free memory blocks by the first object file.
8. device according to claim 7, which is characterized in that the acquisition module is additionally operable to:
The establishment file request of the first thread is obtained, the establishment file request includes the path of the first object file Information includes the first directory entry to be created in the routing information of the first object file, and first directory entry is institute State the directory entry belonging to first object file;The mesh of parent directory where obtaining the first object file according to the routing information Record item;
Wherein, the determining module is additionally operable to, according to the required byte number of the first directory entry to be created from the father First node is determined in first space chained list of the directory entry of catalogue, includes P node in the space chained list, and the P is a The idle section that each node in node is used to indicate in the corresponding first memory block of directory entry of the parent directory, institute State in first node include first interval address information, wherein P is integer not less than 1;
The memory module is additionally operable to, and first directory entry is stored in the first interval that the first node is directed toward.
9. device according to claim 7 or 8, which is characterized in that the acquisition module is additionally operable to:
The second establishment file request from the first thread is obtained, the second establishment file request includes the second target text Second routing information of part, includes the second directory entry to be created in second routing information, and second directory entry is Directory entry belonging to second file destination;Father's mesh where obtaining second file destination according to second routing information The directory entry of record;It can not distributed in multiple memory blocks corresponding to the directory entry of parent directory where second file destination Idle section when, obtain the corresponding first bitmap Kd-Trees of first memory space belonging to the first thread;
The determining module is additionally operable to, according to determining second leaf node in the first bitmap Kd-Trees, wherein described second Record has the information of assignable free memory blocks in leaf node, and second leaf node is from the first bitmap line segment Direction stochastic searching Log of the root node of tree to leaf nodem(N/S) secondary rear lookup obtains;
The selecting module is additionally operable to, and is selected from first memory space according to the bitmap of the second leaf node management At least one free memory blocks;
The memory module is additionally operable to, and second directory entry to be created is stored at least one free memory blocks.
10. the device according to any one of claim 7 to 9, which is characterized in that the receiving module is additionally operable to:
File deletion requests are received, include the routing information of the second file destination to be deleted in the file deletion requests;
The determining module is additionally operable to, and is determined belonging to second file destination according to the routing information of second file destination Parent directory directory entry;
Described device further includes:
Searching module, the directory entry for the parent directory belonging to second file destination search second file destination The address information of second interval belonging to the directory entry of the mark of the second affiliated memory block and second file destination;
Computing module, the cryptographic Hash of the mark for calculating second memory block;
The searching module is additionally operable to, and the directory entry of the parent directory belonging to second file destination is searched according to the cryptographic Hash Second space chained list, the second space chained list is used to record the directory entry pair of parent directory belonging to second file destination Available free time section in the second memory block answered;
It is inserted into module, for being inserted into second node in the second space chained list, wherein recorded in the second node State the address information of second interval.
11. device according to any one of claims 7 to 10, which is characterized in that the determining module is specifically used for:
To the direction stochastic searching of leaf node to i-th of intermediate node since the root node of the first bitmap Kd-Trees, Wherein, i-th of intermediate node is obtained since the root node after stochastic searching i times, and the i is not less than 1 and not More than Logm(N/S), Logm(N/S) it is the natural number more than 1, i-th of intermediate node record has i-th of middle node The number of available free memory blocks in the subtree of point;
When the number of available free memory blocks in the subtree of i-th of intermediate node is unsatisfactory for distributive condition, from described J-th of intermediate node is selected in the brotgher of node of i-th of intermediate node, wherein include in the subtree of j-th of intermediate node There are the free memory blocks for meeting distributive condition;
First leaf node is determined in the subtree of j-th of intermediate node.
12. the device according to any one of claim 7 to 11, which is characterized in that the selecting module is specifically used for:
At least one free memory blocks are randomly choosed according in S memory block of the first leaf node management.
CN201710184680.0A 2017-03-24 2017-03-24 Memory space management method and device Active CN108628753B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710184680.0A CN108628753B (en) 2017-03-24 2017-03-24 Memory space management method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710184680.0A CN108628753B (en) 2017-03-24 2017-03-24 Memory space management method and device

Publications (2)

Publication Number Publication Date
CN108628753A true CN108628753A (en) 2018-10-09
CN108628753B CN108628753B (en) 2021-02-23

Family

ID=63707879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710184680.0A Active CN108628753B (en) 2017-03-24 2017-03-24 Memory space management method and device

Country Status (1)

Country Link
CN (1) CN108628753B (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508326A (en) * 2018-11-22 2019-03-22 北京百度网讯科技有限公司 For handling the methods, devices and systems of data
CN109522308A (en) * 2018-11-06 2019-03-26 北京太星晨信息技术有限公司 A kind of connection handle management method and device
CN109710542A (en) * 2018-12-28 2019-05-03 北京像素软件科技股份有限公司 A kind of completely N-ary tree construction method and device
CN110531940A (en) * 2019-06-06 2019-12-03 重庆紫光华山智安科技有限公司 Video file processing method and processing device
CN111078920A (en) * 2019-11-22 2020-04-28 北京云宽志业网络技术有限公司 Data processing method, device, equipment and computer readable storage medium
CN111722962A (en) * 2020-06-19 2020-09-29 艾索信息股份有限公司 Storage system and method for CDP data
CN111857575A (en) * 2020-06-24 2020-10-30 国汽(北京)智能网联汽车研究院有限公司 Method, device and equipment for determining memory space of computing platform and storage medium
CN112596908A (en) * 2020-12-28 2021-04-02 中孚安全技术有限公司 Memory management method and system based on complete binary tree
CN112784264A (en) * 2021-01-18 2021-05-11 北京洛塔信息技术有限公司 Jail crossing state detection method, device, equipment and storage medium
CN112947860A (en) * 2021-03-03 2021-06-11 成都信息工程大学 Hierarchical storage and scheduling method of distributed data copies
CN113194127A (en) * 2021-04-21 2021-07-30 统信软件技术有限公司 Data storage method, data transmission method and computing equipment
WO2021201986A1 (en) * 2020-04-01 2021-10-07 Microsoft Technology Licensing, Llc Resource allocation for virtual machines
CN114489508A (en) * 2022-01-26 2022-05-13 重庆紫光华山智安科技有限公司 Data management method, device, equipment and medium
CN115168304A (en) * 2022-09-06 2022-10-11 北京奥星贝斯科技有限公司 Data processing method, device, storage medium and equipment

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272698B2 (en) * 2003-03-19 2007-09-18 Autodesk, Inc. Heap memory management
US7356655B2 (en) * 2003-05-15 2008-04-08 International Business Machines Corporation Methods, systems, and media for managing dynamic storage
CN101329906A (en) * 2008-07-24 2008-12-24 中国科学院上海微系统与信息技术研究所 Non-volatile sequent modular memory, data storage and reading method
CN101330529A (en) * 2008-07-29 2008-12-24 杭州电子科技大学 Method for distributing address of self-pruning type tree-shaped structure network
CN101488153A (en) * 2009-02-12 2009-07-22 浙江大学 Method for implementing high-capacity flash memory file system in embedded type Linux
US20100228914A1 (en) * 2007-12-03 2010-09-09 Tencent Technology (Shenzhen) Company, Ltd. Data caching system and method for implementing large capacity cache
CN102713826A (en) * 2009-12-22 2012-10-03 苹果公司 Methods and apparatuses to allocate file storage via tree representations of a bitmap
US8375012B1 (en) * 2011-08-10 2013-02-12 Hewlett-Packard Development Company, L.P. Computer indexes with multiple representations
CN104021117A (en) * 2013-03-01 2014-09-03 索尼公司 Language processing method and electronic device
CN106354890A (en) * 2016-11-22 2017-01-25 中国科学院上海微系统与信息技术研究所 Implementation method of random access file system based on N-ary tree structure
CN106469123A (en) * 2015-08-10 2017-03-01 北京忆恒创源科技有限公司 A kind of write buffer distribution based on NVDIMM, method for releasing and its device

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272698B2 (en) * 2003-03-19 2007-09-18 Autodesk, Inc. Heap memory management
US7356655B2 (en) * 2003-05-15 2008-04-08 International Business Machines Corporation Methods, systems, and media for managing dynamic storage
US20100228914A1 (en) * 2007-12-03 2010-09-09 Tencent Technology (Shenzhen) Company, Ltd. Data caching system and method for implementing large capacity cache
CN101329906A (en) * 2008-07-24 2008-12-24 中国科学院上海微系统与信息技术研究所 Non-volatile sequent modular memory, data storage and reading method
CN101330529A (en) * 2008-07-29 2008-12-24 杭州电子科技大学 Method for distributing address of self-pruning type tree-shaped structure network
CN101488153A (en) * 2009-02-12 2009-07-22 浙江大学 Method for implementing high-capacity flash memory file system in embedded type Linux
CN102713826A (en) * 2009-12-22 2012-10-03 苹果公司 Methods and apparatuses to allocate file storage via tree representations of a bitmap
US8375012B1 (en) * 2011-08-10 2013-02-12 Hewlett-Packard Development Company, L.P. Computer indexes with multiple representations
CN104021117A (en) * 2013-03-01 2014-09-03 索尼公司 Language processing method and electronic device
CN106469123A (en) * 2015-08-10 2017-03-01 北京忆恒创源科技有限公司 A kind of write buffer distribution based on NVDIMM, method for releasing and its device
CN106354890A (en) * 2016-11-22 2017-01-25 中国科学院上海微系统与信息技术研究所 Implementation method of random access file system based on N-ary tree structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李必刚等: "Design and Implementation of a Storage Virtualization", 《IEEE》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522308A (en) * 2018-11-06 2019-03-26 北京太星晨信息技术有限公司 A kind of connection handle management method and device
CN109522308B (en) * 2018-11-06 2023-06-20 北京太一星晨信息技术有限公司 Connection handle management method and device
CN109508326A (en) * 2018-11-22 2019-03-22 北京百度网讯科技有限公司 For handling the methods, devices and systems of data
CN109508326B (en) * 2018-11-22 2020-03-17 北京百度网讯科技有限公司 Method, device and system for processing data
CN109710542A (en) * 2018-12-28 2019-05-03 北京像素软件科技股份有限公司 A kind of completely N-ary tree construction method and device
CN109710542B (en) * 2018-12-28 2021-03-16 北京像素软件科技股份有限公司 Full N-way tree construction method and device
CN110531940A (en) * 2019-06-06 2019-12-03 重庆紫光华山智安科技有限公司 Video file processing method and processing device
CN111078920A (en) * 2019-11-22 2020-04-28 北京云宽志业网络技术有限公司 Data processing method, device, equipment and computer readable storage medium
WO2021201986A1 (en) * 2020-04-01 2021-10-07 Microsoft Technology Licensing, Llc Resource allocation for virtual machines
US11507431B2 (en) 2020-04-01 2022-11-22 Microsoft Technology Licensing, Llc Resource allocation for virtual machines
CN111722962A (en) * 2020-06-19 2020-09-29 艾索信息股份有限公司 Storage system and method for CDP data
CN111857575A (en) * 2020-06-24 2020-10-30 国汽(北京)智能网联汽车研究院有限公司 Method, device and equipment for determining memory space of computing platform and storage medium
CN112596908A (en) * 2020-12-28 2021-04-02 中孚安全技术有限公司 Memory management method and system based on complete binary tree
CN112784264A (en) * 2021-01-18 2021-05-11 北京洛塔信息技术有限公司 Jail crossing state detection method, device, equipment and storage medium
CN112784264B (en) * 2021-01-18 2024-04-02 北京洛塔信息技术有限公司 Jail-break state detection method, device, equipment and storage medium
CN112947860A (en) * 2021-03-03 2021-06-11 成都信息工程大学 Hierarchical storage and scheduling method of distributed data copies
CN113194127B (en) * 2021-04-21 2022-08-12 统信软件技术有限公司 Data storage method, data transmission method and computing equipment
CN113194127A (en) * 2021-04-21 2021-07-30 统信软件技术有限公司 Data storage method, data transmission method and computing equipment
CN114489508A (en) * 2022-01-26 2022-05-13 重庆紫光华山智安科技有限公司 Data management method, device, equipment and medium
CN114489508B (en) * 2022-01-26 2023-09-01 重庆紫光华山智安科技有限公司 Data management method, device, equipment and medium
CN115168304A (en) * 2022-09-06 2022-10-11 北京奥星贝斯科技有限公司 Data processing method, device, storage medium and equipment

Also Published As

Publication number Publication date
CN108628753B (en) 2021-02-23

Similar Documents

Publication Publication Date Title
CN108628753A (en) Memory headroom management method and device
US11656763B2 (en) File management method, distributed storage system, and management node
US9134908B2 (en) Logical volume space sharing
CN105100146B (en) Date storage method, apparatus and system
CN106294190B (en) Storage space management method and device
CN105389264B (en) The method and system of garbage collection in storage system
CN102985909B (en) Object for good lattice provides the method and apparatus of the high scalability network storage
EP2915051B1 (en) Memory device and host device
CN104111924B (en) A kind of Database Systems
CN105373342A (en) Heterogeneous unified memory
CN108604165A (en) Storage device
CN105579977A (en) File access method, device and storage system
CN105045850B (en) Junk data recovery method in cloud storage log file system
CN101526965B (en) Locating method of index nodes of disk file and device thereof
CN100424699C (en) Attribute extensible object file system
CN104054071A (en) Method for accessing storage device and storage device
CN106713250B (en) Data access method and device based on distributed system
CN107122130A (en) A kind of data delete method and device again
CN104750432B (en) A kind of date storage method and device
KR20150071500A (en) Method and Apparatus for Managing Data
TWI397060B (en) Disk layout method for object-based storage device
CN109460406A (en) A kind of data processing method and device
CN102253985A (en) File system data management method and system
CN109947669A (en) The address conversion method and system of KV storage equipment
KR20090007926A (en) Apparatus and method for managing index of data stored in flash memory

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