4.3.1 một ví dụ Motivating
một lần nữa cho chúng tôi bắt đầu với một ví dụ chạy minh họa vấn đề và những gì chúng tôi có thể làm gì về nó. Giả sử chúng tôi có một bộ S của một tỷ cho phép địa chỉ email-những người mà chúng tôi sẽ cho phép thông qua bởi vì chúng tôi tin rằng chúng không phải là thư rác. Dòng bao gồm cặp: một địa chỉ email và email chính nó. Kể từ khi địa chỉ email điển hình là 20 byte trở lên, nó không phải là hợp lý để cửa hàng S trong bộ nhớ chính. Vì vậy, chúng tôi có thể hoặc truy cập đĩa sử dụng để xác định có hay không để cho phép thông qua bất kỳ yếu tố nhất định dòng, hoặc chúng tôi có thể đưa ra một phương pháp yêu cầu bộ nhớ chính không có nhiều hơn chúng tôi đã có sẵn, và sẽ được filter hầu hết các yếu tố không mong muốn dòng. Giả sử cho vì lợi ích của đối số mà chúng tôi có một gigabyte của bộ nhớ chính có sẵn. Kỹ thuật được gọi là nở filtering, chúng tôi sử dụng bộ nhớ chính điều đó như là một mảng chút. Trong trường hợp này, chúng tôi có chỗ cho tám tỷ bit, kể từ khi một byte bằng 8 bit. Đưa ra một hàm băm h từ địa chỉ email để tám tỷ thùng. Băm mỗi thành viên của S để một chút, và thiết lập mà bit để 1. Tất cả các bit khác của mảng vẫn 0. Kể từ khi có một tỷ thành viên của S, khoảng 1/8 của các bit sẽ là 1. Các phần chính xác của bit thiết lập để 1 sẽ một chút ít hơn 1/8, bởi vì nó có thể rằng hai thành viên của S băm để cùng một chút. Chúng tôi sẽ thảo luận về các phần chính xác của 1 trong phần 4.3.3. Khi một yếu tố dòng đến, chúng tôi băm địa chỉ thư điện tử của nó. Nếu các bit mà có địa chỉ email băm là 1, sau đó chúng tôi cho email thông qua. Nhưng nếu địa chỉ email nhập cho một 0, chúng ta có chắc rằng địa chỉ là không thuộc S, vì vậy chúng tôi có thể thả nguyên tố dòng này. Thật không may, một số thư rác sẽ nhận được thông qua. Khoảng 1/8 của các yếu tố stream có địa chỉ email không phải là tại S sẽ xảy ra với băm để một chút là có giá trị là 1 và sẽ được cho phép thông qua. Tuy nhiên, kể từ khi phần lớn các email được thư rác (khoảng 80% theo một số báo cáo), loại bỏ 7/8 số thư rác là một significant chứa. Hơn nữa, nếu chúng ta muốn loại bỏ mọi thư rác, chúng tôi cần chỉ kiểm tra cho các thành viên trong S những email tốt và xấu có được thông qua filter. Kiểm tra những sẽ phải sử dụng bộ nhớ thứ cấp để truy cập S chính nó. Cũng có những lựa chọn khác, như chúng ta sẽ thấy khi chúng tôi nghiên cứu kỹ thuật nở-filtering chung. Như là một ví dụ đơn giản, chúng tôi có thể sử dụng một thác của các filters, mỗi trong số đó sẽ loại bỏ 7/8 của thư rác còn lại.
đang được dịch, vui lòng đợi..