블룸 필터

배경 노트

특히 데이터의 필드에 컴퓨터 분야에 해시 함수를 신속하게 암호화의 매우 넓은 필드, 찾을 수 있습니다.

그 역할은 (이 작은 데이터 세트의 해시 값 또는 해시 값이라고 함) 이상으로 설정 작은 데이터 세트 큰 데이터를 매핑하는 것이다.

해시 테이블 직접 데이터 구조를 액세스하기 위해 해시 값 (키 값)에 기초하여, (해시 테이블은 또한 해시 테이블이라고 함). 즉,이 검색을 빠르게 할 수있는 위치에 테이블에 매핑 된 해시 값에 액세스 기록합니다. 다음은 전형적인 개략도이다 :

그러나 일부 문제가이 간단한 해시 테이블, 질문 해시 충돌이다. 우리 m 배열 포인트의 길이를 비트 경우 해시 함수 우리는 예를 들면 1 %의 충돌 레이트를 감소하고자한다면, 해시 테이블에만 요소 m의 * 1 %의 수용 수 좋은 가정이다. 분명히, 이것은 유효 공간 (공간 효율) 호출 할 수 없습니다 것입니다.

   

블룸 필터 개요

블룸 (버튼 하워드 블룸)에 의해 제안 된 블룸 필터 1970. 실제로 임의 이진 벡터와 매핑 기능 (해시 함수)의 긴 시리즈입니다. 블룸 필터를 검색하기 위해 사용될 수있는 일련의 요소 경우. 장점은 공간 효율성과 쿼리 시간은 일반 알고리즘보다 훨씬 더 많은 것이다. 블룸 널리 같은 쿼리를 필요로하는 다양한 용도로 사용 필터 :

   

구글의 유명한 Bigtable을 찾기 위해 디스크 IO의 수를 감소 할 행 또는 열이없는 찾을 수있는 분산 데이터베이스 블룸 필터를 사용합니다.

   

많은 키 - 값 시스템에서 또한 일반적으로 HBase를, Accumulo, Leveldb, 같은 질문의 과정을 빠르게하기 위해 블룸 필터에 사용되는, 값은 디스크에 저장, 디스크 액세스 시간이 많이 걸리지 만 당신은 블룸 필터를 사용할 수 있습니다 키 신속하게, 따라서 많은 불필요한 디스크 IO 작업을 피하고, 값이 해당 여부를 결정하지만, Rubu에게 약간의 메모리 소비를 가져올 것이다 긴 필터를 인용합니다.

   

블룸 필터의 원리

요소가 컬렉션에없는 경우를 판별하려면, 일반적인 생각은 함께 모든 요소를 ​​저장하는 것입니다, 다음의 비교에 의해 결정. 등 목록, 데이터 구조, 나무,이 아이디어입니다. 그러나 요소의 컬렉션의 증가와 함께, 우리는 더 많은 저장, 검색 속도가 느린 속도가 느린지고 필요합니다.

   

블룸 필터는 m 비트의 비트 벡터를 기반으로 (B1, ... BM) 0 비트 벡터의 초기 값. 또, 해시 함수의 시리즈 (H1, ... HK) 해시 함수 범위 1 ~ m에 속한다. 아래 블룸 필터 삽입 X, Y, Z이고, w가 결정된다 개략도 설정 데이터의 값 여부 :

그러나, 블룸 필터의 명백한 단점과 장점이있다. 계산 착오 율 (위양성)가 그 중 하나입니다. 증착 소자 오산 속도의 수가 증가한다. 원소의 개수가 너무 작은 경우에, 다음 해시 테이블이 충분히 사용합니다.

   

요약 : 블룸 필터는 일반적으로 빠르게 요소가 집합에 속하는지 여부를 결정하기 위해 몇 가지 필요에 사용하지만, 엄격하게 100 % 올바른 기회를 필요하지 않습니다. 또한, 리드 Rubu 긴 필터는 일부 메모리 소비를 가져올 것이다.

   

   

   

   

공장

추천

출처www.cnblogs.com/shuzhiwei/p/11316547.html