EP2218007A1 - Method and computer program product for memory management in a mass storage device - Google Patents
Method and computer program product for memory management in a mass storage deviceInfo
- Publication number
- EP2218007A1 EP2218007A1 EP08857080A EP08857080A EP2218007A1 EP 2218007 A1 EP2218007 A1 EP 2218007A1 EP 08857080 A EP08857080 A EP 08857080A EP 08857080 A EP08857080 A EP 08857080A EP 2218007 A1 EP2218007 A1 EP 2218007A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- stockling
- block
- size
- moved
- stockpile
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 title claims description 9
- 238000013467 fragmentation Methods 0.000 claims abstract description 4
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 4
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000008521 reorganization Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Definitions
- the present invention relates to a method and computer program product for storing data in a mass storage device.
- the present invention aims to solve the problems discussed above such as to reduce the problem with memory management for files of different sizes in a mass storage device.
- mass storage device includes but is not limited to a server, in particular for the Internet, storage in data centers, server farms, community solutions (e.g. facebook).
- this is provided by a method of the kind defined in the introductory portion of the description and having the characterizing features of claim 1.
- the method comprises so- called "stock piling”.
- the method may also comprise the step of decreasing compression ratio.
- the method could be used in a server.
- a computer program product having computer program code means to make a computer execute the above method when the program is run on a computer.
- the concept underlying the present invention is to provide a memory management algorithm comprising so-called stockpiling in a mass storage device.
- the invention finds application for routing, forensic networking, fire-walling, qos- classification, traffic shaping, intrusion detection, IPSEC, MPLS, etc and as component in technologies to solve any one of the problems mentioned.
- Fig. 1 illustrates stockpiling
- Fig, 1 illustrating an embodiment of the present invention including the concept of "stockpiling".
- a mass storage device contains files of different sizes.
- size we mean how many disk- or memory blocks are required to store the file and we consider files using the same cardinal number of blocks to be of the same size. That is, two files that requires 5.1 and 6 blocks are both considered to be of size 6 respectively.
- Our goal is to store all files consequtively on the mass storage device so that the reading/writing device does not need to "jump" between different locations when a file is read/written. Instead, it just reads/writes the "next" block repeatedly until the job is done.
- a so-called "stockling” is a managed memory area of s blocks (i.e. b bits blocks) that can be moved and stored in two parts to prevent fragmentation.
- Our approach is to use a stockling to store each data file in the mass storage device. It is associated with information about its size s, whether or not the area is divided in two parts and the location and size of the respective parts.
- each stockling must be associated with the address to the pointer to the data structure stored in the stockling so it can be updated when the stockling is moved.
- it is associated with a (possibly empty) procedure for encoding the location and size of the second part and the size of the first part in the first block. Let ns be the number of stocklings of size s.
- stocklings are stored in, or actually constitutes a, stockpile which is a contiguous sns blocks memory area.
- a stockpile can be moved one block to the left by moving one block from the left side of the stockpile to the right side of the stockpile (the information stored in the block in the leftmost block is moved to a free block at the right of the rightmost block). Moving a stockpile one block to the right is achieved by moving the rightmost block to the left side of the stockpile.
- the rightmost stockling in a stockpile is possibly stored in two parts while all other stocklings are contiguous. If it is stored in two parts, the left part of the stockling is stored in the right end of the stockpile and the right end of the stockling at the left end of the stockpile.
- Fig. 1 we illustrate the stockpiling technique in the context of insertion and deletion of structures of size 2 and 3 in a managed memory area with stockling sizes 2, 3 and 5.
- Each structure consists of a number of blocks and these are illustrated by squares with a shade of grey and a symbol. The shade is used to distinguish between blocks within a structure and the symbol is used to distinguish between blocks from different structures.
- stockpiling can be used also if it is not possible to store data structures in two parts.
- To reduce the memory management overhead we must reduce the number of allocation units. This is achieved by decreasing the compression ratio.
- the first step is to compute the set of allocation units and the insertion and deletion cost for each allocation unit (see Table 9).
- an additional 367 memory accesses for allocating a 182-block structure must be added to the lower bound resulting in an actual lower bound of 1461 memory accesses.
- an insertion of one allocation unit and a deletion of another is required for both block trees.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0702750A SE531837C2 (en) | 2007-12-05 | 2007-12-05 | Procedure and computer software product |
PCT/SE2008/051392 WO2009072970A1 (en) | 2007-12-05 | 2008-12-02 | Method and computer program product for memory management in a mass storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2218007A1 true EP2218007A1 (en) | 2010-08-18 |
EP2218007A4 EP2218007A4 (en) | 2012-10-10 |
Family
ID=40717969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP08857080A Withdrawn EP2218007A4 (en) | 2007-12-05 | 2008-12-02 | Method and computer program product for memory management in a mass storage device |
Country Status (4)
Country | Link |
---|---|
US (1) | US8347054B2 (en) |
EP (1) | EP2218007A4 (en) |
SE (1) | SE531837C2 (en) |
WO (1) | WO2009072970A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956745A (en) * | 1997-04-23 | 1999-09-21 | Novell, Inc. | System and method for automatically resizing a disk drive volume |
KR20030061948A (en) * | 2002-01-14 | 2003-07-23 | 엘지전자 주식회사 | : Apparatus storing information and method for controlling the File using its |
US20040098554A1 (en) * | 2000-12-21 | 2004-05-20 | Nicolas Fougerdux | Optimised management method for allocating memory workspace of an onboard system and corresponding onboard system |
US6757801B1 (en) * | 2000-10-26 | 2004-06-29 | International Business Machines Corporation | Method to modify that an operation needs to be done on a file system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5577243A (en) | 1994-03-31 | 1996-11-19 | Lexmark International, Inc. | Reallocation of returned memory blocks sorted in predetermined sizes and addressed by pointer addresses in a free memory list |
US6070172A (en) * | 1997-03-06 | 2000-05-30 | Oracle Corporation | On-line free space defragmentation of a contiguous-file file system |
FR2818771A1 (en) * | 2000-12-21 | 2002-06-28 | Bull Cp8 | METHOD OF DYNAMICALLY ALLOCATING MEMORY BY ELEMENTARY MEMORY BLOCKS TO A DATA STRUCTURE, AND EMBEDDED SYSTEM THEREOF |
US7272698B2 (en) * | 2003-03-19 | 2007-09-18 | Autodesk, Inc. | Heap memory management |
US8078636B2 (en) * | 2005-08-24 | 2011-12-13 | Temporal Dynamics, Inc. | Database heap management system with variable page size and fixed instruction set address resolution |
US7827373B2 (en) * | 2005-10-31 | 2010-11-02 | Honeywell International Inc. | System and method for managing a short-term heap memory |
WO2007081638A2 (en) * | 2005-12-21 | 2007-07-19 | Sandisk Corporation | Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system |
FR2899353B1 (en) | 2006-03-31 | 2008-06-27 | Infovista Sa Sa | MEMORY MANAGEMENT SYSTEM FOR REDUCING MEMORY FRAGMENTATION |
-
2007
- 2007-12-05 SE SE0702750A patent/SE531837C2/en unknown
-
2008
- 2008-12-02 US US12/746,087 patent/US8347054B2/en active Active - Reinstated
- 2008-12-02 EP EP08857080A patent/EP2218007A4/en not_active Withdrawn
- 2008-12-02 WO PCT/SE2008/051392 patent/WO2009072970A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956745A (en) * | 1997-04-23 | 1999-09-21 | Novell, Inc. | System and method for automatically resizing a disk drive volume |
US6757801B1 (en) * | 2000-10-26 | 2004-06-29 | International Business Machines Corporation | Method to modify that an operation needs to be done on a file system |
US20040098554A1 (en) * | 2000-12-21 | 2004-05-20 | Nicolas Fougerdux | Optimised management method for allocating memory workspace of an onboard system and corresponding onboard system |
KR20030061948A (en) * | 2002-01-14 | 2003-07-23 | 엘지전자 주식회사 | : Apparatus storing information and method for controlling the File using its |
Non-Patent Citations (1)
Title |
---|
See also references of WO2009072970A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009072970A1 (en) | 2009-06-11 |
SE0702750L (en) | 2009-06-06 |
SE531837C2 (en) | 2009-08-25 |
EP2218007A4 (en) | 2012-10-10 |
US20100257330A1 (en) | 2010-10-07 |
US8347054B2 (en) | 2013-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745316B2 (en) | System and method of managing indexation of flash memory | |
US7647355B2 (en) | Method and apparatus for increasing efficiency of data storage in a file system | |
US8612488B1 (en) | Efficient method for relocating shared memory | |
US7395384B2 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
US7571275B2 (en) | Flash real-time operating system for small embedded applications | |
EP1782211B1 (en) | Fat analysis for optimized sequential cluster management | |
US7734862B2 (en) | Block management for mass storage | |
US7415653B1 (en) | Method and apparatus for vectored block-level checksum for file system data integrity | |
US20080162863A1 (en) | Bucket based memory allocation | |
CN101039278A (en) | Data management method and system | |
CN1461999A (en) | Mothed of dividing large volume storage stocking device | |
US7225314B1 (en) | Automatic conversion of all-zero data storage blocks into file holes | |
TW201025114A (en) | File system for storage device which uses different cluster sizes | |
US6961739B2 (en) | Method for managing directories of large-scale file system | |
KR100907477B1 (en) | Apparatus and method for managing index of data stored in flash memory | |
US7424574B1 (en) | Method and apparatus for dynamic striping | |
US8589652B2 (en) | Reorganization of a fragmented directory of a storage data structure comprised of the fragmented directory and members | |
WO2007097581A1 (en) | Method and system for efficiently managing a dynamic memory in embedded system | |
US7689634B2 (en) | Flexible approach to store attribute information (META-DATA) related to files of a file system | |
WO2010060902A1 (en) | Memory access to a portable data storage medium | |
US8347054B2 (en) | Method and computer program product for memory management in a mass storage device | |
KR100638638B1 (en) | Method for controling flash memory device | |
KR20060095206A (en) | Nand flash memory file system and method for accessing file thereof | |
CN1428970A (en) | Dynamic management method of great number object and its implement equipment | |
KR100746035B1 (en) | Apparatus and method for providing management using linear file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20100531 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA MK RS |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20120910 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 12/00 20060101ALI20120904BHEP Ipc: G06F 3/06 20060101ALI20120904BHEP Ipc: G06F 12/02 20060101AFI20120904BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20170731 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20171212 |