블룸 필터 예제

앞서 지적한 주의사항으로 돌아가기 – 블룸 필터가 거짓 긍정에 어떻게 취약한지 보여 드리기 위해 예제를 사용하겠습니다. 모든 꽃 필터의 중심에는 Bloom 필터 데이터 구조가 요소가 집합에 있는지 또는 확실히 아닐지 여부를 알려주는 두 가지 핵심 요소가 있습니다. 가능한 유일한 오류는 거짓 긍정입니다: 존재하지 않는 요소를 검색하면 오답을 줄 수 있습니다. 필터에 요소가 더 많면 오류율이 증가합니다. 깊이 D의 감쇠 블룸 필터는 D 노멀 블룸 필터의 배열로 볼 수 있습니다. 네트워크의 서비스 검색 컨텍스트에서 각 노드는 정규 및 감쇠된 Bloom 필터를 로컬로 저장합니다. 일반 또는 로컬 Bloom 필터는 노드 자체에서 제공되는 서비스를 나타냅니다. 레벨 i의 감쇠필터는 현재 노드에서 i-hops 떨어진 노드에서 찾을 수 있는 서비스를 나타냅니다. i-th 값은 노드에서 멀리 떨어진 노드 i-hops에 대한 로컬 Bloom 필터의 결합을 취하여 생성됩니다.

[33] 블룸 필터에 삽입된 항목의 수가 증가함에 따라 거짓 긍정의 가능성도 증가합니다. 시간이 지남에 따라 대부분의 비트를 0이 아닌 1로 설정하기 때문입니다. 패키지 github.com/yourbasic/bloom Go Bloom 필터 구현을 사용하는 이 코드 조각은 일반적인 Bloom 필터 사용 사례를 보여 주었습니다. 콘텐츠 전송 네트워크는 전 세계에 웹 캐시를 배포하여 성능과 안정성을 높여 사용자에게 웹 콘텐츠를 캐시하고 서비스를 제공합니다. Bloom 필터의 주요 응용 프로그램은 이러한 웹 캐시에 저장할 웹 개체를 효율적으로 결정하는 데 사용하는 것입니다. 일반적인 웹 캐시에서 액세스하는 URL의 거의 3분의 1은 사용자가 한 번만 액세스하는 “원히트 불가사의”입니다. 다시는 액세스하지 않으므로 웹 캐시에 원히트 불가사의를 저장하는 것은 디스크 리소스를 낭비하는 것이 분명합니다. 하나의 히트 불가사의캐싱을 방지하기 위해 Bloom 필터는 사용자가 액세스하는 모든 URL을 추적하는 데 사용됩니다.

웹 개체는 이전에 한 번 이상 액세스한 경우에만 캐시됩니다( 즉, 개체가 두 번째 요청에 캐시되는 경우). 이러한 방식으로 Bloom 필터를 사용하면 원히트 불가사의가 디스크 캐시에 기록되지 않으므로 디스크 쓰기 작업 부하가 크게 줄어듭니다. 또한 원히트 불가사의를 필터링하면 디스크의 캐시 공간을 절약하여 캐시 적중률을 높일 수 있습니다. [10] 블룸 필터에 항목을 추가하려면 k 다른 해시 함수에 항목을 공급하고 결과 위치에서 비트를 `1`로 설정합니다. 보시다시피 해시 테이블에서는 단일 해시 함수를 사용했기 때문에 단일 인덱스만 출력으로 가져옵니다. 그러나 bloom 필터의 경우 여러 해시 함수를 사용하여 여러 인덱스를 제공합니다. 블룸 필터는 단방향이기 때문에 “에브 윌리엄스가 가지고 있는 애완동물은 무엇인가?”라는 질문에 답할 수 없습니다. 동물군, 이국적인 또는 다른 사람의 조합을 구별 할 수있는 방법은 없습니다, 채워진 양동이의 현재 세트로 이어졌다. 보노미 외.

Shares

Posted on 2nd August 2019 in Uncategorised

Share the Story

About the Author

Back to Top
Shares