2. Các vấn đề thiết kế phân tán:
4.3. Mô hình cấp phát
Chúng ta sẽ thảo luận một mô hình cấp phát có mục tiêu là giảm thiểu tổng chi phí xử lý và lưu trữ trong khi vẫn cố gắng đáp ứng được các đòi hỏi về thời gian đáp ứng. Mô hình có dạng sau
min (Tổng chi phí)
với ràng buộc
ràng buộc thời gian đáp ứng, ràng buộc lưu trữ, ràng buộc xử lý.
Ta sẽ khai triển các thành phần của mô hình này. Ký hiệu biến quyết định
= lai nguoc neu S cho phan F neu x i j ij 0 1
• Tổng chi phí
Hàm tổng chi phí có hai thành phần: phần xử lý vấn tin và phần lưu trữ. Vì vậy nó có thể biểu diễn là ∑ ∑ ∑ ∈ ∈ ∈ + = SS S F FF jk QQ q i k j i STC QPC TOC với
QPCi là chi phí xử lý câu vấn tin của ứng dụng qi
STCjk là chi phí lưu mảnh Fj tại vị trí Sk. Ta xét chi phí lưu trữ trước. Nó được cho bởi
STCjk= USCk * size(Fj) * xjk
và hai ký hiệu tổng là tìm các tổng chi phí lưu trữ tại tất cả vị trí cho tất cả các mảnh. Chi phí xử lý vấn tin khó xác định hơn. Ta tách QPCi hành hai thành phần chi phí xử lý PC và chi phí truyền TC
QPCi= PCi+ TCi
Thành phần xử lý PC gồm 3 hệ số chi phí: chi phí truy xuất AC, chi phí toàn vẹn IE và chi phí điều khiển đồng thời CC:
PCi= ACi+ IEi + CCi
Mô tả chi tiết cho mỗi hệ số chi phí phụ thuộc thuật toán dùng để hoàn tất các tác vụ đó. Chi tiết về chi phí truy xuất AC như sau
ACi = ∑ ∑( ) ∈ ∈ + SS Sk Fj FF ij ij ij ij jk k LPC x RR r UR u * * * *
Hai số hạng đầu trong công thức trên tính số truy xuất của vấn tin qi đến mảnh Fj . Chú ý rằng
(uij *URij +rij*RRij)
là tổng số các truy xuất cập nhật và đọc mảnh Fj . Giả thiết chi phí xử lý là giống nhau với mọi mảnh. Ký hiệu tổng cho biết tổng số các truy xuất cho tất cả các mảnh được qi
tham chiếu. Nhân với LPCk cho ra chi phí của truy xuất này tại vị trí Sk. Ta dùng xjk để tách giá trị chi phí cho các vị trí có lưu các mảnh.
Hệ số chi phí duy trì tính toàn vẹn CSDL có thể mô tả giống thành phần xử lý ngoại trừ chi phí xử lý cục bộ một đơn vị cần được thay đổi nhằm phản ánh chi phí thực sự để duy trì tính toàn vẹn. Ta sẽ quay lại vấn đề này ở chương sau.
Hàm chi phí truyền dữ liệu có thể biểu diễn giống hàm chi phí truy xuất. Tuy nhiên tổng chi phí truyền dữ liệu cho cập nhật và cho yêu cầu chỉ đọc sẽ khác nhau hoàn toàn. Trong vấn tin cập nhật, ta cần cho tất cả mọi vị trí biết nơi có các bản sao, còn trong vấn tin chỉ đọc thì chỉ cần truy xuất đến 1 trong các bản sao là đủ. Ngoài ra vào lúc kết thúc yêu cầu cập nhật thì không cần truyền dữ liệu ngược lại cho vị trí đưa ra vấn tin ngoài một thông báo xác nhận, còn trong vấn tin chỉ đọc có thể phải có nhiều thông báo truyền dữ liệu. Thành phần cập nhật hàm truyền dữ liệu là ∑ ∑ ∑ ∑ ∈ ∈ ∈ ∈ + = SS S F FF ij jk koi SS S F FF ij jk oi k i k j k j g x u g x u TCU * * (), * * , ()
Số hạng thứ nhất để gửi thông báo cập nhật từ vị trí gốc o(i) của qi đến tất cả bản sao cần cập nhật. Số hạng thứ hai dành cho thông báo xác nhận.
Thành phần chi phí chỉ đọc là ∑ ∈ ∈ + = FF F koi j j i jk ij k i o jk ij SS S i j k g fsize F length F sel x r g x r TCR min * * (), * * ( )* ( )* ,()
Số hạng thứ nhất trong TCR biểu thị chi phí truyền yêu cầu chỉ đọc đến những vị trí có bản sao của mảnh cần truy xuất. Số hạng thứ hai biểu thị chi phí để truyền các kết quả từ những vị trí này đến vị trí yêu cầu. Phương trình này khẳng định rằng trong số các vị trí có bản sao của cùng 1 mảnh, chỉ vị trí có tổng chi phí truyền thấp nhất mới được chọn để thực hiện thao tác này.
Bây giờ hàm chi phí truyền dữ liệu của câu vấn tin qi có thể được tính là TCi = TCUi + TCRi
• Ràng buộc
Các hàm ràng buộc có thể được đặc tả tương tự. Tuy nhiên thay vì mô tả những hàm này kỹ lưỡng, chúng ta chỉ nêu những ý tổng quát. Ràng buộc thời gian đáp ứng cần được đặc tả là
Người ta thường đặc tả số đo chi phí của hàm theo thời gian vì nó đơn giản. Ràng buộc lưu trữ là ∑ ∈FF F jk j
STC ≤ khả năng lưu trữ tại vị trí Sk, ∀Sk ∈ SS
trong đó ràng buộc xử lý là
∑
qi tải trọng xử lý của qi tại Sk ≤ khả năng xử lý tại vị trí Sk, ∀Sk ∈ SS
Mô hình bài toán cấp phát có lời giải phi đa thức, vì thế người ta tìm các phương pháp heuristic cho lời giải gần tối ưu. Có sự tương ứng giữa bài toán cấp phát và bài toán chọn vị trí đặt thiết bị đã được khám phá trong các nghiên cứu về quá trình điều hành sản xuất.
Chương 3. CÀI ĐẶT THUẬT TOÁN PHÂN MẢNH DỌC Vertical Fragmentation
1.Giới thiệu ngôn ngữ lập trình dùng để cài đặt:
Theo Wikipedia
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các website, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự lập trình tubor C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin mã nguồn
JavaScript.
Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA-262 bản 3. ECMAScript là phiên bản chuẩn hóa của JavaScript. Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X – phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA-357.
- Java, JavaScript và JScript
Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn ngữ lập trình Java lúc đó đang được coi là một hiện tượng. JavaScript được bổ sung vào trình duyệt
Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995. Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liên quan gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triển dựa trên cú pháp của C. Java Script gồm 2 mảng là client-server thực hiện lệnh trên máy của end-user và web-server. Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript. JScript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm 1996.
DOM (Document Object Model), một khái niệm thường được nhắc đến với JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là một chuẩn riêng biệt có liên quan chặt chẽ với XML.
- Ứng dụng của JavaScript
JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C. Giống như C, JavaScript có khái niệm từ khóa, do đó, JavaScript gần như không thể được mở rộng.
Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng. Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập.
Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh,… Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt. Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Một số công nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm DHTML, Ajax và SPA.
Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tin PDF của Adobe Acrobat và Adobe Reader. Điều khiển Dashboard trên hệ điều hành Mac OS X phiên bản 10.4 cũng có sử dụng JavaScript. Công nghệ kịch bản linh động (active scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùng cho hệ điều hành. JScript .NET là một ngôn ngữ tương thích với CLI gần giống JScript nhưng có thêm nhiều tính năng lập trình hướng đối tượng.
Mỗi ứng dụng này đều cung cấp mô hình đối tượng riêng cho phép tương tác với môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần như giống nhau.
2.Giải thích chi tiết các câu lệnh trong chương trình: