Giả sử crawler có khả năng hạn chế, chỉ làm tươi được 1 trang Web trong 1 ngày. Như vậy nó phải lựa chọn ra 1 trong 2 trang Web e1 hoặc e2 để làm tươi. Trang Web nào được lựa chọn sẽ tùy thuộc vào độ tươi của S trong cả hai trường hợp. Nếu e2
được thay đổi vào giữa ngày và chúng ta làm tươi e2 sau khi nó được sửa đổi thì e2 cập nhật trong 1/2 ngày còn lại. Tuy nhiên xác suất để e2 được thay đổi vào thời điểm giữa ngày là 1/2. Vì vậy lợi ích về độ tươi thu được khi làm tươi e2 là1/2 x 1/2 = 1/4ngày. Bằng suy luận tương tự với việc làm tươi e1 vào thời điểm giữa ngày, lợi ích về độ tươi thu được là 1/2 x 1/8 = 1/36 ngày. Như vậy dễ dàng nhận ra việc chọn e2 để làm tươi sẽ mang lại hiệu quả cao hơn.
Trên thực tế, chúng ta không biết chắc chắn trang Web sẽ thay đổi với khoảng thời gian được biết. Hơn nữa, cũng cần phải quan tâm đến độ cũ của các trang Web (Ở thí dụ trên, chúng ta luôn chọn e2 để làm tươi dẫn đến độ cũ của e1 tăng liên tục).
1.6. LƯU TRỮ DỮ LIỆU
1.6.1. Giới thiệu
Page repository trong mô hình kiến trúc của Search Engine là một hệ lưu trữ có nhiệm vụ lưu trữ bộ sưu tập khổng lồ của các trang Web. Như đã minh họa trong sơ đồ kiến trúc, repository cần phải thực thi hai chức năng cơ bản. Một là cung cấp giao diện (interface) cho crawler lưu trữ các trang Web mà nó crawl về. Hai là phải cung cấp
giao diện lập trình API cho indexer và collection analysis module sử dụng để lấy các trang Web ra.
Các vấn đề đặt ra và các kỹ thuật sử dụng đối với repository là nội dung chính của phần này.
1.6.2. Khó khăn và thách thức
Repository lưu giữ vào bảo quản bộ sưu tập khổng lồ các “đối tượng dữ liệu” (data objects), đó chính là các trang Web. Đứng về khía cạnh này thì nó khá giống với các hệ lưu trữ và quản lý các đối tượng dữ liệu khác (ví dụ như hệ thống file hay hệ cơ sở dữ liệu). Tuy nhiên Web repository không phải cung cấp nhiều chức năng như các hệ thống khác (ví dụ như các giao dịch, ghi nhật ký, cấu trúc thư mục). Bù vào đó, nó phải đối mặt với nhiều vấn đề thách thức:
Scalability: Nó phải có khả năng phân phối liền mạch dữ liệu giữa các chùm (cluster) máy tính và ổ đĩa, nhằm đối phó với kích thước khổng lồ của Web.
Dual access mode: Repository phải cung cấp hai phương pháp truy cập khác nhau nhưng hiệu quả như nhau: - Truy cập ngẫu nhiên (random access) sử dụng để lấy ra một trang Web bất kỳ nào đó với một định danh của trang được cho trước; - Truy cập theo luồng (streaming access) được sử dụng để nhận về toàn bộ bộ sưu tập hay là một tập con đáng kể nào đó như là hàng loạt các trang Web. Phương pháp truy cập ngẫu nhiên được sử dụng bởi query engine với mục đích đưa ra bản cache của trang Web cho người dùng còn phương pháp truy cập theo luồng được indexer và các mô- đun phân tích sử dụng trong quá trình xử lý và phân tích các trang Web với số lượng lớn.
Large bulk updates(Cập nhật với số lượng lớn): Do Web thay đổi thường xuyên nên repository cần phải kiểm soát được mức độ thay đổi nhanh đó. Khi mà trang Web mới được tải về thì bản cũ của nó trong repository thường được giải phóng thông qua việc nén và sắp xếp lại dữ liệu. (Một vài repository lưu trữ vết (history) của các trang Web bằng cách giữ lại các trang Web cũ, không được đề cập ở đây).
Obsolete pages(Các trang Web lỗi thời): Đối với các hệ thống thông thường, những gì không còn cần đến nữa sẽ bị xóa sổ khỏi cơ sở dữ liệu. Tuy nhiên đối với repository, khi một trang Web không còn tồn tại nữa thì chưa chắc repository đã biết được để xóa sổ trang Web khỏi kho. Vì thế cần phải xây dựng cho repository một bộ máy phát hiện các trang Web lỗi thời và xóa chúng đi.
1.6.3. Lƣu trữ phân tán (distributed repository)
Nội dung của phần này đề cập đến việc thiết kế kho dữ liệu phân tán tại nhiều nút mạng được nối với nhau. Có ba vấn đề cần quan tâm, có ảnh hưởng đến đặc tính và hiệu năng của kho dữ liệu này này:
Phân tán các trang Web giữa các nút.
Tổ chức lưu trữ trang Web một cách vật lý trên một nút. Chiến dịch cập nhật.
Các trang Web được gán cho các nút sử dụng một số cách thức. Ví dụ như cách thức phân bố đều (uniform distribution policy), tất cả các nút được đối xử như nhau. Một trang Web có thể được phân tán vào bất cứ nút nào, không phụ thuộc vào định danh (identifier) của nó. Các nút sẽ lưu trữ các phần của bộ sưu tập trang Web theo tỷ lệ về khả năng lưu trữ của chúng. Một cách phân bố khác dựa trên luật băm (hash distribution policy) phân bố các trang Web căn cứ vào định danh của chúng. Trong trường hợp này, định danh của trang Web sẽ được sử dụng để tính ra định danh của nút. Ngoài ra còn nhiều phương pháp phân bố khác không được đề cập ở đây do giới hạn của tài liệu.
b. Các phương pháp tổ chức lưu trữ trang Web vật lý
Trên một nút, có ba thao tác có thể được thực thi: thêm trang Web (page addition/ insertion), truy cập theo luồng tốc độ cao (high-speed streaming) và truy cập ngẫu nhiên (random page access). Việc tổ chức vật lý các trang Web trên nút là nhân tố quyết định đến khả năng nút hỗ trợ tốt ba thao tác trên.
Có vài lựa chọn cho việc tổ chức vật lý trang Web. Chẳng hạn như, phương pháp băm (hash-based organization) coi các ổ cứng như tập các thùng hash (hash bucket) có kích thước đủ nhỏ để có thể tải vào bộ nhớ. Các trang Web được bố trí vào các bucket đó tùy theo định danh của chúng. Trong trường hợp việc thêm trang Web diễn ra thường xuyên thì cách thức bố trí log-structured có vẻ có nhiều thuận lợi. Theo cách này, ổ cứng được coi như là các log liên tiếp nhau mà các trang Web tải về sẽ được thêm vào đó. Phương pháp truy cập ngẫu nhiên sẽ làm việc hiệu quả nếu sử dụng cách đánh chỉ số theo B-tree mà theo đó các trang Web sẽ được sắp xếp vào các vùng vật lý trên đĩa cứng. Một vùng như vậy có thể để tổ chức hashed-log lai ghép, nơi mà thiết bị lưu trữ được chia thành phần liên tiếp kích thước lớn – “extents” (đối nghịch với các buckets). Các trang Web được phân bố kiểu hash vào các extents và mỗi extent được tổ chức giống như là một log-strcutured file. Bảng sau đây tổng kết hiệu năng tương ứng của từng phương pháp. Nói chung là lược đồ dựa trên log (log-based scheme) hoạt động khá tốt, ngoại trừ trường hợp có quá nhiều yêu cầu truy cập ngẫu nhiên.
Log-structured Hash-based Hashed-log Streaming performance + + – +
Random access performance + – + + + – Page addtion + + – +
Bảng 2. Tổng kết hiệu năng của các phương pháp tổ chức lưu trữ vật lý Web
Do sự cập nhật được thực thi bởi crawler, việc thiết kế cập nhật cho repository phụ thuộc vào đặc trưng của crawler. Cụ thể là có ít nhất hai cách mà crawler có thể được cấu trúc hóa:
Batch-mode or steady crawler: Batch-mode crawler được chạy định kỳ, có thể là 1 tháng một lần, và được phép crawl trong một khoảng thời gian cho tới khi tập các trang Web mục tiêu được crawl. Với crawler này, repository có được độ tươi xác định là số lượng các ngày trong tháng. Trái lại steady crawler chạy liên tục và cập nhật repository liên tục.
Partial or complete crawler: Batch-mode crawler có thể được cấu hình để thực hiện crawl hoàn toàn mỗi khi nó được chạy hoặc crawl một số Web site chỉ định. Trong trường hợp thứ nhất, các trang Web mới crawl về thay thế các trang Web cũ
trong toàn bộ bộ sưu tập còn trong trường hợp thứ hai thì bộ sưu tập mới được tạo ra bằng cách cập nhật phần thông tin mà crawler thu về được cho phần các trang Web mà nó được chỉ định.
Dựa vào hai nhân tố trên mà repository lựa chọn phương pháp cập nhật ngay (in-place update) hay là cất trang Web mới tải về ra chỗ khác rồi tiến hành cập nhật bởi một thao tác khác (shadowing). Như mô tả trong hình 18 các nút đọc (read nodes)
lưu trữ bố sưu tập đã tồn tại và được sử dụng cho các yêu cầu truy cập ngẫu nhiên và truy cập theo luồng. Các nút cập nhật (update nodes) chứa tập các trang Web tải về trong đợt crawl gần nhất.
Một tích chất hấp dẫn của phương pháp shadow là sự độc lập hoàn toàn giữa quá trình cập nhật và quá trình đọc. Một nút lưu trữ đơn lẻ không phải đồng thời kiểm soát việc thêm trang Web và việc đọc chúng ra. Như vậy tránh được xung đột, dẫn đến cải thiện hiệu năng và thực thi cũng đơn giản hơn. Theo một khía cánh khác, bởi vì có sự trễ giữa thời điểm trang Web được tải về và thời điểm trang Web sẵn sàng cho các truy cập nên shadowing có thể làm giảm độ tươi của bộ sưu tập các trang Web.