II. Hệ phân tán dựa trên WEB
3. Sự nhân bản
Sự nhân bản cho các hệ thống lưu trữ web
Vai trò quan trọng của web ngày càng tăng về mặt tổ chức để đảm bảo khả năng biểu diễn và kết nối trực tiếp với người dùng, ta cần đảm bảo nội dung đồng thời cả khả năng tiện dụng trong truy cập. Sự phân biệt này mở đường cho các mạng phân phối nội dung (content delivery networks CDNs). Ý tưởng chính là đặt các CDN này ở bên dưới, để chúng đóng vai trị là các dịch vụ web, cung cấp cơ sở hạ tầng cho phân tán và sao chép các tài liệu web cho nhiều trang khác nhau trên Internet.
Tổ chức chung của CDN dưới dạng phản hồi
Có 3 hướng liên quan tới việc thực hiện sao chép trong các hệ thống lưu trữ web: đánh giá khoảng cách (metric estimation), adaptation triggering và thực hiện phép đo thích hợp (appropriate measures).
Một vấn đề đáng chú ý của CON là cần phải đánh giá vai trị của mặt khi có liên quan đến vấn đề lưu trữ các bản sao. Ví dụ, thời gian truy cập đến một tài liệu có thể tối ưu nếu nó được sao chép với số lượng lớn, nhưng nó lai địi hỏi chi phí lớn về tài chính cũng như băng thơng cho hệ thống. Do đó tuỳ trương hợp mà có các tiêu chí đánh giá khác nhau.
• Độ trễ : khoảng thời gian để thực hiện hành động, ví dụ tìm kiếm một tài liệu. Ví dụ đánh giá độ trễ giữa một client và vài remote server. Thay vì đánh giá độ trễ, ta có thể xác định băng thơng thích hợp giữa 2 nút trong mạng, đặc biệt quan trọng đối với việc truyền các tài liệu có kích cỡ lớn.
• Độ đo không gian : bao gồm khoảng cách giữa các nút thông qua số hop trong lớp mạng, hoặc số hop giữa các hệ thống tự trị. Tuy nhiên việc này rất khó thực hiện
• Độ đo về mức độ sử dụng mạng : thường liên quan đến băng thơng, việc tính tốn băng thơng bằng số byte được truyền qua mạng là đơn giản. Tuy nhiên để chính xác, ta nên đánh giá mức độ thường xuyên mà tài liệu được đọc, ghi, và nhân bản.
• Độ đo về tính nhất quán : xác định mức độ sai lệch của một bản sao so với bản gốc.
• Độ đo về tài chính : xác định mức độ hoạt động tốt của CDN. Tuy khơng mang tính kĩ thuật, nhưng trong trương hợp hoạt động trong hệ thống tài chính, đây lại là yếu tố quyết định. Ví dụ, hầu hết CDN tài chính đều đặt server tại trạm đỉnh của mạng Internet, nghĩa là họ thuê trực tiếp từ các ISP để phục vụ người dùng cuối. Điều này làm gắn chặt mo hình kinh doanh với mơ hình kĩ thuật, và trong thực tế rất tài liệu được đưa ra về mối liên hệ này. Qua các ví dụ trên, ta thấy việc đánh giá hiệu năng của CDN là cực kì phức tạp. Trong thực tế với CDN tài chính, ta có thể đơn giản hố như khả năng phục vụ nhanh người dùng, thực hiện tốt các yêu cầu của khách hàng.
Adaptation triggering
Vấn đề cần đặt ra là khi nào và thực hiện thế nào quá trình nhân bản. Một cách thức đơn giản là đánh giá độ đo theo chu kỳ và sau đó thực hiện đo nếu cần. Cách này thường được
thực hiện trong thực tế. Một tiến trình xác định thơng tin cuar server và định kì kiểm tra sự thay đổi.
Tuy nhiên việc thực hiện mang tính chu kỳ khơng đảm bảo độ tin cậy khi có sự thay đổi đột ngột trong hệ thống, ví dụ như đối với một flash crowd. Đó là sự kiện khi xuất hiện sự bùng nổ các yêu cầu cho một tài liệu đặc biệt nào đó, điều này có thể làm sụp đổ cả hệ thống. Việc điều khiển flash crowd là rất khó khăn. Một giải pháp là sử dụng tiến trình phỏng đốn flash crowd để đảm bảo để server có đủ thời gian thiết lập các bản sao, nhưng thật khó để đưa ra được các dự đốn chính xác.
Một giải pháp khác được đưa ra là sử dụng kiến trúc nội suy tuyến tính đơn, thơng qua việc đánh giá số yêu cầu được gửi đến trong một khoảng thời gian dựa theo kích cỡ của cửa sổ. Các khoảng được chia thành các đoạn nhỏ, từ đó nội suy để xác định hình dạng đường cong thể hiện lượng yêu cầu phụ thuộc thời gian. Nếu yêu cầu gần đạt tới giá trị ngưỡng, cảnh báo được đưa ra.
Các mẫu đo phản ánh sự truy cập flash crowd trong trương hợp bình thường và 3 trường hợp bất thường
Tuy nhiên, phương pháp này khơng hiệu quả do nó phụ thuộc vào kích thước cửa sổ, dẫn đến sự phụ thuộc vào lưu lượng server web. Do đó ta cần chỉnh bằng tay để đạt dự đốn chính xác cho từng site riêng biệt mà hiện chưa có cơ chế tự động nào.
Vai trò của việc tái định hướng (redirection) là rất quan trọng trong việc gửi yêu cầu của client, điều này được thực hiện thông qua các giao thức tái định hướng thích nghi, đảm bảo cho thơng tin khi các tiến trình thực hiện việc tái định hướng.
Bên cạnh việc sử dụng các giao thức khác nhau, vấn đề dược đưa ra là có cần đảm bảo việc tái định hướng yêu cầu có nên trong suốt với client hay khơng. Có 3 kĩ thuật được sử dụng trong thực tế : TCP handoff, tái định hướng DNS(DNS redirection), và tái định hướng HTTP( HTTP redirection).
• Tái định hướng DNS : cơ chế trong suốt đảm bảo client hồn tồn khơng hay biết về vị trí thực của tài liệu. Chú ý rằng, cơ chế này chỉ áp dụng cho site thực thể vì tên của tài liệu đơn khơng hợp với khơng gian tên cuả DNS.
• Tái định hướng HTTP: ngược lại, đây không là cơ chế trong suốt. Khi client yêu cầu tài liệu đặc biệt nào đó, nó sẽ được nhận một URL tạm để sau đó được tái định hướng. URL này hiện đối với người dùng, nên nếu lưu lại địa chỉ này, nó có thể vơ dụng trong lần u cầu sau.
Nhân bản của các ứng dụng web
Trong phần này ta tập trung vào các kĩ thuật cache và sao chép các bản sao tĩnh của nội dung Web. Các kĩ thuật này cỉa thiện đáng kể hiệu năng hệ thống, việc kết hợp cả 2 kĩ thuật cho phép đạt được hiệu quả cao hơn so với từng kĩ thuật đơn lẻ.
Ta xét trong ví dụ dưới đây, giả sử một CDN, mỗi host là một server gốc đóng vai trị quyết định trong việc đều khiển các yêu cầu của client, và có khả năng lưu trữ từng phần thông tin giống như server gốc.
Các phương án cải thiện hiệu năng hệ thống :
• Áp dụng bản sao đầy đủ cho tất cả dữ liệu lưu trên server, điều này áp dụng tốt khi tỉ số cập nhật nhỏ và các truy vấn yêu cầu tìm kiếm cơ sỏ dữ liệu mở rộng. Tuy nhiên điều này không thể thực hiện được khi tỉ số cập nhật lớn, và mỗi bản cập nhật sẽ tạo gánh nặng cho cả hệ thống mạng. Vấn đề tiếp theo là khi các truy vấn phức tạp, điều này dẫn tới việc truy cập tới nhiều bảng gây khó khăn cho việc tìm kiếm dữ liệu.
• Điều đó dẫn tới việc thực hiện các bản sao từng phần, làm giảm nhẹ đáng kể gánh nặng cho hệ thống. Nhưng vấn đề nảy sinh là quyết định xem dữ liệu nào nên được tạo bản sao, một giải pháp cho phương án này là ta sẽ phân tích các vết đã truy cập của các bản ghi trước đó và thực hiện thơng qua hàm đánh giá
Cost = ∑wimi , với i = 1÷n và mi là độ đo khoảng cách và wi là trọng số dương.
• Tạo cache nội dung-mù (content-blind). Ý tưởng của phương pháp cực kỳ đơn giản: khi client đưa ra yêu cầu tới server edge, server sẽ tính tốn giá trị băm của truy vấn này, từ đó xác định xem có tồn tại truy vấn nào như vậy chưa. Nếu chưa có sẽ được lưu vào cache trước khi gửi tới client, nếu đã có trong cache thì gửi ln cho client. Phương pháp này làm giảm đáng kể mức độ tính tốn khi so sánh với việc ta phải tiếp xúc với CSDL. Tuy nhiên nó trở nên vơ dụng nếu trong cache có rất nhiều dữ liệu dư thừa so với nội dung cần thiết hay so với các bản sao CSDL.
Các phương pháp trên đây có thể được triển khai trong việc hình thành các dịch vụ web, tuy nhiên cần có nhiều nghiên cứu trước khi đưa ra giải pháp ổn định.