• Bộ lọc ESBF bao gồm một chuỗi EBF và số bộ lọc EBF trong ESBF có thể thay đổi.
• Kích thước của EBF mới là M1si, trong đó M1 là kích thước của bộ lọc đầu tiên và i là số bộ lọc hiện có của ESBF. Trong bài này ta chọn s=2.
d. Bộ lọc ESBF
• EBF (Extensible Bloom Filter): bộ đếm mở rộng linh hoạt của CBF.
• EBF được chia thành 3 phần:
– Bộ đếm cơ bản BC có độ dài x bit – Bộ đếm mở rộng LC có độ dài 2x bit
– Một vectơ bit OF với mỗi bit của nó chỉ ra rằng một bộ đếm BC
• Ban đầu, chỉ có các bộ đếm BC và OF trong EBF, giá trị của các bộ đếm BC và tất cả các bit của OF được thiết lập là 0.
• Khi một bộ đếm BC nào bị
tràn, một bộ đếm LC được tạo ra và giá trị của bộ đếm tràn được chuyển thành một con trỏ trỏ tới bộ đếm LC mới
được tạo ra, nó được sử dụng để đếm các phần tử tương ứng.
• Vì bộ lọc có thể mở rộng bộ đếm nên ta gọi là EBF - bộ lọc Bloom mở rộng. LC0 0 1 0 0 1 0 1 0 0 0 OF0 OFm-1 BC0 BCm-1 0 0 0 0 0 0 0 0 0 0 OF0 OFm-1 d. Bộ lọc ESBF
EBF là CBF mở rộng nhưng trong đó CBF đã được cải tiến như sau:
• Chia vecto bit V thành h phần trong đó h là số hàm băm. Mỗi phần có m’=m/h (bit) dùng riêng cho hàm băm có chỉ số tương ứng.
• Mỗi hàm băm hi() với 1 ≤ i ≤ h, ánh xạ tới một giá trị thuộc [1, m’] trong phần vecto bit tương ứng của nó. Do đó mỗi phần tử luôn được biểu diễn chính xác bởi h bit, mỗi bit nằm trong phần vectơ bit của mỗi hàm băm.
• Với cách phân chia này làm giảm xu hướng xảy ra sai số false positive.
xi xj
• Như vậy với cấu trúc như trên: ESBF là một chuỗi EBF có thể thay đổi số EBF, một chuỗi EBF có thể thay đổi số EBF, EBF là CBF mở rộng có thể thay đổi bộ đếm một cách linh hoạt, và cấu trúc CBF được điều chỉnh để giảm sai số.