Một Số Nghiên Cứu Khác Về Đánh Giá Hiệu Năng Csdl Hđt


thể tạm thời trong một thời gian nhất định hoặc lâu dài được lưu trữ bền vững trong CSDL, do hệ thống hoặc do người dùng tạo ra.

Cài đặt OID cho các đối tượng bền vững dựa trên định danh logic hoặc định danh vật lý. Định danh vật lý POID (physical OID) cung cấp giá trị OID đồng nhất vớiđịa chỉ vật lý của đối tượng. Ưu điểm là có thể nhận đối tượng trực tiếp qua OID của nó, nhược điểm là tất cả các đối tượng cha và các chỉ mục đều phải được cập nhật mỗi khi một đối tượng được di chuyển đến một trang khác. Phương pháp dùng định danh logic LOID (logical OID) cấp phát một OID duy nhất cho mỗi đối tượng trên toàn bộ hệ thống. LOID có thể được sinh ra bằng cách sử dụng một bộ đếm duy nhất trên toàn bộ hệ thống hoặc bằng cách gộp định danh của server với một bộ đếm ở mỗi server. Vì OID là bất biến nên không phải trả chi phí nào khi di chuyển đối tượng. Điều này có được qua một bảng OID liên kết mỗi OID với địa chỉ đối tượng vật lý, bù lại phải tốn chi phí tìm kiếm trên bảng OID cho mỗi lần truy xuất đối tượng. Để tăng tốc độ tìm kiếm, bảng OID thường được tổ chức dạng bảng băm hoặc cây B+.

Cài đặt định danh cho đối tượng tạm thời thường sử dụng các kỹ thuật được dùng trong các ngôn ngữ lập trình, và cũng có thể thuộc loại logic hoặc vật lý.

Trong các hệ quản trị CSDL phân tán, dùng LOID có thể thích hợp hơn vì các thao tác như làm tái tụ dữ liệu, nhân bản và phân mảnh xảy ra thường xuyên.

1.2.5.2. Ánh xạ con trỏ

Trong các hệ CSDL đối tượng, người ta có thể duyệt từ một đối tượng đến một đối tượng khác bằng cách dùng biểu thức đường dẫn (path expression) có chứa các thuộc tính với giá trị của chúng dựa trên đối tượng. Về cơ bản biểu thức đường dẫn đều là con trỏ. Thông thường trên đĩa, định danh đối tượng được dùng để biểu diễn những con trỏ này. Tuy nhiên trong bộ nhớ, người ta muốn dùng các con trỏ trên bộ nhớ trong để duyệt từ đối tượng này sang đối tượng khác. Quá trình chuyển phiên bản từ con trỏ trên bộ nhớ ngoài thành phiên bản con trỏ trên bộ nhớ trong gọi là ánh xạ con trỏ (pointer swizzling). Các lược đồ dựa trên phần cứng và dựa trên phần mềm là hai loại ánh xạ con trỏ.


1.2.5.3. Di trú đối tượng

Trong các hệ phân tán, theo thời gian, các đối tượng cần được di chuyển giữa các vị trí. Điều này làm phát sinh một số vấn đề. Trước hết là đơn vị di trú. Ba khả năng có thể được xem xét khi di trú các lớp:

Mã nguồn phải được di chuyển và biên dịch lại tại vị trí đích.

Phiên bản đã được biên dịch của một lớp được di trú giống như mọi đối tượng khác.

Mã nguồn được di chuyển nhưng không di chuyển các thao tác của nó đã được biên dịch, mà sẽ dùng đến chiến lược di chuyển muộn.

Vấn đề tiếp theo là việc di chuyển đối tượng phải được theo vết để có thể tìm ra vị trí mới của chúng. Một cách thường dùng theo vết các đối tượng là để lại các đại diện hoặc các đối tượng ủy nhiệm. Di trú đối tượng có thể được thực hiện dựa trên trạng thái hiện hành của chúng. Đối tượng có thể ở một trong bốn trạng thái:

Sẵn sàng (ready): Không cần kích hoạt, sẵn sàng nhận thông báo

Hoạt động (Active): Hiện có mặt trong một hoạt động

Chờ (waiting): Đã kích hoạt một đối tượng khác và đang chờ trả lời

Treo (suspended): Hiện tạm thời không sẵn sàng đối với kích hoạt Các đối tượng đang trong trạng thái hoạt động hoặc chờ không được phép di trú

vì hoạt động mà chúng đang tham gia có thể bị phá vỡ. Việc di trú gồm các bước:

Chuyển tải đối tượng từ nguồn đến đích, và

Tạo ra một ủy nhiệm tại nguồn để thay thế đối tượng ban đầu

Một vấn đề khác nảy sinh là khi di chuyển các đối tượng hợp phần, chuyển tải một đối tượng hợp phần có thể phải chuyển tải cả những đối tượng được đối tượng hợp phần tham chiếu đến. Điều này được đề cập trong phần xử lý truy vấn.

1.2.5.4. Lưu trữ đối tượng phân tán

Trong lưu trữ đối tượng phân tán cần quan tâm đến việc phân nhóm đối tượng (object clustering) và dọn rác phân tán (distributed garbage collection).


Mô hình đối tượng về cơ bản mang tính khái niệm và ánh xạ mô hình khái niệm thành mô hình lưu trữ vật lý là bài toán kinh điển của CSDL. Trong các hệ CSDL đối tượng chúng ta có hai mối quan hệ giữa các kiểu: sinh kiểu con và hợp phần. Các mối quan hệ này có vai trò quan trọng trong quá trình phân nhóm đối tượng. Phân nhóm đối tượng đề cập đến nhóm các đối tượng ở mức vật lý theo những tính chất chung nhằm tăng tốc độ truy xuất đối tượng.

Một ưu điểm của các hệ đối tượng là các đối tượng có thể tham chiếu đến các đối tượng khác bằng định danh đối tượng. Trong một hệ đếm tham chiếu, mỗi đối tượng có một bộ đếm ghi số lượng các tham chiếu đến nó. Bộ nhớ dành cho một đối tượng được tái sử dụng khi giá trị bộ đếm bằng 0.

1.2.6. Quản lý giao dịch

Các yêu cầu quan trọng trong quản lý giao dịch trong các hệ CSDL HĐT:

Ngoài việc đảm bảo đồng bộ hóa các thao tác Read và Write, bộ quản lý giao dịch phải có khả năng giải quyết được các thao tác trừu tượng (abstract operation).

Đáp ứng được sự đồng bộ hóa việc truy xuất đến các đối tượng hợp phần và đối tượng phức hợp. Đồng bộ hóa những đối tượng này đòi hỏi phải đồng bộ hóa truy xuất đến các đối tượng thành phần.

Nhiều ứng dụng đòi hỏi phải hỗ trợ các hoạt động trong thời gian dài trải qua nhiều giờ, nhiều ngày hoặc thậm chí là nhiều tuần lễ. Vì thế cơ chế giao dịch phải hỗ trợ việc chia sẻ kết quả từng thành phần.

Có khả năng theo dòi các biến cố và việc thực thi của các hoạt động được hệ thống kích hoạt.

1.3. Đánh giá hiệu năng CSDL HĐT với thư viện OO7

1.3.1. Giới thiệu

Ngoài vấn đề về chức năng và độ phù hợp của loại CSDL HĐT trong các bài toán hướng đối tượng thì vấn đề hiệu năng của chúng cũng luôn được cân nhắc nhằm đánh giá xem liệu CSDL HĐT đã thực sự hiệu quả trong quá trình triển khai


dự án. Một số tiêu chuẩn đánh giá hiệu năng CSDL HĐT đã được đưa ra, trong đó OO7 (The OO7 benchmark) [17] được coi là tiêu chuẩn và thư viện khá phổ biến do nó cung cấp khá đầy đủ các kịch bản kiểm thử nhằm đánh giá các loại CSDL HĐT từ nhiều góc độ khác nhau. Trong phần này sẽ trình bày về thư viện OO7 và kết quả đánh giá hiệu năng với CSDL HĐT Versant. OO7 đánh giá CSDL HĐT các tiêu chí chính sau:

- Tốc độ xử lý trong việc duyệt (traversal) các đối tượng, kể cả sử dụng bộ nhớ đệm hay duyệt trực tiếp trên ổ đĩa.

- Mức độ hiệu quả trong việc thay đổi đối tượng (tạo, xóa và cập nhật), kể cả đối tượng sử dụng index và không sử dụng index, dữ liệu lặp và dữ liệu dư thừa.

- Hiệu năng của việc xử lý các loại câu truy vấn đối tượng.


1.3.2. Một số nghiên cứu khác về đánh giá hiệu năng CSDL HĐT

Tiêu chuẩn OO1 (Object Operations Benchmark) [18], còn được gọi là tiêu chuẩn Sun Benchmark, lần đầu tiên được đưa ra để đánh giá hiệu năng các hệ thống CSDL cho các ứng dụng thiết kế công nghệ. Mặc dù phiên bản đầu tiên còn khá đơn giản nhưng được coi là tiền thân của tiêu chuẩn đánh giá CSDL HĐT sau này. Một chuẩn nữa là HyperModel [11] được phát triển bởi Tektronix. So với OO1 thì HyperModel có lược đồ dữ liệu đầy đủ hơn (bao gồm nhiều dạng quan hệ khác nhau và xử lý các tập dữ liệu nguyên thủy lớn hơn) và đưa ra nhiều thao tác đánh giá hơn (bao gồm đầy đủ các hàm như tìm kiếm, duyệt và cập nhật).

Mặc dù OO1 và HyperModel cũng đưa ra được những kết quả nhất định trong lĩnh vực đánh giá hiệu năng CSDL HĐT nhưng chưa đầy đủ, ví dụ như chúng chưa bao gồm mô phỏng các đối tượng phức hợp, đây là yêu cầu thực tế cho các dạng CSDL HĐT trong thực tế, ngoài ra hai bộ thư viện này không bao gồm đầy đủ các bộ kiểm tra cho nhiều dạng duyệt hoặc cập nhất đối tượng như có index hoặc không có index. Do đó các nhà nghiêu cứu tìm cách đưa ra một bộ tiêu chuẩn khác đầy đủ hơn nhằm đánh giá các vấn đề về hiệu năng và tính năng của các CSDL HĐT, và OO7 là một thư viện được sử dụng rộng rãi hơn trong việc đánh giá hiệu năng CSDL HĐT.


1.3.3. Thiết kế CSDL của OO7

Mục tiêu của thiết kế OO7 là kiểm tra nhiều khía cạnh khác nhau của hiệu năng hệ thống đặc biệt là cấu trúc CSDL và các thao tác xử lý đối tượng. Các đặc tả kỹ thuật của OO7 bao gồm lược đồ dữ liệu được mô tả ở chi tiết cho các nhà phát triển nếu muốn tự cài đặt thư viện. Những thông tin đặc tả cơ bản nhất của OO7 đưa ra ở phần này dựa trên bản cài đặt Java, bao gồm cả CSDL mẫu và kết quả chạy thử trên một số hệ thống CSDL HĐT như Db4o hay Versant. Theo trang web xếp hạng các hệ thống CSDL HĐT 2016 [55] thì Cáche, Db4o và Versant là ba hệ thống dẫn đầu trong các hệ thống CSDL HĐT.

Chú ý là bản thiết kế CSDL chạy thử được đưa ra ở mức độ tổng quát, mục tiêu là nhằm tìm hiểu và đánh giá các hệ thống CSDL HĐT. CSDL được thiết kế với ba cấp độ: nhỏ, trung bình và lớn. Bảng 1.1 mô tả các tham số CSDL chính của OO7. Hai thành phần chính của bản thiết kế dữ liệu OO7 tập “Đối tượng nguyên tố” (atomic object) và “Đối tượng phức hợp” (composite object). Tập hợp các đối tượng nguyên tố với các kết nối theo mô hình đồ thị sẽ cấu thành một đối tượng phức hợp, mỗi thành phần phức hợp tương ứng với một thiết kế cơ bản nào đó của ứng dụng thực tế. Tập các thành phần phức hợp này được gọi là thư viện thiết kế của OO7.

Bảng 1.1: Các tham số CSDL chính của OO7


Tham số

Mô tả

Small

Medium

Large

NumModule

Số lượng module

1

1

10

NumCompPerModule

Số lượng đối tượng phức hợp của một module

500

500

500

NumAtomicPerComp

Số lượng đối tượng nguyên tố trong một đối tượng phức hợp

200

200

200

NumConnPerAtomic

Số lượng kết nối của một đối tượng nguyên tố

3, 6, 9

3, 6, 9

3, 6, 9

DocumentSize (bytes)

Kích cỡ văn bản

2K

20K

20K

Có thể bạn quan tâm!

Xem toàn bộ 136 trang tài liệu này.


ManualSize (bytes)


100K

1M

1M

NumAssmPerAssm

Số lượng Assembly con trong một Assembly lớn hơn

3

3

3

NumAssmLevels

Số cấp độ Assembly

7

7

7

NumCompPerAssm

Số lượng đối tượng phức hợp đóng trong một gói Assembly

3

3

3

Để mô phỏng đối tượng gần với thực tế nhất, mỗi đối tượng phức hợp và đối tượng nguyên tố bao gồm một số thuộc tính cơ bản như ID kiểu int, BuildDate, một mảng dữ liệu, một vài thuộc tính cơ bản khác và kèm theo một văn bản. Văn bản cũng được mô tả bởi các tham số cơ bản như DocID, DocTitle, Text và độ lớn của văn bản được thiết lập bởi tham số DocumentSize. Các kịch bản đánh giá hiệu năng sẽ sử dụng các thuộc tính trên ví dụ như kiểm tra, duyệt hay cập nhật để đo thời gian xử lý trong quá trình thực thi.

Các đối tượng nguyên tố kết nối với nhau để tạo thành thành phần phức hợp, được biểu diễn bởi tham số NumAtomicPerComp, và sự liên kết giữa các đối tượng nguyên tố thông qua tham số NumConnPerAtomic hình thành nên một đồ thị kết nối giữa các đối tượng nguyên tố trong một đối tượng phức hợp như Hình 1.5.

Hình 1 5 Đồ thị kết nối đối tượng của OO7 Mỗi thiết kế CSDL gồm nhiều 1

Hình 1.5: Đồ thị kết nối đối tượng của OO7


Mỗi thiết kế CSDL gồm nhiều module và mỗi module bao gồm nhiều

assembly mà ở đó một assembly là sự đóng gói của nhiều đối tượng phức hợp và


nguyên tố với nhau và có thể đóng gói ngay cả các assembly. Ở cấp độ cơ sở, được gọi là base assembly, gồm sự đóng gói các đối tượng phức hợp và cơ sở, các đối tượng này có thể được thiết kế ở cấp độ dùng chung hoặc dùng riêng (shared và unshared), số lượng đối tượng trên một assembly được đặt bởi tham số NumCompPerAssm. Các assembly lại có thể được đóng gói để hình thành các assemply phức hợp và các assembly này được liên kết theo hình cây với một số cấp độ nhất định được mô tả qua tham số NumAssmLevels. Số lượng đối tượng phức hợp trong một module rải rác ở các assembly cũng được giới hạn bởi tham số NumCompPerModule.

Mỗi module được thiết kế gồm một đối tượng dữ liệu kích thước lớn để mô phỏng trong việc đánh giá hiệu năng với các đối tượng rất lớn, đối tượng này được thiết lập qua tham số ManualSize. Với thiết kế như vậy, mô hình hóa bản thiết kế CSDL của OO7 được minh họa như Hình 1.6.


Hình 1 6 Mô hình hóa thiết kế CSDL của OO7 Mọi đối tượng và các thuộc tính 2

Hình 1.6: Mô hình hóa thiết kế CSDL của OO7


Mọi đối tượng và các thuộc tính của bản thiết kế OO7 đưa ra đều nhằm mục đích mô phỏng tốt nhất các bài toán hướng đối tượng trong thực tế. Kể cả với dạng


hướng đối tượng phân tán thiết kế trên cũng có thể mô phỏng được các đối tượng các địa điểm cục bộ hoặc phân tán khác nhau mà ở đó mỗi module được minh họa như một trạm xử lý của hệ phân tán.

1.3.4. Kịch bản đánh giá hiệu năng

1.3.4.1. Duyệt đối tượng

Duyệt đối tượng dữ liệu là kịch bản chính trong việc đánh giá hiệu năng của CSDL HĐT, khác với truy vấn đơn thuần, thao tác này duyệt từ đối tượng này tới đối tượng có liên kết khác, với từng đối tượng được duyệt kịch bản sẽ gọi một hàm nào đó của đối tượng này. Các kịch bản duyệt như trong Bảng 1.2.

Bảng 1.2: Các kịch bản duyệt đối tượng


Kịch bản

Mô tả bước thực hiện

Trav #1: Duyệt cơ bản

- Duyệt cây assembly từ mức cao tới mức cơ sở

- Tại mỗi assembly cơ sở sẽ duyệt các đối tượng Composite của riêng nó (unshared)

- Tại mỗi đối tượng Composite sẽ thực hiện thuật toán tìm kiếm theo chiều sâu (DFS) các đối tượng nguyên tố trong cây đồ thị

- Trả về số lượng đối tượng nguyên tố được thăm

Trav #2: Duyệt cập nhật

- Giống như kịch bản #1, nhưng sẽ cập nhật đối tượng nguyên tố trong quá trình duyệt DFS tại từng đối tượng Composite

- Có 3 kịch bản update như sau

o Update một đối tượng nguyên tố (#2a)

o Update tất cả đối tượng nguyên tố (#2b)

o Update N lần giống nhau cho tất cả các đối tượng nguyên tố (#2c)

- Hàm update là chuyển đổi giá trị thuộc tính của đối tượng nguyên tố

- Trả về tổng số lần cập nhật được thực hiện

- Giá trị N được thiết lập bởi tham số UpdateRepeatCnt

Xem toàn bộ nội dung bài viết ᛨ

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 10/06/2022