SE531837C2 - Förfarande och datorprogramprodukt - Google Patents
Förfarande och datorprogramproduktInfo
- Publication number
- SE531837C2 SE531837C2 SE0702750A SE0702750A SE531837C2 SE 531837 C2 SE531837 C2 SE 531837C2 SE 0702750 A SE0702750 A SE 0702750A SE 0702750 A SE0702750 A SE 0702750A SE 531837 C2 SE531837 C2 SE 531837C2
- Authority
- SE
- Sweden
- Prior art keywords
- stocking
- block
- stored
- size
- blocks
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 4
- 238000007906 compression Methods 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 2
- 238000006062 fragmentation reaction Methods 0.000 claims description 2
- 230000008521 reorganization Effects 0.000 claims description 2
- 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
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method 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
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)
Description
25 30 35 'F fi! tall ...m v30 lå-Sl 2 Metoden skulle kunna användas i en server.
Enligt en andra aspekt av föreliggande uppfinning tillhandahålls en dataprogrampro- dukt, med dataprogramkodsmedel för att få en dator att exekvera metoden ovan när pro- grammet körs på en dator.
Det uppfattas att datorprogramprodukten är anpassad för att utföra utföringsformer som hänför sig till det ovan beskrivna förfarandet, såsom är tydligt från den bifogade upp- sättningen av osjälvständiga systempatentkrav.
Sålunda är det koncept som ligger bakom föreliggande uppfinning att tillhandahålla en minneshanteringsalgoritm som innefattar så kallad stockpiling i en masslagringsanord- ning.
Uppfinningen är användbar för routing, forensiskt nätverksarbete, brandväggupp- gifter, qos-klassificering, trafikformning, intrångsdetektion, IPSEC, lVlPLS, etc, och såsom komponent i teknologier för att lösa vilken som helst av de problem som nämnts.
Ytterligare särdrag hos och fördelar med föreliggande uppfinning beskrivs av de bilagda osjälvståndiga patentkraven.
Kort beskrivning av ritningarna För att ytterligare förklara uppfinningen kommer nu utföringsformer som valts såsom exempel att beskrivas närmare med hänvisning till ritningarna, av vilka: Fig i illustrerar stockpiling.
Beskrivning av utföringsformer av uppfinningen Nu hänvisas till Fig 1 som illustrerar en utföringsform av föreliggande uppfinning inkluderande konceptet "stockpiling".
En masslagringsanordning innehåller filer med olika storlekar. l\/led storlek, avser vi hur många disk- eller minnesblock som krävs för att lagra filen och vi beaktar filer som använder samma grundtal block att vara av samma storlek. Två filer som kräver 5,1 och 6 block anses båda med andra ord att respektive ha storlek 6, 10 15 20 25 30 35 3 Vårt mål är att lagra alla filer konsekutivt på masslagringsanordningen så att läs- /skrivanordningen inte behöver "hoppa" mellan olika platser när en fil läses/skrivs. istället läser/skriver den bara "nästa" block upprepade gånger tills arbetet är klart. Såsom ett första steg, kommer vi dock att beskriva en metod där alla filer av samma storlek, utom en, lagras konsekutivt. Vi kommer därefter att beskriva hur man modifierar metoden så att alla filer lag- ras konsekutivt.
Därför kommer vi nu att anta att godtycklig fil kan lagras i två delar, men inte mer än två konsekutiva delar. l den följande beskrivningen kommer vi även att använda termen min- nesaccess att betyda läsning eller skrivning av ett block.
En så kallad "stockling" är ett hanterat minnesområde av s block (dvs b bitar block) som kan flyttas och lagras i två delar för att förhindra fragmentering. Vår ansats är att använda en stockling för att lagra varje datatil i masslagringsanordningen. Den associeras med information om sin storlek s, vare sig området är eller inte är delat i två delar och lokali- seringen och storleken för de respektive delarna. Dessutom måste varje stockling vara asso- cierad med adressen till pekaren till datastrukturen som lagras i stocklingen sä att den kan uppdateras när stocklingen flyttas. Slutligen är den associerad med en (eventuellt tom) pro- cedur för att koda lokaliseringen och storleken för den andra delen och storleken för den för- sta delen i det första blocket. Låt ns vara antalet stocklingar med storlek s. Dessa stocklingar lagras i, eller utgör faktiskt, en stockpile som är ett minnesområde av intilliggande sns-block.
En stockpile kan flyttas ett block till vänster genom att flytta ett block från den vänstra sidan av stockpiten till den högra sidan av stockpilen (informationen lagrad i blocket i blocket längst åt vänster flyttas till ett fritt block till höger om blocket längst åt höger). Att flytta en stockpile ett block till höger åstadkoms genom att flytta blocket längst ät höger till den vänstra sidan av stockpilen. Stocklingen längst át höger i en stockpile lagras eventuellt i två delar medan alla andra stocklingar är intilliggande. Om den lagras i två delar, lagras den vänstra delen av stocklingen i den högra änden av stockpilen och den högra änden av stocklingen vid den vänstra änden av stockpilen.
Antag att vi har c olika storlekar av stocklingar sl, s2, sc där si > si+1. Vi organl' serar minnet så att stockpilarna lagras i sorterad ordning genom att öka storlek i tillväxtrikt- ningen. Antag vidare, utan att förlora allmängiltigheten, att tillväxtriktningen är till höger. Allo- kerering och deallokeriingav en stockling med storlek si från stockpile i åstadkoms enligt följande: Allokera si. 10 15 20 25 30 35 4 Flytta upprepade gånger var och en av stockpilama 1, 2, i -1 ett block till höger tills alla stockpilar till höger om stockpile i har flyttats si block. Vi har nu ett fritt område av si block till höger om stockpile i. Om stocklingen längst åt höger av stockpile i lagras i ett stycke, återrför det fria området. Flytta annars den vänstra delen av stocklingen längst åt höger till änden av det fria området (utan att ändra ordningen mellan blocken). Återrför sedan området med de intilliggande si-blocken och som börjar där stocklingen längst åt höger bör- jade innan dess del längst åt vänster flyttades.
Deallokera si.
Lokalisera stocklingen längst åt höger som lagras i ett stycke (det är antingen stock- lingen längst åt höger själv eller stocklingen till vänster om stocklingen längst åt höger) och flytta den till lokaliseringen för stocklingen som ska deallokeras. Reversera sedan alloke- ringsproceduren. l Fig 1 illustrerar vi stockpilingstekniken i sammanhanget av att infoga och radera strukturer med storlek 2 och 3 i ett hanterat mlnnesområde med stocklingsstorlekar 2, 3 och 5. Varje struktur består av ett antal block och dessa illustreras av kvadrater med en grå nyans och en symbol. Nyansen används för att skilja mellan block inuti en struktur och sym- bolen används för att skilja mellan block från olika strukturer. Vi börjar med en 5-struktur och sedan i (a) infogar vi en 2-struktur efter att allokerat en 2-stockling. Observera att 5-struktu- ren lagras i två delar där den vänstra delen börjar vid det 6:e blocket och den högra delen vid det 3:e blocket. l (b) allokerar och infogar vi 3 block och till följd av detta återrförs 5-struktu- ren till ett stycke. En enkel radering av 2-strukturen utförs i (c), vilket leder till att båda åter- stående strukturerna lagras i två delar. Slutligen infogas i (d) en ny 3-struktur. Detta kräver att vi först flyttar 5-strukturen 3 block till höger. Sedan flyttas den vänstra delen (enbart det vita blocket i detta fall) av den gamla 3-strukturen till bredvid 5-strukturen och slutligen kan den nya 3-strukturen infogas. Kostnaden för att allokera en si-stockling och infoga en mot- svarande struktur beräknas enligt följande. Först måste vi spendera (i - 1) si minnesaccesser för att flytta de andra stockpilarna för att skapa det fria utrymmet vid änden av stockpilen. Vi har då två fall: (i) Infoga datastrukturen direkt in i det fria området. Kostnaden för detta är noll minnesaccesser eftersom vi redan fått tillgång till det fria området när stockpilama flyttades (infogning kan göras samtidigt medan stockpilarna flyttas). (ii) Vi behöver flytta delen längst åt vänster av stocklingen längst åt höger. Dock ockuperar den ett område som kommer att skrivas över när datastrukturen infogas. Därför får vi en ytterligare si minnesaccesser för att infoga datastrukturen. För deallokering får vi en ytterligare kostnad för si minnesaccesser eftersom vi kan behöva skriva över den raderade stocklingen någonstans i mitten av stock- pilen. Vi behöver även redovisa för kostnaden för att uppdatera pekarna till datastrukturerna 10 15 20 25 30 35 5 som flyttas. Eftersom stockpilarna är organiserade med ökande storlek, behöver högst en pekare uppdateras för varje flyttad stockpile plus två extra pekaruppdateringar i den aktuella stockpilen. Därav följer att kostnaden för att infoga en si block datastruktur när stockpile min- neshantering används är isi + (i - 1) + 2 = isi + i + 1 minnesaccesser och kostnaden för radering är (i + 1)-si+(i - 1)+2 = (i + 1)~si+i+1 minnesaccesser.
Enligt en annan utföringsform av föreliggande uppfinning kan stockpiling användas även om det inte är möjligt att lagra datastrukturer i två delar. i varje stockpile har vi en dummystockling och säkerställer att det alltid är dummystocklingarna som lagras i två delar efter omorganisation.
Genom att använda stockpiling kan vi begränsa kostnaden för att infoga och radera en ai-blockstrukturtill högst iai + i + 1 minnesaccesser respektive (i + 1)-ai + i + 1 minnesac- cesser, där a1 > a2 > > ak är de olika allokeringsenheterna som är tillgängliga. Beakta, såsom ett exempel, ett fall där den maximala allokeringsenheten (datafilstorleken) är s (7, 128) = 364 block och antagande att vi kräver maximal kompression, mäste vi använda 364 olika allokeringsenheter. Till följd av detta, ai = 364 - (i - 1) och kostnad i det värsta fallet för att infoga en a182 = 364 - (182 - 1) = 183 -blockstruktur är 33489 minnesaccesser. För att reducera minneshanteringsomkostnadema mäste vi reducera antalet allokeringsenheter.
Detta àstadkoms genom att minska kompressionskvoten. När vertikal segmentering används, slösarvi 128 bitar i varje blad i den övre delen för att lagra pekare och viss ytterli- gare information som krävs när stockpiling används. Genom att använda dessa bitar kan vi även lagra variablerna k, r, och I som krävs för att köra underhållet av varje blockträd i den undre delen på stället. Den totala kostnaden för detta är 162-128 = 20736 bitar vilket amorte- ras över 91935 intervall, vilket ger en försumbar omkostnad per intervall. Därmed är den maximala relativa storleken ungefär 144 bitar per intervall även med vertikal segmentering.
Antag att vi ökar lagring med en faktor C, för någon konstant C > 1. Vi kan sedan allokera (och använda) 364 block även om vi bara behöver A block, under förutsättning att AC 2 364.
Vidare kan vi hoppa över alla allokeringsenheter mellan A-1 och 364. Genom att tillämpa detta upprepade gånger, erhåller vi en reducerad uppsättning av allokeringsenheter där ai = ceil(a1/C^(i-1)). För att ytterligare demonstrera detta, väljer vi C = 2, vilket motsvarar en 100 % storleksökning, och utför en grundlig värsta fall-analys av uppdateringskostnaden. Det första steget är att beräkna uppsättningen av allokeringsenheter och infognings- och rade- ringskostnaden för att varje allokeringsenhet (se Tabell 9). Före undersökning av värsta falls uppdateringskostnad, observerar vi att 364 + 730 = 1094 minnesaccesser är en undre gräns på uppdateringskostnaden som är oberoende av C. Detta är en följd av att helt enkelt rekon- 10 15 20 25 30 83? 6 struera en 364-blockstruktur utan att involvera minneshanteraren och samtidigt deallokera den andra 364-blockstrukturen till en kostnad för 730 minnesaccesser. För vårt speciella val av C, måste ytterligare 367 minnesaccesser för att allokera en 182-blockstruktur adderas till den undre gränsen, vilket leder till en verklig undre gräns av 1461 minnesaccesser. I värsta fallet krävs en infogning av en allokeringsenhet och en radering av en annan för båda block- träden. Dock är inte alla kombinationer av infognings- och raderingskostnader möjliga. Den första observationen är att radering av en allokeringsenhet följs av infogning av den nästa mindre eller den nästa större allokeringsenheten. Vi kan även välja bort kombinationerna där storleken på den raderade allokeringsenheten från ett blockträd är samma som den infogade allokeringsenheten från det andra blockträdet eftersom detta eliminerar en deallokerings- kostnad. Genom att jämföra kostnader för de återstående kombinationerna i tabellen ovan, konstaterar vi att värsta fallet inträffar vid radering av ett 364-block- och en 91-blockstruktur och infogning av två 182-blockstrukturer vilket leder till en total kostnad för 730 + 368 + 2-367 = 1832 minnesaccesser. Genom att addera den enkla minnesaccessen som krävs för att uppdatera den övre delen ger en total värsta fallets inkrementell uppdateringskostnad av 1833 minnesaccesser för en 100 % storleksökning. För att tillhandahålla en bättre förståelse av eventuella kompromisser mellan kompressionskvot och garanterade uppdateringskostna- der har vi utfört dessa databeräkningar för olika värden av C och resultatet presenteras i Tabell 10. Dessa siffror ska jämföras med 134322 minnesaccesser som är den uppdate- ringskostnad som erhålls för C = 1. Notera även att för C .>. 3,31, är värsta fallets uppdate- ringskostnad lika med den generella undre gränsen som beräknades ovan plus kostnaden för att allokera en a2-blockstruktur.
Tabell 9: lnfognings- och raderingskostnader för de olika allokeringsenheterna erhållna för C = 2.
Tabell 10: Förhållande mellan lagrings- och uppdateringskostnader.
Föreliggande uppfinning har beskrivits genom givna exempel och utföringsformer som inte är avsedda att begränsa uppfinningen till dessa. Fackmannen inser att bifogade uppsättning av patentkrav framställer andra fördelaktiga utföringsformer.
Claims (6)
1. Metod för minneshantering i en masslagringsanordning, varvid nämnda metod innefattar stegen: - att tillhandahålla ett hanterat minnesområde av s block som kan flyttas och lagras i två delar för att förhindra fragmentering, där det hanterade minnesområdet (stocklingen) associeras med information om sin storlek s, vare sig området är eller inte är delat i två delar och lokaliseringen och storleken för de respektive delarna; - att associera varje stockling med adressen till pekaren till datastrukturen som lag- ras i stockiingen så den kan uppdateras när stocklingen flyttas; - att associera stocklingen med en, eventuellt tom, procedur för att koda lokalise- ringen och storleken för den andra delen och storleken för den första delen i det första blocket, där ns är antalet stocklingar med storlek s; - att lagra stocklingama i en stockpile som är ett minnesområde av intilliggande sns- block, vilken stockpile kan flyttas ett block till vänster genom att flytta ett block fràn den vänstra sidan av stockpilen till den högra sidan av stockpilen (informationen som lagras i blocket i blocket längst åt vänster flyttas till ett fritt block till höger om blocket längst åt höger). - att organisera minnet så att stockpilarna lagras i sorterad ordning genom att öka storlek i tillväxtriktningen, dessutom innefattande stegen: - att upprepade gånger flytta var och en av stockpilarna 1, 2, , i -1 ett block till höger tills alla stockpllar till höger om stockpile i har flyttats si block, eller den vänstra delen av stocklingen längst åt höger till änden av det fria området (utan att ändra ordningen mellan blocken); att återställa området med de intilliggande si-blocken med början där stocklingen längst åt höger började innan dess del längst åt vänster flyttades; - att lokalisera stocklingen längst åt höger som lagras i ett stycke (det är antingen stocklingen längst åt höger själv eller stocklingen till vänster om stocklingen längst àt höger) och att flytta den till lokaliseringen för stocklingen som ska deallokeras, och reversera alloke- ringsproceduren.
2. Metod enligt krav 1, i vilken steget att minska kompressionskvot är innefattad.
3. Metod enligt krav 1 eller 2, i vilken en dummystockling är tillhandahållen och lag- ras i två delar efter omorganisation.
4. Metod enligt något av kraven 1~3, i vilken metoden används i en server. 8
5. Datorprogramsprodukt som gàr att ladda in direkt i internmlnnet hos en digitalda- tor, kännetecknad därav att nämnda produkt innefattar mjukvarukodsmedel för att utföra steget enligt krav 1.
6. Datorprogramsprodukt innefattande ett datorläsbart medium, kännetecknad därav att pà nämnda medium finns det lagrat datorprogramkodsmedel, när det är laddat len dator, för att förmå datorn att utföra stegen enligt krav 1.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0702750A SE531837C2 (sv) | 2007-12-05 | 2007-12-05 | Förfarande och datorprogramprodukt |
US12/746,087 US8347054B2 (en) | 2007-12-05 | 2008-12-02 | Method and computer program product for memory management in a mass storage device |
EP08857080A EP2218007A4 (en) | 2007-12-05 | 2008-12-02 | METHOD AND COMPUTER PROGRAM PRODUCT FOR MEMORY MANAGEMENT IN AN AUXILIARY MEMORY DEVICE |
PCT/SE2008/051392 WO2009072970A1 (en) | 2007-12-05 | 2008-12-02 | Method and computer program product for memory management in a mass storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0702750A SE531837C2 (sv) | 2007-12-05 | 2007-12-05 | Förfarande och datorprogramprodukt |
Publications (2)
Publication Number | Publication Date |
---|---|
SE0702750L SE0702750L (sv) | 2009-06-06 |
SE531837C2 true SE531837C2 (sv) | 2009-08-25 |
Family
ID=40717969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE0702750A SE531837C2 (sv) | 2007-12-05 | 2007-12-05 | Förfarande och datorprogramprodukt |
Country Status (4)
Country | Link |
---|---|
US (1) | US8347054B2 (sv) |
EP (1) | EP2218007A4 (sv) |
SE (1) | SE531837C2 (sv) |
WO (1) | WO2009072970A1 (sv) |
Family Cites Families (12)
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 |
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 |
FR2818770A1 (fr) | 2000-12-21 | 2002-06-28 | Bull Cp8 | Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant |
FR2818771A1 (fr) | 2000-12-21 | 2002-06-28 | Bull Cp8 | Procede d'allocation dynamique de memoire par blocs de memoire elementaires a une structure de donnees, et systeme embarque correspondant |
KR20030061948A (ko) | 2002-01-14 | 2003-07-23 | 엘지전자 주식회사 | 정보 저장 장치 및 그를 이용한 파일 관리 방법 |
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 (fr) | 2006-03-31 | 2008-06-27 | Infovista Sa Sa | Systeme de gestion memoire pour la reduction de la fragmentation memoire |
-
2007
- 2007-12-05 SE SE0702750A patent/SE531837C2/sv unknown
-
2008
- 2008-12-02 US US12/746,087 patent/US8347054B2/en active Active - Reinstated
- 2008-12-02 WO PCT/SE2008/051392 patent/WO2009072970A1/en active Application Filing
- 2008-12-02 EP EP08857080A patent/EP2218007A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2009072970A1 (en) | 2009-06-11 |
US20100257330A1 (en) | 2010-10-07 |
EP2218007A1 (en) | 2010-08-18 |
US8347054B2 (en) | 2013-01-01 |
SE0702750L (sv) | 2009-06-06 |
EP2218007A4 (en) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5043820B2 (ja) | 低冗長記憶システムで索引を行う方法 | |
JP4669067B2 (ja) | 動的フラグメントマッピング | |
US8271456B2 (en) | Efficient backup data retrieval | |
US8612488B1 (en) | Efficient method for relocating shared memory | |
US8001134B2 (en) | Method for performing an external (disk-based) sort of a large data file which takes advantage of “presorted” data already present in the input | |
CN103019707A (zh) | 调用栈的解析处理方法及装置 | |
CN108932271B (zh) | 一种文件管理方法及装置 | |
JPH1131096A (ja) | データ格納検索方式 | |
CN106980680B (zh) | 数据存储方法及存储设备 | |
JP5821744B2 (ja) | データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム | |
JP6089890B2 (ja) | ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム | |
CN108829342A (zh) | 一种日志存储方法、***及存储装置 | |
EP4137963A1 (en) | Persistent key value storage device with hashing and method for operating the same | |
US7895164B1 (en) | Efficient checkpoint process | |
US7484068B2 (en) | Storage space management methods and systems | |
KR100954603B1 (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
SE531837C2 (sv) | Förfarande och datorprogramprodukt | |
US9842061B2 (en) | Implementing advanced caching | |
SE532996C2 (sv) | Metod, anordning och datorprogramsprodukt för att representera den del av n-bitars intervall hörande till d-bitars data i ett datakommunikationsnät | |
JP2000181768A (ja) | デ―タ格納検索方式 | |
CN115328922B (zh) | 用于单向链表的数据管理方法、装置及*** | |
CN115185857A (zh) | 一种嵌入式flash数据存储管理方法、***及存储介质 | |
CN113779014A (zh) | 一种数据存储方法、装置、设备和存储介质 | |
KR100876148B1 (ko) | 플래시 메모리 관리장치 및 방법 | |
KR101058059B1 (ko) | 임베디드 파일 시스템의 마운팅 장치 및 그 방법 |