KR20090002839A - 플래시 메모리를 위한 색인 스킴 - Google Patents
플래시 메모리를 위한 색인 스킴 Download PDFInfo
- Publication number
- KR20090002839A KR20090002839A KR1020070067129A KR20070067129A KR20090002839A KR 20090002839 A KR20090002839 A KR 20090002839A KR 1020070067129 A KR1020070067129 A KR 1020070067129A KR 20070067129 A KR20070067129 A KR 20070067129A KR 20090002839 A KR20090002839 A KR 20090002839A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- index
- leaf
- nodes
- leaf node
- Prior art date
Links
Images
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims (20)
- 복수의 페이지들을 포함하는 플래시 메모리의 트리 구조에 기반한 색인 방법에 있어서:리프 노드 및 상기 리프 노드와 관련있는 인덱스 노드를 동일한 페이지에 저장하는 단계를 포함하는 것을 특징으로 하는 색인 방법.
- 제 1 항에 있어서,상기 페이지들 각각은 상기 리프 노드 그리고/또는 상기 인덱스 노드를 최대 k(k는 양의 정수)개 저장하는 것을 특징으로 하는 색인 방법.
- 제 2 항에 있어서,상기 플래시 메모리는 상기 페이지 단위로 독출 또는 기입되는 것을 특징으로 하는 색인 방법.
- 제 3 항에 있어서,하나의 페이지에 저장되는 상기 리프 노드 또는 상기 인덱스 노드의 수는 트리 높이에 의존적인 것을 특징으로 하는 색인 방법.
- 제 3 항에 있어서,하나의 페이지에 저장되는 리프/인덱스 노드의 최대 저장 크기는 리프/인덱스 노드의 레벨에 따라서 결정되는 것을 특징으로 하는 색인 방법.
- 제 5 항에 있어서,상기 인덱스 노드는 적어도 하나의 리프 노드를 포함하는 것을 특징으로 하는 색인 방법.
- 제 6 항에 있어서,상기 복수의 인덱스 노드들 중 가장 상위의 인덱스 노드는 루트 노드인 것을 특징으로 하는 색인 방법.
- 제 7 항에 있어서,상기 리프 노드를 정정하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 제 8 항에 있어서,상기 정정 단계는,상기 정정되는 리프 노드와 관련있는 상기 인덱스 노드의 포인터를 변경하는 단계; 그리고상기 정정되는 리프 노드 및 상기 정정된 인덱스 노드를 새로운 페이지에 저 장하는 단계를 포함하는 것을 특징으로 하는 색인 방법.
- 제 7 항에 있어서,상기 리프 노드에 새로운 키 값을 삽입하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 제 10 항에 있어서,상기 키 값 삽입 단계는,상기 새로운 키 값이 삽입될 상기 리프 노드가 가득 찼는지를 판별하는 단계와;상기 새로운 키 값이 삽입될 상기 리프 노드가 가득 찼을 때 상기 리프 노드를 제1 및 제2 리프 노드들로 분리하는 단계; 그리고상기 분리된 제1 및 제2 리프 노드들 중 어느 하나에 상기 새로운 키 값을 삽입하는 단계를 포함하는 것을 특징으로 하는 색인 방법.
- 제 11 항에 있어서,상기 제1 및 제2 리프 노드들은 상기 플래시 메모리의 새로운 페이지들에 각각 저장되는 것을 특징으로 하는 색인 방법.
- 제 12 항에 있어서,상기 키 값 삽입 단계는,상기 새로운 키 값이 삽입된 상기 리프 노드와 관련있는 인덱스 노드가 가득 찼는지 판별하는 단계와;상기 새로운 리프 노드와 관련있는 상기 인덱스 노드가 가득 찼을 때 상기 인덱스 노드를 제1 및 제2 인덱스 노드들로 분리하는 단계; 그리고상기 제1 및 제2 인덱스 노드들의 상위 인덱스 노드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 제 13 항에 있어서,상기 제1 인덱스 노드는 상기 제1 및 제2 리프 노드들 중 하나와 동일한 페이지에 저장되고, 상기 제2 인덱스 노드는 상기 상위 인덱스 노드와 함께 새로운 페이지에 저장되는 것을 특징으로 하는 색인 방법.
- 제 7 항에 있어서,상기 리프 노드 내 키 값을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 제 15 항에 있어서,상기 삭제 단계는,상기 삭제된 리프 노드와 관련있는 인덱스 노드가 다른 리프 노드를 지정하 고 있는 지를 판별하는 단계; 그리고상기 삭제된 리프 노드와 관련있는 인덱스 노드가 다른 리프 노드를 지정하고 있지 않을 때 상기 인덱스 노드를 삭제하는 단계를 포함하는 것을 특징으로 하는 색인 방법.
- 제 16 항에 있어서,상기 삭제 단계는,상기 트리의 루트 노드의 자식 노드의 수가 1일 때 상기 트리의 높이를 1만큼 감소시키는 단계; 그리고상기 루트 노드의 자식 노드를 새로운 루트 노드로 설정하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 제 17 항에 있어서,상기 삭제 단계는,상기 새로운 루트 노드를 새로운 페이지에 저장하는 단계를 더 포함하는 것을 특징으로 하는 색인 방법.
- 복수의 페이지들을 포함하는 플래시 메모리; 그리고상기 플래시 메모리를 액세스하는 프로세서를 포함하되;상기 프로세서는 청구항 1에 기재된 색인 방법을 수행하는 것을 특징으로 하 는 시스템.
- 복수의 페이지들을 포함하는 SSD(Solid State Disk); 그리고상기 SSD를 액세스하는 프로세서를 포함하되;상기 프로세서는 리프 노드 및 상기 리프 노드와 관련있는 인덱스 노드를 동일한 페이지에 저장하는 것을 특징으로 하는 시스템.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070067129A KR100922389B1 (ko) | 2007-07-04 | 2007-07-04 | 플래시 메모리를 위한 색인 스킴 |
US12/167,324 US9058253B2 (en) | 2007-07-04 | 2008-07-03 | Data tree storage methods, systems and computer program products using page structure of flash memory |
TW097125122A TWI515561B (zh) | 2007-07-04 | 2008-07-03 | 使用快閃記憶體之頁結構的資料樹儲存方法、系統以及電腦產品 |
CN2008101319860A CN101339538B (zh) | 2007-07-04 | 2008-07-04 | 使用页结构的数据树存储方法、系统和计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070067129A KR100922389B1 (ko) | 2007-07-04 | 2007-07-04 | 플래시 메모리를 위한 색인 스킴 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090002839A true KR20090002839A (ko) | 2009-01-09 |
KR100922389B1 KR100922389B1 (ko) | 2009-10-19 |
Family
ID=40213609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070067129A KR100922389B1 (ko) | 2007-07-04 | 2007-07-04 | 플래시 메모리를 위한 색인 스킴 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9058253B2 (ko) |
KR (1) | KR100922389B1 (ko) |
CN (1) | CN101339538B (ko) |
TW (1) | TWI515561B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120038809A (ko) * | 2010-10-14 | 2012-04-24 | 삼성전자주식회사 | 플래시 메모리의 색인 방법 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612668B2 (en) * | 2008-11-24 | 2013-12-17 | Juniper Networks, Inc. | Storage optimization system based on object size |
TWI407441B (zh) * | 2009-03-20 | 2013-09-01 | Phison Electronics Corp | 快閃記憶體寫入方法及使用此方法的儲存系統與控制器 |
TWI385518B (zh) * | 2009-03-20 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的資料儲存方法及儲存系統 |
CN101650689B (zh) * | 2009-09-16 | 2011-10-26 | 中兴通讯股份有限公司 | 一种非易失性数据的存储和检索方法及装置 |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8700670B2 (en) * | 2010-04-12 | 2014-04-15 | Symantec Corporation | Insert optimization for B+ tree data structure scalability |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US8527546B2 (en) | 2010-11-25 | 2013-09-03 | International Business Machines Corporation | Generating a checkpoint image for use with an in-memory database |
US9158670B1 (en) | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US9155320B2 (en) * | 2011-07-06 | 2015-10-13 | International Business Machines Corporation | Prefix-based leaf node storage for database system |
US8375012B1 (en) * | 2011-08-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | Computer indexes with multiple representations |
US8924632B2 (en) | 2011-09-16 | 2014-12-30 | Apple Inc. | Faster tree flattening for a system having non-volatile memory |
CN103164431B (zh) * | 2011-12-13 | 2016-04-20 | 北京神州泰岳软件股份有限公司 | 关系型数据库的数据存储方法和存储系统 |
CN103518364B (zh) * | 2013-03-19 | 2016-03-09 | 华为技术有限公司 | 分布式存储系统的数据更新方法及服务器 |
US20150186550A1 (en) * | 2013-12-26 | 2015-07-02 | Nandan MARATHE | Append-Only B-Tree Cursor |
US10956050B2 (en) | 2014-03-31 | 2021-03-23 | Sandisk Enterprise Ip Llc | Methods and systems for efficient non-isolated transactions |
US9916356B2 (en) | 2014-03-31 | 2018-03-13 | Sandisk Technologies Llc | Methods and systems for insert optimization of tiered data structures |
US10572442B2 (en) * | 2014-11-26 | 2020-02-25 | Microsoft Technology Licensing, Llc | Systems and methods for providing distributed tree traversal using hardware-based processing |
CN109284299B (zh) * | 2015-06-08 | 2021-08-10 | 南京航空航天大学 | 重构具有存储感知的混合索引的方法 |
US10133764B2 (en) * | 2015-09-30 | 2018-11-20 | Sandisk Technologies Llc | Reduction of write amplification in object store |
US9619165B1 (en) | 2015-10-30 | 2017-04-11 | Sandisk Technologies Llc | Convertible leaf memory mapping |
KR20170073944A (ko) | 2015-12-21 | 2017-06-29 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법 |
US10747676B2 (en) | 2016-02-23 | 2020-08-18 | Sandisk Technologies Llc | Memory-efficient object address mapping in a tiered data structure |
US10289340B2 (en) | 2016-02-23 | 2019-05-14 | Sandisk Technologies Llc | Coalescing metadata and data writes via write serialization with device-level address remapping |
US10185658B2 (en) | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
FR3051574A1 (fr) | 2016-05-20 | 2017-11-24 | Proton World Int Nv | Gestion du stockage dans une memoire flash |
FR3055992A1 (fr) * | 2016-09-09 | 2018-03-16 | Proton World International N.V. | Gestion d'index dans une memoire flash |
KR20190031692A (ko) * | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법 |
FR3072476A1 (fr) | 2017-10-13 | 2019-04-19 | Proton World International N.V. | Unite logique de memoire pour memoire flash |
CN110162525B (zh) * | 2019-04-17 | 2023-09-26 | 平安科技(深圳)有限公司 | 基于b+树的读写冲突解决方法、装置及存储介质 |
CN112486403A (zh) * | 2019-09-12 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储对象的元数据的方法、装置和计算机程序产品 |
CA3107299A1 (en) | 2020-01-31 | 2021-07-31 | Rinnai America Corporation | Vent attachment for a tankless water heater |
KR20230120347A (ko) * | 2022-02-09 | 2023-08-17 | 주식회사 티맥스티베로 | 데이터를 인덱스하기 위한 방법 |
CN114791913A (zh) * | 2022-04-26 | 2022-07-26 | 北京人大金仓信息技术股份有限公司 | 数据库的共享内存缓冲池处理方法、存储介质与设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123104A (en) * | 1988-04-08 | 1992-06-16 | International Business Machines Corporation | Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations |
US5893125A (en) * | 1995-01-27 | 1999-04-06 | Borland International, Inc. | Non-modal database system with methods for incremental maintenance |
US5694608A (en) * | 1995-01-27 | 1997-12-02 | Borland International, Inc. | Non-modal database system wth methods for incremental maintenance of live reports |
US5568423A (en) * | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
JP3707854B2 (ja) * | 1996-03-01 | 2005-10-19 | 株式会社東芝 | キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法 |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP3212960B2 (ja) | 1999-02-04 | 2001-09-25 | 埼玉日本電気株式会社 | フラッシュメモリを利用したデータ管理方法 |
KR100328129B1 (ko) | 1999-12-27 | 2002-03-12 | 오길록 | 메모리 계층 구조를 고려한 압축, 탐색 및 새로운 항목삽입 방법 |
KR20040072875A (ko) | 2003-02-11 | 2004-08-19 | 유비시스테크놀러지 주식회사 | 낸드 플래시 메모리를 이용한 저장장치 |
US7120637B2 (en) * | 2003-05-30 | 2006-10-10 | Microsoft Corporation | Positional access using a b-tree |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
WO2005066793A2 (en) | 2003-12-30 | 2005-07-21 | Sandisk Corporation | Non-volatile memory and method with non-sequential update block management |
US7383276B2 (en) * | 2004-01-30 | 2008-06-03 | Microsoft Corporation | Concurrency control for B-trees with node deletion |
US7761474B2 (en) * | 2004-06-30 | 2010-07-20 | Sap Ag | Indexing stored data |
KR101102754B1 (ko) | 2005-02-28 | 2012-01-05 | 삼성전자주식회사 | 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법 |
KR20060106993A (ko) | 2005-04-06 | 2006-10-13 | 주식회사 에스원 | 플래시 메모리 데이터 저장 방법 |
TWM288401U (en) | 2005-07-15 | 2006-03-01 | Genesys Logic Inc | Highly efficient data characteristics recognition device for flash memory |
US7937375B2 (en) * | 2007-07-19 | 2011-05-03 | Oracle International Corporation | Method and apparatus for masking index values in a database |
US7856437B2 (en) * | 2007-07-31 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Storing nodes representing respective chunks of files in a data store |
-
2007
- 2007-07-04 KR KR1020070067129A patent/KR100922389B1/ko active IP Right Grant
-
2008
- 2008-07-03 TW TW097125122A patent/TWI515561B/zh active
- 2008-07-03 US US12/167,324 patent/US9058253B2/en active Active
- 2008-07-04 CN CN2008101319860A patent/CN101339538B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120038809A (ko) * | 2010-10-14 | 2012-04-24 | 삼성전자주식회사 | 플래시 메모리의 색인 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN101339538A (zh) | 2009-01-07 |
US20090012976A1 (en) | 2009-01-08 |
US9058253B2 (en) | 2015-06-16 |
KR100922389B1 (ko) | 2009-10-19 |
TWI515561B (zh) | 2016-01-01 |
CN101339538B (zh) | 2012-12-19 |
TW200907677A (en) | 2009-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100922389B1 (ko) | 플래시 메모리를 위한 색인 스킴 | |
US10831734B2 (en) | Update-insert for key-value storage interface | |
KR101397353B1 (ko) | Key-value 스토어를 포함하는 메모리 시스템 | |
CN101124555B (zh) | 具有多流更新的非易失性存储器和方法 | |
US8055832B2 (en) | Management of memory blocks that directly store data files | |
CN109977034B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
US10366003B2 (en) | Controller, storage device, and computer program product for writing and transfer process | |
EP1988474A1 (en) | System and method of managing indexation of flash memory | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
KR20040038706A (ko) | 비휘발성 메모리 시스템에서 아우트-오브-시퀀스 기록프로세스를 효과적으로 수행하기 위한 방법 및 장치 | |
CN112506814B (zh) | 一种存储器及其控制方法与存储系统 | |
US20210216448A1 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
KR101348255B1 (ko) | 고정된 크기의 저장 블록을 가진 메모리 시스템에서데이터의 변환된 유닛의 저장 | |
TW200844740A (en) | Use of a direct data file system with a continuous logical address space interface | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US11630595B2 (en) | Methods and systems of efficiently storing data | |
KR20090108695A (ko) | 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법 | |
CN111966281A (zh) | 数据储存装置与数据处理方法 | |
KR101699779B1 (ko) | 플래시 메모리의 색인 방법 | |
Wongchaowart et al. | A content-aware block placement algorithm for reducing PRAM storage bit writes | |
Ross | Modeling the performance of algorithms on flash memory devices | |
KR100977709B1 (ko) | 플래시메모리 저장장치 및 그에 따른 관리 방법 | |
KR100878142B1 (ko) | 플래시 메모리 상에서의 효율적인 동작을 위한 수정된b-트리 인덱스 구성 방법 | |
KR101805059B1 (ko) | 데이터 저장 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120925 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130930 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141001 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20151001 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160930 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180927 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20190930 Year of fee payment: 11 |