KR20110077934A - 해싱 기반의 데이터 관리 방법 및 장치 - Google Patents
해싱 기반의 데이터 관리 방법 및 장치 Download PDFInfo
- Publication number
- KR20110077934A KR20110077934A KR1020090134620A KR20090134620A KR20110077934A KR 20110077934 A KR20110077934 A KR 20110077934A KR 1020090134620 A KR1020090134620 A KR 1020090134620A KR 20090134620 A KR20090134620 A KR 20090134620A KR 20110077934 A KR20110077934 A KR 20110077934A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- block
- data record
- hash
- bucket
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013523 data management Methods 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims 3
- 230000037431 insertion Effects 0.000 claims 3
- 230000006870 function Effects 0.000 description 20
- 230000000007 visual effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001061260 Emmelichthys struhsakeri Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (20)
- 해싱 기반의 데이터 관리 방법에 있어서,저장 공간을 데이터 영역 및 인덱스 영역으로 분할하는 단계-상기 데이터 영역은 신규 데이터가 기록될 위치에 대한 저장 위치 포인터를 포함함;신규 데이터에 대한 데이터 레코드를 생성하는 단계;상기 저장 위치 포인터를 이용하여 상기 데이터 영역에 상기 데이터 레코드를 저장하는 단계;미리 설정된 해싱 함수를 이용하여 상기 데이터 레코드에 대한 유사 키를 생성하는 단계; 및상기 유사키를 이용하여 상기 해시 디렉토리에서 해시 버킷의 주소를 검색하고, 상기 검색된 해시 주소에 상응하는 해시 버킷에 상기 데이터 레코드에 대한 엔트리를 저장하는 단계를 포함하는 데이터 관리 방법.
- 제1 항에 있어서,상기 데이터 영역은 데이터 레코드가 기록될 데이터 블록을 포함하며,상기 인덱스 영역은 디렉토리 블록과 해시 버킷 블록을 포함하는 것을 특징으로 하는 데이터 관리 방법.
- 제2 항에 있어서,상기 데이터 블록 및 상기 해시 버킷 블록의 엔트리들은 환형 리스트 구조로 연결되는 것을 특징으로 하는 데이터 관리 방법.
- 제1 항에 있어서,상기 저장 위치 포인터는 신규 데이터 레코드가 저장될 데이터 블록 식별 정보, 블록내 위치 정보 및 대체 후보 시각 정보를 포함하며,상기 대체 후보 시각 정보는 상기 데이터 영역내에 포함된 데이터 블록에서 가장 오래된 데이터 레코드에 포함된 시각 정보인 것을 특징으로 하는 데이터 관리 방법.
- 제1 항에 있어서,상기 데이터 레코드를 저장하는 단계 이후에,상기 저장 위치 포인터를 갱신하는 단계를 더 포함하되,상기 저장 위치 포인터의 갱신은 상기 데이터 영역에 포함된 데이터 블록들 중에서 가장 오래된 시각 정보를 포함하는 데이터 레코드의 시각정보, 블록 아이디 및 블록내 위치를 이용하여 갱신하는 것을 특징으로 하는 데이터 관리 방법.
- 제1 항에 있어서,상기 데이터 영역 및 인덱스 영역으로 분할하는 단계 이전에,하기 수학식을 이용하여 상기 데이터 영역 및 상기 인덱스 영역의 크기를 산출하는 단계를 더 포함하는 데이터 관리 방법.Bt= Bf + Bh,Bh= Bb + Bd이고, Bt는 상기 저장 공간의 전체 블록 수를 나타내며, 상기 Bf는 데이터 영역의 블록의 수를 나타내고, 상기 Bh는 인덱스 영역의 블록의 수를 나타내며, 상기 Bb는 해시 버킷의 블록 수를 나타내고, Bd는 디렉토리 블록의 수를 나타내며, 는 해시 버킷의 수가 Bb개일 때 필요한 최대 디렉토리 엔트리의 수를 나타내고, Nd는 블록당 최대 디렉토리 엔트리의 수를 나타내며, 상기 Nr은 블록당 최대 데이터 레코드의 수를 나타내고, Nb는 블록당 최대 버킷 엔트리의 수를 나타내며, loadfactor(f)는 버킷의 평균 적재율을 나타냄.
- 제1 항에 있어서,데이터 검색 명령 및 검색하는 데이터 레코드에 상응하는 키값을 제공받는 단계;상기 해싱 함수를 이용하여 상기 키값에 상응하는 유사키를 생성하는 단계;상기 유사키를 이용하여 상기 인덱스 영역의 디렉토리에서 해시 버킷 주소를 검색하는 단계;상기 검색된 해시 버킷 주소에 상응하는 해시 버킷에서 상기 데이터 레코드에 상응하는 엔트리를 검색하는 단계; 및상기 검색된 엔트리를 이용하여 데이터 레코드를 검색하는 단계를 더 포함하는 데이터 관리 방법.
- 제1 항에 있어서,반납이 필요한 반납 블록 개수를 입력받는 단계;상기 입력된 반납 블록 개수에 상응하여 저장 위치 포인터의 데이터 블록 아이디, 블록내 위치 및 대체 후보 시각 정보를 갱신하는 단계; 및상기 대체 후보 시각 정보보다 오래된 시각 정보를 포함하는 데이터 블록들을 반납 처리하는 단계를 더 포함하는 데이터 관리 방법.
- 제1 항에 있어서,상기 해시 버킷에 오버플로가 발생한 경우, 오버플로 블록에 공간이 있는지를 판단하는 단계;상기 오버플로 블록에 공간이 있는 경우, 상기 오버플로 블록에 상기 데이터 레코드를 위한 엔트리를 기록하는 단계;상기 오버플로 블록에 공간이 없는 경우, 기설정된 해싱 함소를 이용하여 리해싱하여 상기 리해싱된 해시 버킷에 저장할 수 있는 공간이 있는지를 판단하여 저장할 수 있는 공간이 있는 경우, 상기 리해싱된 해시 버킷에 상기 데이터 레코드를 위한 엔트리를 저장하는 단계를 더 포함하는 데이터 관리 방법.
- 제9 항에 있어서,상기 리해싱된 해시 버킷에 저장할 수 있는 공간이 없는 경우, 최초 해싱에 의해 선택된 해시 버킷의 가장 오래된 엔트리를 상기 데이터 레코드의 엔트리로 덮어쓰는 단계를 더 포함하는 데이터 관리 방법.
- 해싱 기반의 데이터를 관리하는 저장 장치에 있어서,저장 공간을 데이터 영역 및 인덱스 영역으로 분할하는 분할부-상기 데이터 영역은 신규 데이터가 기록될 위치에 대한 저장 위치 포인터를 포함함;신규 데이터에 대한 데이터 레코드를 생성하고, 상기 저장 위치 포인터를 이용하여 상기 데이터 영역에 상기 데이터 레코드를 저장하는 삽입부; 및미리 설정된 해싱 함수를 이용하여 상기 데이터 레코드에 대한 유사 키를 생성하는 해시 계산부를 포함하되,상기 삽입부는 상기 유사키를 이용하여 상기 해시 디렉토리에서 해시 버킷의 주소를 검색하고, 상기 검색된 해시 주소에 상응하는 해시 버킷에 상기 데이터 레코드에 대한 엔트리를 저장하는 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 데이터 영역은 데이터 레코드가 기록될 데이터 블록을 포함하며,상기 인덱스 영역은 디렉토리 블록과 해시 버킷 블록을 포함하는 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 데이터 블록 및 상기 해시 버킷 블록의 엔트리들은 환형 리스트 구조로 연결되는 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 저장 위치 포인터는 신규 데이터 레코드가 저장될 데이터 블록 식별 정보, 블록내 위치 정보 및 대체 후보 시각 정보를 포함하며,상기 대체 후보 시각 정보는 상기 데이터 영역내에 포함된 데이터 블록에서 가장 오래된 데이터 레코드에 포함된 시각 정보인 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 삽입부는 상기 데이터 레코드를 저장한 후, 상기 저장 위치 포인터를 갱신하되,상기 저장 위치 포인터의 갱신은 상기 데이터 영역에 포함된 데이터 영역의 블록들 중에서 가장 오래된 시각 정보를 포함하는 데이터 레코드의 시각정보, 블록 아이디 및 블록내 위치를 이용하여 갱신하는 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 분할부는,하기 수학식을 이용하여 상기 데이터 영역 및 상기 인덱스 영역의 크기를 산 출하는 단계를 더 포함하는 저장 장치.Bt= Bf + Bh,Bh= Bb + Bd이고, Bt는 저장 공간의 전체 블록 수를 나타내며, 상기 Bf는 데이터 영역의 블록의 수를 나타내고, 상기 Bh는 인덱스 영역의 블록의 수를 나타내며, 상기 Bb는 해시 버킷의 블록 수를 나타내고, Bd는 디렉토리 블록의 수를 나타내며, 는 해시 버킷의 수가 Bb개일 때 필요한 최대 디렉토리 엔트리의 수를 나타내고, Nd는 블록당 최대 디렉토리 엔트리의 수를 나타내며, 상기 Nr은 블록당 최대 데이터 레코드의 수를 나타내고, Nb는 블록당 최대 버킷 엔트리의 수를 나타내며, loadfactor(f)는 버킷의 평균 적재율을 나타냄.
- 제11 항에 있어서,데이터 검색 명령 및 검색하는 데이터 레코드에 상응하는 키값을 제공받는 입력부; 및상기 해시 계산부를 통해 상기 키값에 상응하는 유사키를 생성하며, 상기 유사키를 이용하여 상기 인덱스 영역의 디렉토리에서 해시 버킷 주소를 검색하고, 상기 검색된 해시 버킷 주소에 상응하는 해시 버킷에서 상기 데이터 레코드에 상응하는 엔트리를 검색하며, 상기 검색된 엔트리를 이용하여 데이터 레코드를 검색하는 검색부를 더 포함하는 저장 장치.
- 제17 항에 있어서,상기 입력부를 통해 입력된 반납 블록 개수에 상응하여 저장 위치 포인터의 블록 아이디, 블록내 위치 및 대체 후보 시각 정보를 갱신하고, 상기 대체 후보 시각 정보보다 오래된 시각 정보를 포함하는 데이터 블록들을 반납 처리하는 반납부를 더 포함하는 저장 장치.
- 제11 항에 있어서,상기 삽입부는 상기 해시 버킷에 오버플로가 발생한 경우, 오버플로 블록에 공간이 있는지를 판단하여 상기 오버플로 블록에 공간이 있는 경우, 상기 오버플로 블록에 상기 데이터 레코드를 위한 엔트리를 기록하고,상기 오버플로 블록에 공간이 없는 경우, 기설정된 해싱 함소를 이용하여 리해싱하여 상기 리해싱된 해시 버킷에 저장할 수 있는 공간이 있는지를 판단하여 저 장할 수 있는 공간이 있는 경우, 상기 리해싱된 해시 버킷에 상기 데이터 레코드를 위한 엔트리를 저장하는 것을 특징으로 하는 저장 장치.
- 제11 항에 있어서,상기 삽입부는,상기 리해싱된 해시 버킷에 저장할 수 있는 공간이 없는 경우, 최초 해싱에 의해 선택된 해시 버킷의 가장 오래된 엔트리를 상기 데이터 레코드의 엔트리로 덮어쓰는 것을 특징으로 하는 저장 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090134620A KR101072558B1 (ko) | 2009-12-30 | 2009-12-30 | 해싱 기반의 데이터 관리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090134620A KR101072558B1 (ko) | 2009-12-30 | 2009-12-30 | 해싱 기반의 데이터 관리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110077934A true KR20110077934A (ko) | 2011-07-07 |
KR101072558B1 KR101072558B1 (ko) | 2011-10-11 |
Family
ID=44917461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090134620A KR101072558B1 (ko) | 2009-12-30 | 2009-12-30 | 해싱 기반의 데이터 관리 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101072558B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014003249A1 (ko) * | 2012-10-17 | 2014-01-03 | 주식회사 리얼타임테크 | 해쉬를 이용한 전문 기반 논리 연산 수행 방법 |
WO2018080188A1 (ko) * | 2016-10-26 | 2018-05-03 | 주식회사 리얼타임테크 | 데이터베이스 클러스터링 장치 및 그 방법 |
KR20180121202A (ko) * | 2017-04-28 | 2018-11-07 | 한양대학교 에리카산학협력단 | 비휘발성 메모리 저장 장치를 위한 하이브리드 해시 인덱스 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101977575B1 (ko) | 2012-09-28 | 2019-05-13 | 삼성전자 주식회사 | 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511190A (en) | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
KR100325688B1 (ko) | 1999-11-19 | 2002-02-25 | 오길록 | 해쉬 인덱스 구조의 확장 해슁 디렉토리 분할 시점 제어방법 및 이를 이용한 엔트리 삽입, 삭제, 검색 방법 |
KR100899097B1 (ko) | 2007-05-11 | 2009-05-25 | 한국과학기술원 | 복수의 인덱싱 정보를 제공하는 방법 및 이를 이용한 캐쉬메모리 장치 |
-
2009
- 2009-12-30 KR KR1020090134620A patent/KR101072558B1/ko active IP Right Grant
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014003249A1 (ko) * | 2012-10-17 | 2014-01-03 | 주식회사 리얼타임테크 | 해쉬를 이용한 전문 기반 논리 연산 수행 방법 |
CN103874996A (zh) * | 2012-10-17 | 2014-06-18 | 实时科技株式会社 | 用于利用散列来执行基于全文的逻辑运算的方法 |
KR101416586B1 (ko) * | 2012-10-17 | 2014-07-08 | 주식회사 리얼타임테크 | 해쉬를 이용한 전문 기반 논리 연산 수행 방법 |
CN103874996B (zh) * | 2012-10-17 | 2017-02-08 | 实时科技株式会社 | 用于利用散列来执行基于全文的逻辑运算的方法 |
WO2018080188A1 (ko) * | 2016-10-26 | 2018-05-03 | 주식회사 리얼타임테크 | 데이터베이스 클러스터링 장치 및 그 방법 |
KR20180121202A (ko) * | 2017-04-28 | 2018-11-07 | 한양대학교 에리카산학협력단 | 비휘발성 메모리 저장 장치를 위한 하이브리드 해시 인덱스 |
Also Published As
Publication number | Publication date |
---|---|
KR101072558B1 (ko) | 2011-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649910B2 (en) | Persistent memory for key-value storage | |
US7831783B2 (en) | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems | |
JP3524428B2 (ja) | 記憶装置、記憶システム、メモリ管理方法及び記録媒体 | |
US8423594B2 (en) | Real-time hash map | |
US5893120A (en) | Methods and apparatus for information storage and retrieval using a hashing technique with external chaining and on-the-fly removal of expired data | |
US7908276B2 (en) | Filesystem having a filename cache | |
US7693875B2 (en) | Method for searching a data page for inserting a data record | |
CN107577436B (zh) | 一种数据存储方法及装置 | |
US20130086121A1 (en) | Path lookup in a hierarchical file system | |
CN108804510A (zh) | 键值文件系统 | |
US20100235565A1 (en) | Apparatus and method to protect metadata against unexpected power down | |
TW201301030A (zh) | 在一記憶體裝置中減少次要位址表檢查之快速轉譯指示器 | |
KR20190019805A (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
CN107016100A (zh) | 一种基于非易失性内存文件系统的元数据管理方法 | |
KR101072558B1 (ko) | 해싱 기반의 데이터 관리 방법 및 장치 | |
CN111459884B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
KR102545067B1 (ko) | 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
JP6089890B2 (ja) | ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム | |
JP2013206154A (ja) | データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム | |
US6961739B2 (en) | Method for managing directories of large-scale file system | |
CN105512325A (zh) | 多版本数据索引的更新、删除与建立方法及装置 | |
Lee et al. | An efficient buffer management scheme for implementing a B-tree on NAND flash memory | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
US8285691B2 (en) | Binary method for locating data rows in a compressed data block | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 |
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: 20141006 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151005 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160929 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170928 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181005 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190911 Year of fee payment: 9 |