L ỜI CAM ĐOAN
3.1. Cơ sở hạ tầng của một storage engine
Trước tiên, phải khẳng định rằng, không có một kiến trúc chung cho mọi storage
engine, hay nói cách khác, tùy vào ứng dụng cụ thể trong những tình huống cụ thể mà các storage engine có thể triển khai các đặc trưng phù hợp nhất với ứng dụng đó. Tuy
nhiên, khi xây dựng một storage engine có thể cân nhắc tới các yếu tố cơ bản như sau:
- Lưu trữ vật lý: bao gồm mọi thứ từ các kích thước trang tổng thể cho các bảng
và các chỉ mục cũng như định dạng sử dụng để lưu trữ dữ liệu tới các đĩa vật lý.
- Tính đồng thời: các ứng dụng khác nhau yêu cầu các phạm vi khóa khác nhau. Lựa chọn chiến lược khóa phù hợp có thể làm giảm chi phí và do đó cải thiện hiệu suất
trên toàn bộ hệ thống. Nó cũng bao gồm các lựa chọn hỗ trợ mức cao hơn như là điều
khiển đồng thời đa phiên bản.
- Hỗ trợ giao tác: không phải mọi ứng dụng đều cần giao tác. Việc xây dựng chức năng hỗ trợ giao tác cho một storage engine là khá phức tạp nên chỉ xây dựng nó khi ứng dụng thực sự cần.
- Toàn vẹn tham chiếu: các máy chủ cần có để buộc các ràng buộc tham chiếu
trong CSDL quan hệ thông qua các khóa ngoại định nghĩa trong ngôn ngữ định nghĩa
dữ liệu DDL.
- Hỗ trợ chỉ mục: các kịch bản ứng dụng khác nhau hướng tới đạt được lợi ích tốt
nhất từ các chiến lược chỉ mục khác nhau. Mỗi một storage engine thông thường có các phương thức đánh chỉ mục của riêng nó, mặc dù một vài chỉ mục, như là chỉ mục
- Lưu đệm: Mặc dù có một vài bộ nhớ đệm thường phổ biến trong mọi storage
engine, như các vùng đệm lưu các kết nối người dùng hoặc bộ đệm truy vấn tốc độ cao
trong MySQL, các bộ nhớ đệm khác thường chỉ được sử dụng trên một storage engine nhất định. Lựa chọn chiến lược lưu đệm phù hợp có thể góp phần cải thiện đáng kể chi
phí vào/ra, từ đó cải thiện hiệu suất của hệ thống trong một số trường hợp.
- Một số kĩ thuật cải thiện hiệu suất: bao gồm đa luồng I/O cho xử lí song song,
các luồng đồng thời, kiểm soát CSDL, quản lí chèn số lượng lớn, …
- Các đặc trưng mục tiêu chuyên biệt: như hỗ trợ cho thực thi địa lý, các hạn chế
an ninh cho các quá trình thực thi thao tác dữ liệu nhất định, và các tính năng tương tự
khác.
Dựa trên yêu cầu riêng của ứng dụng cần xây dựng, cùng với việc cân nhắc các
yếu tố cơ bản trên, người phát triển cần xác định rõ tập các tính năng cơ bản thiết thực
cho hệ thống nhằm nâng cao hiệu suất, tính hiệu quả, thiết thực và phù hợp nhất với
nhu cầu của người dùng.