KR101666758B1 - 개선된 블룸 필터를 이용하는 데이터 검색 방법 - Google Patents

개선된 블룸 필터를 이용하는 데이터 검색 방법 Download PDF

Info

Publication number
KR101666758B1
KR101666758B1 KR1020150109523A KR20150109523A KR101666758B1 KR 101666758 B1 KR101666758 B1 KR 101666758B1 KR 1020150109523 A KR1020150109523 A KR 1020150109523A KR 20150109523 A KR20150109523 A KR 20150109523A KR 101666758 B1 KR101666758 B1 KR 101666758B1
Authority
KR
South Korea
Prior art keywords
bloom filter
bit
data
database
input
Prior art date
Application number
KR1020150109523A
Other languages
English (en)
Inventor
윤희용
김경태
김만윤
김승완
이병준
Original Assignee
성균관대학교산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020150109523A priority Critical patent/KR101666758B1/ko
Application granted granted Critical
Publication of KR101666758B1 publication Critical patent/KR101666758B1/ko

Links

Images

Classifications

    • G06F17/3033
    • G06F17/30336

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예들에 따른 블룸 필터를 이용한 데이터 검색 방법은 컴퓨터가, 블룸 필터와 동일한 길이를 가지는 플래그 비트 벡터를 초기화하는 단계, 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 블룸 필터의 비트 포지션들을 "1"로 설정하는 단계 및 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 플래그 비트 벡터의 비트 포지션들을 "1"로 설정하는 단계를 포함할 수 있다.

Description

개선된 블룸 필터를 이용하는 데이터 검색 방법{METHOD FOR SEARCHING DATA USING ENHANCED BLOOM FILTER}
본 발명은 블룸 필터에 관한 것이다.
블룸 필터(Bloom filter)는 1970년 B. Bloom에 의해 고안되었으며, 원소가 집합에 속하는지 여부를 검사할 수 있는 확률적 자료 구조이다.
블룸 필터는 m 비트 크기의 비트열로 표현될 수 있는데, m 비트의 비트열 중에서 각각의 원소에 관하여 k 가지의 서로 다른 해시 함수(hash function)에 의해 도출된 원소의 해시 값에 대응하는 비트들이 1로 설정되고 나머지 비트들은 0으로 설정된다.
외부에서 어떤 데이터가 집합에 포함되는지 여부를 검사(query)할 경우에, 검사하려는 데이터의 k 가지 해시 함수에 의한 해시 값들이 가지는 인덱스(index)가 얻어지는데, 블룸 필터 비트열 중에서 그러한 인덱스들에 해당하는 위치의 비트들이 모두 1이면 검사하려는 데이터가 집합에 속한다고 양성으로(positive) 판정하고, 그러한 비트들 중에 하나라도 0이면 집합에 속하지 않는다고 음성으로(negative) 판정한다.
이때, 어떤 집합을 그보다 더 적은 크기의 다른 집합에 매핑하는 해시 함수의 필연적인 불완전성에 따라, 집합에 속하지 않는 어떤 데이터의 해시 값들이 집합에 속하는 원소의 해시 값들과 동일하게 도출될 수 있다. 블룸 필터는 전적으로 해시 값에 의존하므로, 만약 해시 값이 동일하다면 집합에 속하지 않는 데이터와 집합에 속하는 원소는 해시 함수로는 구별할 수 없고, 집합에 속하지 않는 데이터에 대해 집합에 속한다고 판정될 수 있다.
따라서 블룸 필터에 의해 어떤 원소가 집합에 속한다고 양성 판정되었지만 실제로는 원소가 집합에 속하지 않는 거짓 양성의 가능성이 문제된다.
원소의 개수가 많아지면 거짓 양성 확률이 크게 증가하며, 일정한 거짓 양성 확률을 달성하려면 원소의 개수에 비례하여 블룸 필터의 크기를 늘려야 한다는 점이 수학적으로 증명되어 있다. 그러나 블룸 필터의 크기를 늘리면 그만큼 스토리지과 메모리를 차지하므로 블룸 필터의 크기를 무작정 늘릴 수도 없다.
따라서, 효율과 성능을 유지하면서 거짓 양성을 줄일 수 있는 블룸 필터 구조가 요구된다. 이를 위해, 복수 개의 블룸 필터들을 사용하여 정확도와 효율을 개선하는 기법이 알려져 있다.
한편, 블룸 필터에 의해 어떤 원소가 집합에 속하지 않는다고 음성 판정될 경우에 실제로 원소가 집합에 속할 수도 있는 거짓 음성의 가능성은 전혀 없다.
이렇듯, 블룸 필터는 설계에 따라 작은 메모리 공간을 소요하고 판정 속도가 빠르며, 거짓 음성이 불가능하여, 예를 들어 대규모 데이터베이스를 구성하는 여러 개의 소규모 데이터베이스들 중에서 적어도 특정 원소가 속하지 않는, 그래서 검색할 필요가 없는 소규모 데이터베이스들을 정확하고 빠르게 가려낼 수 있다.
이러한 장점에 따라 블룸 필터는 다양한 데이터베이스 어플리케이션들과 대규모 스토리지 어플리케이션에 널리 사용되고 있으며, 라우팅 테이블(routing table) 검색, 온라인 트래픽 제어, 침입 탐지 시스템 등과 같이 일견 관련이 없어 보이는 다양한 네트워크 분야에서도 점점 더 자주 응용되고 있다.
블룸 필터의 가장 큰 문제는 집합에 원소를 추가시킬 수만 있고, 원소를 제거할 수는 없다는 점이다. 이에 따라, 블룸 필터를 이용하여 데이터베이스 내에 특정 데이터 항목을 검색하는 시스템에서, 어떤 데이터 항목이 데이터베이스에 추가되었다가 삭제되었다면, 블룸 필터는 그 데이터 항목이 여전히 데이터베이스에 존재하는 것처럼 검색 결과를 출력하며, 삭제 여부를 판단할 수 없으므로, 거짓 양성 판정이 급증할 것이다.
만약, 데이터베이스에서 삭제되는 데이터 항목에 관하여 블룸 필터에서도 해당 데이터 항목의 해시 인덱스들이 재설정된다고 하면, 실제로 삭제되지 않은 다른 데이터 항목들의 해시 인덱스들도 재설정될 수 있기 때문에, 거짓 음성 판정이 발생할 것이다.
본 발명이 해결하고자 하는 과제는 개선된 블룸 필터를 이용하는 데이터 검색 방법을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 데이터베이스로부터 삭제된 데이터 항목을 블룸 필터에 반영할 수 있도록 개선된 블룸 필터를 이용하는 데이터 검색 방법을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 데이터 항목의 삭제에 따른 거짓 음성을 억제할 수 있는 개선된 블룸 필터를 이용하는 데이터 검색 방법을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 표준 블룸 필터에 비해 거짓 양성 성능을 개선할 수 있는 개선된 블룸 필터를 이용하는 데이터 검색 방법을 제공하는 데에 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.
본 발명의 일 측면에 따른 블룸 필터를 이용한 데이터 검색 방법은 컴퓨터가, 블룸 필터와 동일한 길이를 가지는 플래그 비트 벡터를 초기화하는 단계; 상기 컴퓨터가, 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 상기 블룸 필터의 비트 포지션들을 "1"로 설정하는 단계; 및 상기 컴퓨터가, 상기 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 상기 플래그 비트 벡터의 비트 포지션들을 "1"로 설정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 블룸 필터를 이용한 데이터 검색 방법은, 상기 데이터베이스에서 입력 항목이 삭제되면, 상기 컴퓨터가, 상기 데이터베이스에서 삭제된 입력 항목에 대한 해시 인덱스들에 상응하는 상기 블룸 필터의 비트 포지션들을 "0"으로 재설정하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 블룸 필터를 이용한 데이터 검색 방법은, 질의 데이터가 입력되면, 상기 컴퓨터가, 상기 블룸 필터와 상기 플래그 비트 벡터로부터, 상기 질의 데이터에 대한 해시 인덱스들의 각각에 상응하는 비트 포지션의 비트들로 구성되는 비트쌍의 값들을 검출하고, 상기 비트쌍들의 상태에 따라 상기 데이터베이스 내에 상기 질의 데이터와 동일한 입력 항목의 존재 여부를 판정하는 단계를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 데이터 검색 장치는 블룸 필터; 상기 블룸 필터와 동일한 길이를 가지는 플래그 비트 벡터; 및 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 상기 블룸 필터의 비트 포지션들 및 상기 플래그 비트 벡터의 비트 포지션들을 각각 "1"로 설정하는 블룸 필터 관리부를 포함할 수 있다.
일 실시예에 따라, 상기 블룸 필터 관리부는 상기 데이터베이스에서 입력 항목이 삭제되면, 상기 데이터베이스에서 삭제된 입력 항목에 대한 해시 인덱스들에 상응하는 상기 블룸 필터의 비트 포지션들을 "0"으로 재설정하도록 동작할 수 있다.
일 실시예에 따라, 상기 블룸 필터 관리부는 질의 데이터가 입력되면, 상기 블룸 필터와 상기 플래그 비트 벡터로부터, 상기 질의 데이터에 대한 해시 인덱스들의 각각에 상응하는 비트 포지션의 비트들로 구성되는 비트쌍의 값들을 검출하고, 상기 비트쌍들의 상태에 따라 상기 데이터베이스 내에 상기 질의 데이터와 동일한 입력 항목의 존재 여부를 판정할 수 있다.
본 발명의 개선된 블룸 필터를 이용하는 데이터 검색 방법에 따르면, 데이터베이스로부터 삭제된 데이터 항목을 블룸 필터에 반영할 수 있다.
본 발명의 개선된 블룸 필터를 이용하는 데이터 검색 방법에 따르면, 데이터 항목의 삭제에 따른 거짓 음성을 억제할 수 있다.
본 발명의 개선된 블룸 필터를 이용하는 데이터 검색 방법에 따르면, 표준 블룸 필터에 비해 거짓 양성 성능을 개선할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따라 항목 삭제를 지원하는 블룸 필터를 예시한 개념도이다.
도 2는 본 발명의 일 실시예에 따라 항목 삭제를 지원하는 블룸 필터에서 항목의 삭제를 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 블룸 필터를 이용한 데이터 검색 방법을 예시한 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
아래 설명에서, 맥락에 따라 달리 해석하도록 명시되지 않은 한, 원소는 이미 집합에 속하거나 현재 추가될 항목을 지칭하고, 질의 데이터는 집합에 속하는지 여부를 검사하기 위한 항목을 가리킨다.
블룸 필터는 일반적으로 크기 m의 비트 벡터(bit vector)와 k 개의 해시 함수들로 구성된다.
해시 함수(hash function)는 가변하는 길이의 데이터를 어떤 고정된 길이의 데이터에 상사(mapping)할 수 있는 여하한 종류의 알고리즘을 의미한다. 해시 함수의 연산 결과, 즉 매핑된 고정 길이의 데이터는 해시 값(hash values), 해시 코드, 해시 섬(sum), 체크섬(checksum), 또는 간단히 해시 등으로 불리고, 특히 블룸 필터에서는 해시 인덱스(hash index), 인덱스 또는 색인(index)이라고도 불린다.
블룸 필터에서 각각의 해시 함수는 다양한 길이의 원소 또는 질의 데이터를 입력받아 고정된 길이의 해시 인덱스를 출력한다. 해시 인덱스가 가지는 값은 가변하는 길이의 원소 또는 질의 데이터에 대해 고정된 길이의 비트 벡터 내의 비트 포지션들 중 이진 비트값 1로 설정하기 위한 비트 포지션을 의미한다.
해시 함수에 의해 각각의 비트 포지션이 선택될 확률이 균일하고 랜덤하여야 블룸 필터에 적합한 해시 함수라고 할 수 있고, 다양한 상사 함수들이 해시 함수로서 이용될 수 있음이 알려져 있지만, 대표적으로 예를 들어 CRC(Cyclic Redundancy Check) 알고리즘이 이용될 수 있다.
통상적으로 CRC 알고리즘은 다음과 같다. a 비트의 주어진 정보가 있을 때에, 이를 b 비트만큼 자리를 올리고 미리 약속한 b 비트의 키 값으로 나누면 r 비트의 나머지가 남게 되는데, 정보의 송신측에서는 원래의 정보 비트를 b 비트 자리 올린 것에 r 비트의 나머지를 첨부하여 a+r 비트 크기의 데이타를 만들어 보내고, 정보의 수신측에서는 수신된 a+r 비트 크기의 데이타를 b 비트의 키 값으로 나누어 보고 나머지가 정확히 0이 되는지를 검사함으로써, 수신된 데이터가 송신된 정보와 동일함을 입증하는, 즉 전송 데이터의 무결성을 입증하는 알고리즘이다. b가 16 비트이면 CRC-16, 32 비트이면 CRC-32라 한다.
블룸 필터는 CRC 알고리즘에서 얻어진 r 비트의 잉여 비트들의 전부 또는 일부분, 또는 이들의 추가적인 조합으로 얻은 이진 비트열에 상응하는 십진수를 해시 인덱스로 이용할 수 있다.
어떤 n 개의 원소들을 가진 집합이 주어졌을 때, 집합에 속하는 원소들의 각각을 k 개의 해시 함수들에 입력하면, k 개의 해시 함수들에 의해 크기 m의 비트 벡터 내에 k 개의 해시 색인 위치가 선택되고, 선택된 해시 색인 위치들에 상응하는 비트 포지션들이 각각 1로 설정된다. 이를 블룸 필터의 프로그래밍이라 한다.
원소 x를 k 개의 해시 함수들 hi(), 1≤i≤k을 이용하여 블룸 필터 BF의 비트 벡터 Vector[]에 프로그래밍하는 알고리즘 BFProgram(x)을 의사 코드(pseudo code)로 표현하면 다음과 같다.
BFProgram (x)
1) for ( i= 1 to k )
2) Vector[hi(x)] ← 1
hi(x)는 i 번째 해시 함수 hi()에 원소 x가 입력되어 연산된 i 번째 해싱 값 또는 해싱 색인이다.
다시 말해, 일반적으로 블룸 필터의 프로그래밍은 매번 원소가 입력될 때마다 원소 x에 대해 비트 벡터 내의 m 개의 비트 포지션 중에 k 개의 해시 함수에 의해 선택되는 k 개의 비트 포지션을 1로 반복적으로 설정하는 과정이다.
블룸 필터에 집합 내의 모든 원소들에 대해 프로그래밍을 한 이후에는, 쿼리(query)를 통해, 입력된 질의 데이터가 이전에 프로그래밍된 원소인지 여부를 판정할 수 있다.
쿼리 과정도 실질적으로 프로그래밍 과정과 다르지 않다. 입력된 질의 데이터에 대해 k 개의 해시 함수들에 의해 k 개의 해시 색인 위치가 선택되면, k 개의 해시 색인 위치들에 상응하는 비트 벡터 내에 비트 포지션들이 모두 1로 설정되어 있다면, 입력된 질의 데이터가 이전에 프로그래밍된 원소일 확률이 매우 높고, 따라서 양성(positive)으로, 다시 말해 질의 데이터가 집합에 속한다고 판정한다.
그렇지 않고, k 개의 해시 색인 위치들에 상응하는 비트 벡터 내에 비트 포지션들 중 어느 하나라도 0으로 설정되어 있다면, 입력된 질의 데이터는 이전에 프로그래밍된 적이 없는 데이터이며, 따라서 음성(negative)으로, 다시 말해 질의 데이터가 집합에 속하지 않는다고 판정한다.
입력된 질의 데이터 y를 쿼리하는 알고리즘 BFQuery(y)을 의사 코드로 표현하면 다음과 같다.
BFQuery (y)
1) for ( i = 1 to k )
2) if (Vector[hi(y)] = 0 ) return negative
3) return positive
여기서 프로그래밍과 마찬가지로 k 개의 해시 함수들 hi(), 1≤i≤k을 이용하여 블룸 필터 BF의 비트 벡터 Vector[]를 참조하며, 한 해시 인덱스라도 0이 있으면 음성(negative)을 반환하고, 그렇지 않고 모두 1인 경우에만 양성(positive)을 반환한다.
블룸 필터가 해시 함수를 사용하기 때문에, 해시 함수가 서로 다른 질의 데이터에 대한 해시 값의 충돌(collision)을 피할 수 없는 한, 서로 다른 x, y 데이터가 완전히 동일한 해시 인덱스들을 가질 가능성도 피할 수 없다. 입력된 데이터 x가 실제로 사전에 원소로서 프로그래밍되어 있을 때에, 데이터 x와 동일한 해시 인덱스를 가지는 다른 질의 데이터 y가 입력된다면, 질의 데이터 y에 의한 해시 인덱스에 해당하는 비트 포지션들은 모두 데이터 x의 프로그래밍에 의해 1로 설정되어 있을 것이므로, 블룸 필터는 질의 데이터 y가 집합의 원소라고 판정할 수 있다. 이러한 잘못된 멤버쉽 판정을 거짓 양성 판정이라고 한다.
주어진 집합의 크기 n에 대해, 해싱 함수의 개수 k와 블룸 필터 비트 벡터의 크기 m을 늘리면 거짓 양성의 확률을 줄일 수 있다. 그러나 해싱 함수의 개수는 연산 속도와 복잡성에 관련이 있고, 비트 벡터의 크기는 메모리 사용량에 관련이 있으며, 이러한 요인들이 복잡하게 블룸 필터의 전체적인 성능에 영향을 미친다.
표준적인 해시 함수의 개수 k = (m/n)*ln2일 때에 거짓 양성의 확률을 최소화할 수 있다고 알려져 있다.
예시적으로, 원소의 개수는 n이고, 이를 위해 블룸 필터의 비트 벡터를 원소 엔트리(element entry)마다 32 비트 꼴로 부가되도록 설계한다면, 전체 블룸 필터의 비트 벡터의 크기 m = 32n이다. 이때 거짓 양성의 확률을 최소화하는 해시 함수의 개수 k는 (m/n)*ln2 = 32ln2 ≒ 22이다.
통상적인 블룸 필터에서 한번 1로 설정된 비트 포지션은 다시 0으로 리셋될 수 없는데, 1로 설정된 비트 포지션들은 하나 이상의 원소들에 관련될 수 있기 때문에, 비트 포지션을 1에서 0으로 재설정하면 실제로 집합에서 제거된 원소 외에도 다른 원소들의 멤버쉽 판정에도 영향을 줄 수 있다.
아래에서, 집합은 데이터베이스로, 원소는 항목으로 각각 다시 쓰일 수 있다.
도 1은 본 발명의 일 실시예에 따라 항목 삭제를 지원하는 블룸 필터를 예시한 개념도이다.
도 1을 참조하면, 본 발명의 새로운 블룸 필터인 플래그 보강 블룸 필터(Flag Augmented Bloom Filter, FABF)(10)는 블룸 필터(11)와 동일한 크기를 가지는 플래그 비트 벡터(12)를 가진다.
블룸 필터의 비트 벡터 길이를 m, 데이터베이스 내 항목들의 개수를 n, 해시 함수들의 개수를 k, 데이터베이스 내에서 삭제된 항목들의 수를 r이라 한다면, 실시예에 따라, 블룸 필터(11)는 통상적인 m 비트의 비트 벡터이다.
블룸 필터(11)는, m 비트의 비트 벡터 내에서, 입력된 항목들에 관하여 k 개의 해시 함수들 h1(), h2(), h3()에 의해 "1"로 설정된 k 개의 비트 포지션들의 비트들을 "1"로 기록한다.
예를 들어, 블룸 필터(11)는 입력 항목 x에 대해 비트 포지션들 1, 4 및 8의 비트들을 "1"로 설정하고, 입력 항목 y에 대해 비트 포지션들 1, 8 및 15의 비트들을 "1"로 설정하며, 입력 항목 z에 대해 비트 포지션들 8, 10 및 12의 비트들을 "1"로 설정한다.
이 경우에, 비트 포지션 1은 입력 항목들 x와 y에 의해 중복적으로 "1"로 설정되고, 비트 포지션 8은 입력 항목들 x, y 및 z에 의해 중복적으로 "1"로 설정되었다.
블룸 필터(11)는 그 자체로는 각 비트 포지션에 둘 이상의 입력 항목들이 중복적으로 "1"로 설정됨을 알 수 없다.
실시예에 따라, 블룸 필터(11)는 하나 이상의 서브 블룸 필터들로, 예를 들어 해시 함수들의 개수와 같은 k 개의 서브 블룸 필터들로 구성될 수 있다. 이 경우에, 서브 블룸 필터들의 크기의 총합은 블룸 필터(11)의 크기와 같고, 각 서브 블룸 필터의 크기는 예를 들어, m/k로 결정될 수 있다. 입력 항목에 대해 각각의 해시 함수에 의해 각 서브 블룸 필터 내의 하나의 비트 포지션이 "1"로 설정되고, 전체적으로는 각 입력 항목마다 k 개의 비트 포지션들이 "1"로 설정되는 점은 통상적인 블룸 필터의 경우와 동일하다.
플래그 비트 벡터(12)는 블룸 필터(11)와 동일한 크기이고, 블룸 필터(11)의 각 비트 포지션과 일대일로 대응하는 비트 포지션들을 가지는 비트 벡터로 구성될 수 있다.
실시예에 따라, 블룸 필터(11)가 복수의 서브 블룸 필터들로 구성될 경우에, 플래그 비트 벡터(12)도 복수의 서브 플래그 비트 벡터들로 구성될 수 있다.
플래그 비트 벡터(12)는 둘 이상의 입력 항목들에 대해 "1"로 설정되는 블룸 필터(11)의 비트 포지션에 상응하는 플래그 비트 벡터(12)의 비트 포지션을 "1"로 설정한다.
다시 말하면, 플래그 비트 벡터(12)는 이미 "1"로 설정된 블룸 필터(11)의 비트 포지션이 새로운 입력 항목에 의해 중복적으로 "1"로 설정될 경우에, 그러한 블룸 필터(11)의 비트 포지션에 상응하는 플래그 비트 벡터(12)의 비트를 "1"로 설정한다.
항목의 입력만 고려하는 도 1에서, 입력 항목들에 의해 블룸 필터(11)와 플래그 비트 벡터(12)의 비트 포지션들이 "0" 또는 "1"로 설정되어 있을 때에, 같은 비트 포지션에 상응하는 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트로 이루어진 비트쌍들은 (0,0), (1,0), (1,1), (0,1)의 네 가지 조합들 중 하나에 상응하게 된다. 명세서 전체에 걸쳐, 어떤 비트 포지션의 비트쌍은 그 비트 포지션에 상응하는 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트로 이루어진 쌍을 의미한다.
예를 들어, 비트 포지션 2 등은 아무 입력 항목에 의해서도 "1"로 설정되지 않아 "0"의 값을 유지하는 경우로서, 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트가 모두 "0"이다.
데이터베이스에 n 개의 입력 항목들이 기록되어 있고, 블룸 필터(11)와 플래그 비트 벡터(12)의 길이가 m이며, k 개의 해시 함수들을 이용한다면, 매 입력 항목마다 k 개의 해시 인덱스들이 생성되고 블룸 필터(11) 내에서 k 개의 비트 포지션들이 "1"로 설정된다.
어떤 비트 포지션의 비트쌍이 (0,0)일 확률 f00은 n 개의 입력 항목들 전부에 의해 산출되는 해시 인덱스가 모두 "0"일 확률로서, 다음 수학식 1과 같이 산출될 수 있다.
Figure 112015075184106-pat00001
여기서, n은 데이터베이스에 기록된 입력 항목들의 수, m은 블룸 필터(11)와 플래그 비트 벡터(12)의 비트 벡터 길이, k는 해시 함수들의 수이다.
다음으로, 비트 포지션 4 등은 오직 한 입력 항목에 의해서만 "1"로 설정된 경우로서, 블룸 필터(11)의 비트는 "1"이고, 플래그 비트 벡터(12)의 비트는 "0"이다.
어떤 비트 포지션의 비트쌍이 (1,0)일 확률 f10은 n-1 개의 입력 항목들에 의한 해시 인덱스가 "0"이고 1 개의 입력 항목에 의해서만 해시 인덱스가 "1"이 될 확률로서, 다음 수학식 2와 같이 산출될 수 있다.
Figure 112015075184106-pat00002
다음으로, 도 1에는 없고 후술하는 도 2에 예시되겠지만, 둘 이상의 입력 항목들에 의해서 "1"로 설정되었다가 입력 항목이 삭제되어 블룸 필터(11)의 비트가 "0"으로 재설정된 경우에, 블룸 필터(11)의 비트는 "0"이고, 플래그 비트 벡터(12)의 비트는 "1"이다.
아직 아무런 입력 항목도 삭제되지 않은 도 1에서는 어떤 비트 포지션의 비트쌍이 (0,1)일 확률 f01은 0이다.
다음으로, 비트 포지션 1 등은 둘 이상의 입력 항목들에 의해서 "1"로 설정된 경우로서, 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트가 모두 "1"이다.
어떤 비트 포지션의 비트쌍이 (1,1)일 확률 f11은 앞서 예시한 확률 f00, f10, f01을 고려하면, 다음 수학식 3과 같이 산출될 수 있다.
Figure 112015075184106-pat00003
통상적인 블룸 필터에서는 거짓 양성만이 문제되는데, 만약 데이터베이스에서 기존의 입력 항목들 중 일부가 삭제될 때에 블룸 필터는 해시 인덱스들을 그대로 유지한다면, 블룸 필터를 통한 데이터 검색 시에 거짓 양성 판정이 더 심하게 일어날 것이다.
반면에, 통상적인 블룸 필터라면 거짓 음성은 이론적으로 불가능하지만, 만약 데이터베이스에서 기존의 입력 항목들 중 일부가 삭제될 때에 블룸 필터도 해당 해시 인덱스들을 리셋한다면, 블룸 필터를 통한 데이터 검색 시에 거짓 음성 판정이 대량으로 일어날 수 있다.
본 발명의 실시예들에 따른 데이터 검색 방법은 이러한 입력 항목 삭제 시에 블룸 필터를 갱신하면서도, 그에 따른 거짓 양성 판정과 거짓 음성 판정의 가능성을 함께 억제할 수 있다.
도 2를 참조하면, 도 2는 본 발명의 일 실시예에 따라 항목 삭제를 지원하는 블룸 필터에서 항목의 삭제를 예시한 개념도이다.
도 2에서, 삭제 명령에 의해 데이터베이스로부터 입력 항목 x가 삭제되면, 통상적인 블룸 필터와 달리, 본 발명의 블룸 필터(11)는 삭제되는 입력 항목 x에 관한 k 개의 해시 인덱스들을 "0"으로 재설정한다. 반면에, 플래그 비트 벡터(12)의 비트들은, 데이터베이스의 초기화를 제외하고는, 입력 항목의 삭제에 의해 재설정되지 않는다.
이에 따라, 등록된 입력 항목들과 삭제된 입력 항목들에 의해, 각 비트 포지션에 상응하는 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트로 이루어진 비트쌍들은 (0,0), (1,0), (1,1), (0,1)의 네 가지 조합들 중 하나에 상응하게 된다.
본 발명의 데이터 검색 방법은, 개별 입력 항목들의 존치와 삭제를 추적하는 대신에, 각 비트 포지션의 비트가 불특정 입력 항목들의 입력 또는 삭제에 따라 "1" 또는 "0" 중 하나로 설정될 확률을 이용하여, 어떤 질의 데이터에 대한 해시 인덱스들에 상응하는 블룸 필터(11)의 비트 포지션들의 일부가 "0"일 때에, 그 질의 데이터에 상응하는 입력 항목이 데이터베이스 내에 삭제되지 않고 존재하고 있을 확률 또는 실제로 삭제되었을 확률을 추정함으로써, 질의 데이터를 데이터베이스 내에서 검색할 수 있다.
이에 따라, 본 발명의 데이터 검색 방법은 입력 항목의 삭제를 지원하면서도 거짓 음성 판정을 억제할 수 있고, 거짓 양성 판정도 줄일 수 있다.
먼저, 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트가 모두 "0"인 경우는, 비트 포지션 2와 같이, 해시 인덱스가 과거에 "1"이었던 적이 한 번도 없는 경우이거나, 비트 포지션 4와 같이, 오직 한 입력 항목에 의해서 "1"로 설정되었다가 그 입력 항목의 삭제로 인하여 다시 "0"으로 재설정된 경우이다.
이에 따라, 입력 항목의 삭제를 고려할 때에, 어떤 비트 포지션의 비트쌍이 (0,0)일 확률 P00은 n 개의 입력 항목들 전부에 의해 산출되는 해시 인덱스가 "0"일 확률 f00과, 오직 한 입력 항목에 의해서만 해시 인덱스가 "1"이었는데(f10) 삭제 명령 시에 그 입력 항목이 삭제(Dt)될 확률의 합으로서, 다음 수학식 4와 같이 산출될 수 있다.
Figure 112015075184106-pat00004
여기서, p는 입력 항목 삭제가 없을 경우에 블룸 필터(11)의 어떤 비트 포지션의 비트가 "0"일 사전 확률로서, 입력 항목의 삭제가 없을 경우에 블룸 필터(11)의 전체 비트 포지션 개수 m에 대한 블룸 필터(11) 내의 비트 "0"의 개수로 주어질 수 있다. r은 n 개의 등록된 입력 항목들 중에 삭제된 입력 항목들의 비율이다.
다음으로, 블룸 필터(11)의 비트가 "1"이고 플래그 비트 벡터(12)의 비트는 "0"인 경우는, 비트 포지션 10과 같이, 오직 한 입력 항목에 의해서 "1"로 설정되었고, 입력 항목이 유지되는 경우이다.
이에 따라, 입력 항목의 삭제를 고려할 때에, 어떤 비트 포지션의 비트쌍이 (1,0)일 확률 P10은 n-1 개의 입력 항목들에 의한 해시 인덱스가 "0"이고 1 개의 입력 항목에 의해서만 해시 인덱스가 "1"일 확률 f10에, 삭제 명령 시에 그 비트 포지션이 "1"으로 설정될 확률, 즉 "0"으로 재설정되지 않을 확률 Df를 곱한 값으로서, 다음 수학식 5와 같이 산출될 수 있다.
Figure 112015075184106-pat00005
다음으로, 블룸 필터(11)의 비트가 "0"이고 플래그 비트 벡터(12)의 비트는 "1"인 경우는, 비트 포지션 1과 같이, 둘 이상의 입력 항목들에 의해서 "1"로 설정되었다가, 어느 한 입력 항목이 삭제되면서 "0"으로 재설정되는 경우이다.
이에 따라, 입력 항목의 삭제를 고려할 때에, 어떤 비트 포지션의 비트쌍이 (0,1)일 확률 P01은, 삭제 명령이 없었는데도 (0,1)이었을 확률 f01과, 둘 이상의 입력 항목들에 의해서 "1"로 설정되었다가(f11) 삭제 명령 시에 그 비트 포지션이 "0"으로 재설정(Dt)될 확률을 더한 값으로서, 수학식 6과 같이 산출될 수 있다.
Figure 112015075184106-pat00006
다만, 앞서 설명하였듯이, f01은 0이다.
마지막으로, 블룸 필터(11)의 비트와 플래그 비트 벡터(12)의 비트가 모두 "1"인 경우는, 도 2에는 예시되지 않았지만, 둘 이상의 입력 항목들에 의해서 "1"로 설정되었고 어느 입력 항목도 삭제되지 않았거나, 어느 한 입력 항목이 삭제되었다 하더라도 새로운 입력 항목에 의해 그 비트 포지션이 "1"으로 다시 설정되는 경우이다.
이에 따라, 입력 항목의 삭제를 고려할 때에, 어떤 비트 포지션의 비트쌍이 (1,1)일 확률 P11은, 둘 이상의 입력 항목들에 의해서 "1"로 설정된 확률 f11에 삭제 명령 시에 그 비트 포지션이 "1"을 유지할 확률 Df을 곱한 값으로서, 수학식 7과 같이 산출될 수 있다.
Figure 112015075184106-pat00007
기존의 블룸 필터는, 어떤 질의 데이터의 해시 인덱스들에 상응하는 블룸 필터 내의 모든 비트 포지션들이 "1"일 때에만 질의 데이터와 동일한 입력 항목이 데이터베이스 내에 존재한다고 응답하며, 어느 하나의 비트 포지션이라도 "0"이면 질의 데이터와 동일한 입력 항목이 데이터베이스 내에 부존재한다고 응답한다.
반면에, 본 발명의 블룸 필터(11)는, 입력 항목의 삭제 시에 해당 비트 포지션들이 "0"으로 재설정되지만, 그렇게 "0"으로 재설정된 비트 포지션들에 삭제 이전에 중복적으로 상응하고 있던, 삭제되지 않은 다른 입력 항목들을 위해, 플래그 비트 벡터(12)의 비트 포지션들이 "1"로 설정되어 있으므로, 삭제된 입력 항목의 부존재를 식별할 수도 있고, 삭제되지 않은 입력 항목들의 존재를 식별할 수도 있다.
도 2를 참조하면, 질의 데이터 x에 대하여 해시 인덱스들은 비트 포지션 1, 4 및 8인데, 블룸 필터(11)와 플래그 비트 벡터(12)의 비트쌍들은 각각 (0,1), (0,0) 및 (0,1)이다. 블룸 필터(11) 내에서 질의 데이터 z에 상응하는 비트 포지션들의 비트들이 모두 "0"이고, 비트쌍 (0,0)이 있기 때문에 질의 데이터 x와 동일한 입력 항목 x는 데이터베이스 내에 부존재할 확률이 존재할 확률보다 더 높다고 판정할 수 있다.
한편, 질의 데이터 y에 대하여, 해시 인덱스들은 비트 포지션 1, 8 및 15인데, 블룸 필터(11)와 플래그 비트 벡터(12)의 비트쌍들은 각각 (0,1), (0,1) 및 (1,0)이다. 블룸 필터(11) 내에서 질의 데이터 z에 상응하는 비트 포지션들의 비트들 중에 "1"이 소정 개수 이상 존재하고, 비트쌍 (0,1)과 (1,0)이 혼재하기 때문에, 질의 데이터 y와 동일한 입력 항목 y가 데이터베이스 내에 존재할 확률이 부존재할 확률보다 더 높다고 판정할 수 있다.
또한, 질의 데이터 z에 대하여, 해시 인덱스들은 비트 포지션 8, 10 및 12인데, 블룸 필터(11)와 플래그 비트 벡터(12)의 비트쌍들은 각각 (0,1), (1,0) 및 (1,0)이다. 블룸 필터(11) 내에서 질의 데이터 z에 상응하는 비트 포지션들의 비트들 중에 "1"이 소정 개수 이상 존재하고, 비트쌍 (0,1)과 (1,0)이 혼재하기 때문에, 질의 데이터 z와 동일한 입력 항목 z가 데이터베이스 내에 존재할 확률이 부존재할 확률보다 더 높다고 판정할 수 있다.
이러한 예시로부터, 본 발명의 데이터 검색 방법은 데이터베이스로부터 기존 입력 항목의 삭제에 따라 블룸 필터(11) 내에서 삭제된 입력 항목의 해시 인덱스들에 상응하는 비트 포지션들을 "0"으로 재설정할 수 있음을 알 수 있다.
또한, 블룸 필터(11) 내에서 비트 포지션들이 일부 재설정됨에 따라 영향을 받는 다른 입력 항목들에 관하여, 항목이 존재하는데도 부존재한다고 판정하는 거짓 음성 판정의 가능성은 블룸 필터(11)와 플래그 비트 벡터(12)의 비트쌍들을 함께 분석함으로써 억제할 수 있다.
나아가, 데이터베이스에 실제로 부존재하는 질의 데이터에 대하여 블룸 필터(11) 내의 비트 포지션들이 우연히 모두 "1"이어서 항목이 존재한다고 판정함으로써 나타나는 거짓 양성 판정의 가능성은 한편으로는 입력 항목의 삭제에 따라 블룸 필터(11) 내에 "1"의 개수가 감소함으로써, 다른 한편으로는 블룸 필터(11)와 플래그 비트 벡터(12)의 비트쌍들을 함께 분석함으로써 억제할 수 있다.
도 3은 본 발명의 일 실시예에 따른 새로운 블룸 필터를 이용한 데이터 검색 방법을 예시한 순서도이다.
도 3을 참조하면, 본 발명의 새로운 구조의 블룸 필터, 즉 플래그 보강 블룸 필터를 이용한 데이터 검색 방법은 컴퓨터가 블룸 필터(11)와 동일한 길이를 가지는 플래그 비트 벡터(12)를 초기화하는 단계(S31)에서 시작할 수 있다.
단계(S32)에서, 컴퓨터가 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 블룸 필터(11)의 비트 포지션들을 "1"로 설정할 수 있다.
실시예에 따라, 블룸 필터(11)는 하나 이상의 서브 블룸 필터들로, 예를 들어 해시 함수들의 개수와 같은 k 개의 서브 블룸 필터들로 구성될 수 있다. 이 경우에, 서브 블룸 필터들의 크기의 총합은 블룸 필터(11)의 크기와 같고, 각 서브 블룸 필터의 크기는 예를 들어, m/k로 결정될 수 있다.
단계(S33)에서, 컴퓨터가 데이터베이스의 입력 항목에 대한 해시 인덱스들을 기초로 플래그 비트 벡터(12)의 비트 포지션들을 "1"로 설정할 수 있다.
단계(S34)에서, 데이터베이스에서 입력 항목이 삭제되면, 컴퓨터가, 데이터베이스에서 삭제된 입력 항목에 대한 해시 인덱스들에 상응하는 블룸 필터(11)의 비트 포지션들을 "0"으로 재설정할 수 있다.
단계(S35)에서, 질의 데이터가 입력되면, 컴퓨터가, 블룸 필터(11)와 플래그 비트 벡터(12)로부터, 질의 데이터에 대한 해시 인덱스들의 각각에 상응하는 비트 포지션의 비트들로 구성되는 비트쌍의 값들을 검출하고, 비트쌍들의 상태에 따라 데이터베이스 내에 질의 데이터와 동일한 입력 항목의 존재 여부를 판정한다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
10 플래그 보강 블룸 필터
11 블룸 필터
12 플래그 비트 벡터

Claims (7)

  1. 컴퓨터가, 블룸 필터와 동일한 길이를 가지는 플래그 비트 벡터를 초기화하는 단계;
    상기 컴퓨터가, 데이터베이스에 입력되는 필드인 입력 항목에 대한 해시 인덱스들을 기초로 상기 블룸 필터의 비트 포지션들을 "1"로 설정하는 단계; 및
    상기 컴퓨터가, 상기 입력 항목에 대한 해시 인덱스들을 기초로 상기 플래그 비트 벡터의 비트 포지션들을 "1"로 설정하는 단계를 포함하는 블룸 필터를 이용한 데이터 검색 방법.
  2. 청구항 1에 있어서,
    상기 데이터베이스에서 이전에 입력된 필드인 입력 항목이 삭제되면, 상기 컴퓨터가, 상기 데이터베이스에서 삭제된 입력 항목에 대한 해시 인덱스들에 상응하는 상기 블룸 필터의 비트 포지션들을 "0"으로 재설정하는 단계를 더 포함하는 것을 특징으로 하는 블룸 필터를 이용한 데이터 검색 방법.
  3. 청구항 2에 있어서,
    질의 내의 데이터인 질의 데이터가 입력되면, 상기 컴퓨터가, 상기 블룸 필터와 상기 플래그 비트 벡터로부터, 상기 질의 데이터에 대한 해시 인덱스들의 각각에 상응하는 비트 포지션의 비트들로 구성되는 비트쌍의 값들을 검출하고, 상기 비트쌍의 값들에 따라 상기 데이터베이스 내에 상기 질의 데이터와 동일한 입력 항목의 존재 여부를 판정하는 단계를 더 포함하는 것을 특징으로 하는 블룸 필터를 이용한 데이터 검색 방법.
  4. 컴퓨터가 청구항 1 내지 3 중 어느 한 청구항에 따른 블룸 필터를 이용한 데이터 검색 방법의 각 단계들을 구현하도록 작성되어 기록 매체에 기록된 컴퓨터 프로그램.
  5. 블룸 필터;
    상기 블룸 필터와 동일한 길이를 가지는 플래그 비트 벡터; 및
    데이터베이스에 입력되는 필드인 입력 항목에 대한 해시 인덱스들을 기초로 상기 블룸 필터의 비트 포지션들 및 상기 플래그 비트 벡터의 비트 포지션들을 각각 "1"로 설정하는 블룸 필터 관리부를 포함하는 데이터 검색 장치.
  6. 청구항 5에 있어서, 상기 블룸 필터 관리부는
    상기 데이터베이스에서 이전에 입력된 필드인 입력 항목이 삭제되면, 상기 데이터베이스에서 삭제된 입력 항목에 대한 해시 인덱스들에 상응하는 상기 블룸 필터의 비트 포지션들을 "0"으로 재설정하도록 동작하는 것을 특징으로 하는 데이터 검색 장치.
  7. 청구항 5 또는 청구항 6에 있어서, 상기 블룸 필터 관리부는
    질의 내의 데이터인 질의 데이터가 입력되면, 상기 블룸 필터와 상기 플래그 비트 벡터로부터, 상기 질의 데이터에 대한 해시 인덱스들의 각각에 상응하는 비트 포지션의 비트들로 구성되는 비트쌍의 값들을 검출하고, 상기 비트쌍의 값들에 따라 상기 데이터베이스 내에 상기 질의 데이터와 동일한 입력 항목의 존재 여부를 판정하는 것을 특징으로 하는 데이터 검색 장치.
KR1020150109523A 2015-08-03 2015-08-03 개선된 블룸 필터를 이용하는 데이터 검색 방법 KR101666758B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150109523A KR101666758B1 (ko) 2015-08-03 2015-08-03 개선된 블룸 필터를 이용하는 데이터 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150109523A KR101666758B1 (ko) 2015-08-03 2015-08-03 개선된 블룸 필터를 이용하는 데이터 검색 방법

Publications (1)

Publication Number Publication Date
KR101666758B1 true KR101666758B1 (ko) 2016-10-17

Family

ID=57250117

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150109523A KR101666758B1 (ko) 2015-08-03 2015-08-03 개선된 블룸 필터를 이용하는 데이터 검색 방법

Country Status (1)

Country Link
KR (1) KR101666758B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489405A (zh) * 2019-07-12 2019-11-22 平安科技(深圳)有限公司 数据处理的方法、装置和服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088918A (ko) * 2012-02-01 2013-08-09 이화여자대학교 산학협력단 검증 블룸 필터를 포함하는 멀티 블룸 필터
JP2014130549A (ja) * 2012-12-28 2014-07-10 Fujitsu Ltd ストレージ装置、制御方法、および制御プログラム
KR101537445B1 (ko) * 2013-09-12 2015-07-16 이화여자대학교 산학협력단 거짓 양성 성능을 개선할 수 있는 블룸 필터 처리 장치 및 블룸 필터 처리 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088918A (ko) * 2012-02-01 2013-08-09 이화여자대학교 산학협력단 검증 블룸 필터를 포함하는 멀티 블룸 필터
JP2014130549A (ja) * 2012-12-28 2014-07-10 Fujitsu Ltd ストレージ装置、制御方法、および制御プログラム
KR101537445B1 (ko) * 2013-09-12 2015-07-16 이화여자대학교 산학협력단 거짓 양성 성능을 개선할 수 있는 블룸 필터 처리 장치 및 블룸 필터 처리 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Identifying Elephant Flow Using a Reverible MultiLayer Hashed Counting Bloom Filter", Weijiang Liu et al., 2012.06.25.-27. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489405A (zh) * 2019-07-12 2019-11-22 平安科技(深圳)有限公司 数据处理的方法、装置和服务器
CN110489405B (zh) * 2019-07-12 2024-01-12 平安科技(深圳)有限公司 数据处理的方法、装置和服务器

Similar Documents

Publication Publication Date Title
CN112148928B (zh) 一种基于指纹家族的布谷鸟过滤器
US10678791B2 (en) Using shared dictionaries on join columns to improve performance of joins in relational databases
KR101648317B1 (ko) 항목 삭제를 지원하는 분할 블룸 필터를 이용한 데이터 검색 방법, 이를 이용한 캐시 메모리 장치 및 스토리지 장치
US9171153B2 (en) Bloom filter with memory element
US20230161822A1 (en) Fast and accurate geomapping
US10671667B2 (en) Data matching method and apparatus and computer storage medium
WO2010135082A1 (en) Localized weak bit assignment
WO2018080942A1 (en) Change monitoring spanning graph queries
US9361238B2 (en) Memory addressing mechanism using a buffer of a hierarchy of collision free hash tables
CN111552692B (zh) 一种加减法布谷鸟过滤器
CN111552693B (zh) 一种标签布谷鸟过滤器
WO2021072874A1 (zh) 基于双数组的位置查询方法、装置、计算机设备及存储介质
CN108460123B (zh) 高维数据检索方法、计算机设备和存储介质
US20170068732A1 (en) Multi-system segmented search processing
Abbasifard et al. Efficient indexing for past and current position of moving objects on road networks
CN111930924A (zh) 基于布隆过滤器的数据查重系统及方法
CN112765155B (zh) 基于区块链的键值存储方法、装置、终端设备及介质
KR101666758B1 (ko) 개선된 블룸 필터를 이용하는 데이터 검색 방법
KR101537445B1 (ko) 거짓 양성 성능을 개선할 수 있는 블룸 필터 처리 장치 및 블룸 필터 처리 방법
KR101587756B1 (ko) 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법
CN107294855B (zh) 一种高性能计算网络下的tcp查找优化方法
CN115204147A (zh) 一种数据特征指纹构建及相似性度量方法与索引
CN110968267B (zh) 数据管理方法、装置、服务器及系统
CN113641672B (zh) 一种多维度快速匹配方法、装置及存储介质
US11409747B2 (en) Combined filtering and indexing for read-only data sets

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant