KR20170065374A - 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 - Google Patents
버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 Download PDFInfo
- Publication number
- KR20170065374A KR20170065374A KR1020150171727A KR20150171727A KR20170065374A KR 20170065374 A KR20170065374 A KR 20170065374A KR 1020150171727 A KR1020150171727 A KR 1020150171727A KR 20150171727 A KR20150171727 A KR 20150171727A KR 20170065374 A KR20170065374 A KR 20170065374A
- Authority
- KR
- South Korea
- Prior art keywords
- bucket
- record
- new
- records
- hash
- Prior art date
Links
Images
Classifications
-
- G06F17/30949—
-
- 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
-
- G06F17/3033—
-
- G06F17/30628—
-
- G06F17/30952—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 데이터베이스 내 검색의 효율성을 높이기 위하여 버킷 내 데이터를 미리 정렬해둠으로써 향후 검색의 시간을 단축시키는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법에 관한 것이다. 본 발명은, 통상의 분리 체인 방법을 이용한 해시 충돌 처리 방법에 있어서, 디렉토리의 하나의 버킷 내의 레코드들을 오름차순 또는 내림차순으로 정렬하는 단계; 및 상기 디렉토리에 새로운 레코드를 추가할 때에 상기 버킷 내의 레코드들의 정렬 상태를 유지하는 단계를 포함한다. 따라서, 새로운 레코드가 추가되는 경우에 상기 새로운 레코드를 저장하기 위해 새로운 버킷을 할당받는데, 상기 새로운 버킷은 정렬된 기존의 버킷에 연결하여 버킷 간에 추가적인 정렬을 하지 않도록 함으로써, 해시 테이블의 성능을 향상시키고, 종래의 분리 연쇄방법보다 적은 저장공간 활용, 빠른 삽입, 빠른 검색이 모두 가능하게 된다.
Description
본 발명은 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법에 관한 것으로, 더욱 상세하게는 데이터베이스 내 검색의 효율성을 높이기 위하여 버킷 내 데이터를 미리 정렬해둠으로써 향후 검색의 시간을 단축시키는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 에 관한 것이다.
잘 알려진 바와 같이, 인덱스 자료구조는 레코드를 통해 저장 장치에 원하는 데이터를 빠르게 찾을 수 있는 자료구조이다. 가장 기본적인 인덱스 자료구조는 모든 레코드를 차례로 정렬하는 방법이다. 인덱스는 데이터 파일보다 일반적으로 크기가 작아 인덱스를 탐색하는 것이 데이터 전체를 차례로 탐색하는 것보다는 효율적이다. 하지만 레코드의 개수가 많아지면 많아질수록 원하는 레코드를 찾기 위해 탐색해야 하는 범위가 너무 넓어져 많은 양의 데이터를 관리하기 위해서 대부분의 데이터베이스와 파일 시스템에서는 해시와 트리 인덱스 자료구조를 많이 사용하고 있다.
트리 구조 방법은 파일 내에 저장되어 있는 레코드의 수와 저장 형태 및 위치 등에 영향을 받기 때문에 검색 시간이 많이 소요되고, 최선과 최악의 차이가 많이 발생할 수 있으므로 큰 데이터 셋에서는 효율적이지 못한 문제점이 있다.
해시는 비교가 아닌 계산 방법으로 키의 계수적인 성질을 이용하여 레코드를 검색하는 방법이다. 해시는 기억 공간을 충분히 활용하면서, 일정한 속도로 할 수 있고, 삽입과 제거가 쉬워 컴퓨터의 여러 분야에서 활용되고 있다.
분리 연쇄 방법은 해시 테이블의 각 버킷을 헤드 노드(Head node)로 취급하고, 레코드의 키를 저장하는 부분과 노드 간의 연결 역할을 하는 인덱스 부분을 하나의 버킷으로 구성하고 헤드 노드의 버킷 당 하나의 연결 리스트를 만든다. 각 버킷은 저장 장치에 독립적으로 위치하게 된다.
저장장치를 필요한 만큼만 데이터를 저장하기 위해 충돌이 발생할 때마다 모든 슬롯을 연결 리스트로 연결해 읽는 것은 무작위 접근이 가능하고 접근 속도가 매우 빠른 RAM(Random Access Memory)과 같은 환경에 적합하고 NAND 플래시 메모리의 읽기 속도가 하드 디스크에 비해 빠르고 다른 NAND 플래시 메모리에 비해 빠르긴 하지만 RAM과 비교하여 매우 느린 NAND 플래시 메모리에서는 바로 적용하여 사용하기 어려운 문제점이 있다. 그리고 NAND 플래시 메모리의 최소 읽기 단위는 Bit 단위인 RAM과 달리 페이지(Page)라는 점도 분리 연쇄 방법의 문제 중 하나이다. 작은 하나의 레코드를 읽기 위해 페이지 단위를 계속 쓰고 읽는 것은 손해가 매우 크다.
가장 이상적인 해시 테이블은 레코드의 개수에 맞는 버킷과 슬롯으로 구성된 것이지만, 그 이상적인 레코드가 계속 입력, 삭제되며 변화하는 인덱스 자료구조 특성상 버킷의 크기를 지정하기 어려운 문제가 있다.
변하는 레코드 개수에 성능에서 가장 좋은 결과를 보여주는 것은 버킷의 크기를 낸드 플래시 메모리의 크기와 같게 하는 것이다. 하지만 이 방법은 충돌이 많이 발생하지 않는 해시 테이블에서 실제 필요한 크기보다 훨씬 더 많은 저장 공간이 필요하게 되는 단점이 있다.
가장 좋은 해시 함수는 충돌이 최대한 드물게 일어나고 분포가 잘 되어 있는 상태이지만 분리 연쇄 방법의 버킷 크기를 기존의 하드디스크의 섹터 단위보다 훨씬 큰 플래시 메모리의 페이지 단위로 설정할 경우 저장 장치의 자원 낭비가 심해지고, 메모리 버퍼의 적중률(Hit Rate)을 떨어뜨려 오히려 전체적인 해시 테이블의 성능이 저하될 수도 있다. 충돌이 매우 많이 발생하는 해시는 다른 해시 함수를 사용하는 재해싱을 통해 충돌이 드물게 발생하게 하는 것이 더 효과적이다.
본 발명은 상술한 종래기술의 문제점을 극복하기 위한 것으로서, 새로운 레코드가 추가되는 경우에 상기 새로운 레코드를 저장하기 위해 새로운 버킷을 할당받는데, 상기 새로운 버킷은 정렬된 기존의 버킷에 연결하여 버킷 간에 추가적인 정렬을 하지 않도록 함으로써, 해시 테이블의 성능을 향상시키는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법을 제공하는 데에 그 목적이 있다.
상기 목적을 달성하기 위해 본 발명은, 통상의 분리 체인 방법을 이용한 해시 충돌 처리 방법에 있어서, 디렉토리의 하나의 버킷 내의 레코드들을 오름차순 또는 내림차순으로 정렬하는 단계; 및 상기 디렉토리에 새로운 레코드를 추가할 때에 상기 버킷 내의 레코드들의 정렬 상태를 유지하는 단계를 포함하는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법을 제공한다.
상기 버킷들에 저장되어 있는 레코드들 간에는 정렬된 상태를 유지하지 않으며, 하나의 버킷 내에 있는 레코드들 간에만 정렬된 상태를 유지하는 것이 바람직하다.
상기 디렉토리에 새로운 레코드를 추가하는 단계에서 상기 디렉토리 엔트리에 연결된 버킷에 빈 공간이 없을 경우, 새로운 레코드를 저장하기 위하여 새로운 버킷을 먼저 할당받은 후 기존의 버킷에 연결하고, 그 후 새롭게 추가되는 레코드를 새로 할당받은 버킷에 저장하는 것이 바람직하다.
상기 새롭게 추가되는 레코드가 기존의 레코드보다 적은 수일 경우 기존 레코드를 옆 공간으로 이동시키고, 기존 레코드가 저장되어 있던 위치에 새로운 레코드를 저장하는 것이 더욱 바람직하다.
상기와 같이 구성된 본 발명에 따른 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법에 의하면, 새로운 레코드가 추가되는 경우에 상기 새로운 레코드를 저장하기 위해 새로운 버킷을 할당받는데, 상기 새로운 버킷은 정렬된 기존의 버킷에 연결하여 버킷 간에 추가적인 정렬을 하지 않도록 함으로써, 해시 테이블의 성능을 향상시키는 효과가 있다.
특히, 본 발명의 병합 연쇄 방법에 레코드간 병합 체이닝 그리고 버킷 분할 방법을 사용할 경우 분리 연쇄방법보다 적은 저장공간 활용, 빠른 삽입, 빠른 검색이 모두 가능하게 되는 효과가 있다.
도 1은 일반적인 분리 체인(Separate Chaining) 해시 방법을 나타낸 블록도,
도 2는 도 1에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도,
도 3은 도 2에서 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도,
도 4는 분리 체인에서 레코드 전체를 정렬하는 방식을 적용한 경우를 나타낸 블록도,
도 5는 본 발명의 바람직한 일 실시예에 따른 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법을 나타낸 블록도,
도 6은 도 5에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도,
도 7은 도 6에 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도,
도 8은 본 발명에 따른 레코드 추가 실험 결과를 나타낸 도면이다.
도 2는 도 1에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도,
도 3은 도 2에서 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도,
도 4는 분리 체인에서 레코드 전체를 정렬하는 방식을 적용한 경우를 나타낸 블록도,
도 5는 본 발명의 바람직한 일 실시예에 따른 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법을 나타낸 블록도,
도 6은 도 5에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도,
도 7은 도 6에 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도,
도 8은 본 발명에 따른 레코드 추가 실험 결과를 나타낸 도면이다.
본 발명은 다양한 변형 및 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
일반적인 분리 체인 방법은 해시 내에 저장된 특정한 레코드를 찾으려고 할 때에, 하나의 디렉토리 엔트리에 연결되어 있는 버킷을 순차적으로 방문하면서, 버킷 내에 있는 레코드들을 하나씩 비교해야 한다. 즉, 검색하는 대에 많은 시간이 소요된다. 이러한 분리 체인 방법의 단점을 극복하고자, 본 발명에서는 버킷 내에서는 레코드들간에 정렬된 상태를 유지하도록 한다. 즉, 새로운 레코드를 추가할 때에 버킷 내에의 레코드들 간에 정렬된 상태를 유지하며, 버킷 간에는 정렬된 상태를 유지하지 않는 것이 바람직하다. 이렇게 하면, 버킷 내에서 이진 탐색을 할 수 있으므로, 검색하는 데 걸리는 시간을 획기적으로 단축시킬 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 일반적인 분리 체인(Separate Chaining) 해시 방법을 나타낸 블록도, 도 2는 도 1에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도, 도 3은 도 2에서 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도, 도 4는 분리 체인에서 레코드 전체를 정렬하는 방식을 적용한 경우를 나타낸 블록도이다.
도 1에 도시된 바와 같이, 일반적으로 분리 체인(Separate Chaining)을 활용할 때에, 디렉토리(10) 엔트리 0에 레코드가 24, 8, 16, 40이 순차적으로 추가된다. 이와 같은 분리 체인(Separate Chaining)에서는 하나의 버킷(20) 내에 있는 레코드들이 정렬되어 있지 않고, 레코들이 추가되는 순서에 맞추어서 버킷 내에 순차적으로 저장된다.
도 2는 도 1의 상태에서 새로운 레코드 80이 추가되었 때의 경우를 나타낸 것으로, 도시된 바와 같이 도 1에서 디렉토리(10) 엔트리 0에 연결된 버킷(20)에 빈 공간이 없으므로, 새로운 레코드 80을 저장하기 위하여 새로운 버킷(30)을 먼저 할당받고, 기존의 버킷(20)에 연결한다. 그 다음에 새롭게 추가되는 레코드 80을 새로 할당받은 버킷(30)에 저장한다.
도 3은 도 2의 상태에서 새로운 레코드 32를 추가하는 경우를 나타낸 것으로, 도시된 바와 같이 레코드 80이 저장되어 있는 버킷(30)에 빈 공간이 있으므로, 레코드 32를 기존 레코드 80 다음에 저장한다. 즉, 기존의 분리 방법은 새로운 레코드를 추가할 때에 레코드가 추가되는 순서대로 버킷(30)에 저장된다.
도 4는 분리 체인에서 레코드 전체를 정렬하는 방식을 적용한 경우를 나타낸 블록도로서, 도시된 바와 같이 전체 정렬 과정을 통하여 버킷(20)에 레코드가 8, 16, 24, 32가 저장되고, 버킷(30)에 레코드 40 및 80이 순서대로 정렬되어 저장된다.
이에 반하여 도 5 내지 도 7은 본 발명에서 제안하는 버킷 정렬 체인 방법을 활용하는 예시이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법을 나타낸 블록도이고, 도 6은 도 5에서 새로운 레코드 80이 추가되었을 경우를 나타낸 블록도이고, 도 7은 도 6에 추가적으로 새로운 레코드 32가 추가되었을 경우를 나타낸 블록도이다.
도 5에 도시된 바와 같이, 디렉토리(100)에 현재 레코드 8, 16, 24, 40이 순차적으로 추가된 상태를 나타낸다.
본 발명은 버킷(200) 내에 레코드를 저장할 때에 정렬 상태가 유지되도록 하는 것이 특징이다. 따라서, 실제로 버킷(200) 내의 레코드는 8, 16, 24, 40 순서로 정렬되어 저장된다.
도 6은 도 5에서 새로운 레코드 80을 추가하는 경우를 나타낸 것으로, 도시된 바와 같이 디렉토리(100) 엔트리 0에 연결된 버킷(200)에 빈 공간이 없으므로, 새로운 레코드 80을 저장하기 위하여 새로운 버킷(300)을 먼저 할당받고, 기존의 버킷(200)에 연결한다. 그 다음에 새롭게 추가되는 레코드 80을 새로 할당받은 버킷(300)에 저장한다.
본 발명에서 제안하는 방법은 버킷(200) 내의 레코드들간에 정렬이 되어 있는 상태를 유지한다. 즉, 버킷(200) 간에서는 정렬을 하지 않는다.
도 7은 도 6의 상태에서 새로운 레코드 32를 추가하는 경우를 나타낸다.
새롭게 추가되는 레코드 32는 기존의 레코드 80보다 적은 수이므로, 레코드 80을 버킷(300)의 아래 공간으로 이동시키고, 레코드 80이 저장되어 있던 그 위치에 레코드 32를 저장한다. 이때, 본 발명은 도 4에 도시된 바와 같이 전체 정렬을 수행하지 않는다.
도 8은 본 발명에 따른 레코드 추가 실험 결과를 나타낸 도면이다. 도시된 바와 같이, 각각의 실험에서는 100~1,000개의 레코드를 추가하고, 추가된 레코드들을 대상으로 1,000~10,000번의 찾기 연산을 수행하였다. 이때, 각각 10회의 실험을 실시하고 그 평균값을 사용하여 성능 실험을 진행하였다.
따라서, 본 발명에 따른 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법에 의하면, 새로운 레코드가 추가되는 경우에 상기 새로운 레코드를 저장하기 위해 새로운 버킷을 할당받는데, 상기 새로운 버킷은 정렬된 기존의 버킷에 연결하여 버킷 간에 추가적인 정렬을 하지 않도록 함으로써, 즉 버킷 내에의 레코드들 간에 정렬된 상태를 유지하며, 버킷 간에는 정렬된 상태를 유지하지 않음으로써 시 테이블의 성능을 향상시킬 수 있다.
특히, 본 발명의 병합 연쇄 방법에 레코드간 병합 체이닝 그리고 버킷 분할 방법을 사용할 경우 분리 연쇄방법보다 적은 저장공간 활용, 빠른 삽입, 빠른 검색이 모두 가능하게 된다.
또한, 본 발명은 분리 체인 해시 방법을 사용하는 운영체제 또는 데이터베이스를 포함하여 어떤 어플리케이션에도 사용될 수 있으며, 본 발명은 해시 처리에 대한 데 성능을 향상 시킬 수 있다.
본 명세서에 기재된 본 발명의 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 관한 것이고, 발명의 기술적 사상을 모두 포괄하는 것은 아니므로, 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다. 따라서 본 발명은 상술한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 권리범위 내에 있게 된다.
100 : 디렉토리
200 : 버킷
300 : 새로운 버킷
200 : 버킷
300 : 새로운 버킷
Claims (4)
- 통상의 분리 체인 방법을 이용한 해시 충돌 처리 방법에 있어서,
디렉토리의 하나의 버킷 내의 레코드들을 오름차순 또는 내림차순으로 정렬하는 단계; 및
상기 디렉토리에 새로운 레코드를 추가할 때에 상기 버킷 내의 레코드들의 정렬 상태를 유지하는 단계를 포함하는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법.
- 제 1항에 있어서,
상기 버킷들에 저장되어 있는 레코드들 간에는 정렬된 상태를 유지하지 않으며, 하나의 버킷 내에 있는 레코드들 간에만 정렬된 상태를 유지하는 것을 특징으로 하는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법.
- 제 1항에 있어서,
상기 디렉토리에 새로운 레코드를 추가하는 단계에서
상기 디렉토리 엔트리에 연결된 버킷에 빈 공간이 없을 경우, 새로운 레코드를 저장하기 위하여 새로운 버킷을 먼저 할당받은 후 기존의 버킷에 연결하고, 그후 새롭게 추가되는 레코드를 새로 할당받은 버킷에 저장하는 것을 특징으로 하는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법.
- 제 3항에 있어서,
상기 새롭게 추가되는 레코드가 기존의 레코드보다 적은 수일 경우
기존 레코드를 옆 공간으로 이동시키고, 기존 레코드가 저장되어 있던 위치에 새로운 레코드를 저장하는 것을 특징으로 하는 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150171727A KR20170065374A (ko) | 2015-12-03 | 2015-12-03 | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 |
US15/348,871 US10628487B2 (en) | 2015-12-03 | 2016-11-10 | Method for hash collision detection based on the sorting unit of the bucket |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150171727A KR20170065374A (ko) | 2015-12-03 | 2015-12-03 | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170096213A Division KR101866697B1 (ko) | 2017-07-28 | 2017-07-28 | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170065374A true KR20170065374A (ko) | 2017-06-13 |
Family
ID=58798609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150171727A KR20170065374A (ko) | 2015-12-03 | 2015-12-03 | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10628487B2 (ko) |
KR (1) | KR20170065374A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022051554A1 (en) * | 2020-09-03 | 2022-03-10 | FLC Technology Group, Inc. | Hash function with pre-scrambler |
US11880305B2 (en) | 2018-06-18 | 2024-01-23 | FLC Technology Group, Inc. | Method and apparatus for using a storage system as main memory |
KR20240019615A (ko) * | 2022-08-04 | 2024-02-14 | 울산과학기술원 | 키 값들을 정렬된 상태로 저장하기 위한 동적 해싱을 수행하기 위한 방법 및 장치 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580084B2 (en) | 2017-06-22 | 2023-02-14 | Microsoft Technology Licensing, Llc | High performance dictionary for managed environment |
KR102569545B1 (ko) | 2017-11-08 | 2023-08-22 | 삼성전자 주식회사 | 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 |
KR20220060793A (ko) | 2020-11-05 | 2022-05-12 | 한국전자통신연구원 | 해싱 데이터 관리 장치 및 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052697A (en) * | 1996-12-23 | 2000-04-18 | Microsoft Corporation | Reorganization of collisions in a hash bucket of a hash table to improve system performance |
US5893086A (en) * | 1997-07-11 | 1999-04-06 | International Business Machines Corporation | Parallel file system and method with extensible hashing |
US6530008B1 (en) * | 1999-11-29 | 2003-03-04 | Lucent Technologies Inc. | Method for managing a database for storing variable size data records using fixed size buckets |
US20070118578A1 (en) * | 2005-11-04 | 2007-05-24 | Sun Microsystems, Inc. | Extensible hashing for file system directories |
KR20110038246A (ko) | 2009-10-08 | 2011-04-14 | 동국대학교 산학협력단 | 데이터 저장 장치 및 방법 |
US8812555B2 (en) * | 2011-06-18 | 2014-08-19 | Microsoft Corporation | Dynamic lock-free hash tables |
US9165005B2 (en) | 2012-02-24 | 2015-10-20 | Simplivity Corporation | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory |
-
2015
- 2015-12-03 KR KR1020150171727A patent/KR20170065374A/ko active Search and Examination
-
2016
- 2016-11-10 US US15/348,871 patent/US10628487B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11880305B2 (en) | 2018-06-18 | 2024-01-23 | FLC Technology Group, Inc. | Method and apparatus for using a storage system as main memory |
WO2022051554A1 (en) * | 2020-09-03 | 2022-03-10 | FLC Technology Group, Inc. | Hash function with pre-scrambler |
US11977482B2 (en) | 2020-09-03 | 2024-05-07 | FLC Technology Group, Inc. | Hash function with pre-scrambler |
KR20240019615A (ko) * | 2022-08-04 | 2024-02-14 | 울산과학기술원 | 키 값들을 정렬된 상태로 저장하기 위한 동적 해싱을 수행하기 위한 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US10628487B2 (en) | 2020-04-21 |
US20170161397A1 (en) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170065374A (ko) | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 | |
CN110083601B (zh) | 面向键值存储系统的索引树构建方法及系统 | |
JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
KR101972645B1 (ko) | 클러스터링 저장 방법 및 장치 | |
JP5524144B2 (ja) | key−valueストア方式を有するメモリシステム | |
US9047301B2 (en) | Method for optimizing the memory usage and performance of data deduplication storage systems | |
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
CN100458779C (zh) | 扩展索引的方法 | |
US20140089318A1 (en) | Metadata querying method and apparatus | |
US20130042055A1 (en) | Memory system including key-value store | |
CN105320775A (zh) | 数据的存取方法和装置 | |
US8225060B2 (en) | Data de-duplication by predicting the locations of sub-blocks within the repository | |
US20150058352A1 (en) | Thin database indexing | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN107491487A (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
CN106599091B (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN116450656B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113094336B (zh) | 基于Cuckoo哈希的文件系统目录管理方法及系统 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
JP5646775B2 (ja) | key−valueストア方式を有するメモリシステム | |
US8156126B2 (en) | Method for the allocation of data on physical media by a file system that eliminates duplicate data | |
CN110515897B (zh) | Lsm存储系统读性能的优化方法及系统 | |
KR101866697B1 (ko) | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 | |
JP5833212B2 (ja) | key−valueストア方式を有するメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment |