Kiến thức cơ bản về cơ sở dữ liệu
(tontinton.com)Những điều cơ bản về bashdb
bashdb, chương trình cơ sở dữ liệu đơn giản nhất, được cấu thành từ hai hàm bash.- Hàm
db_setthêm dữ liệu vào tệp, còn hàmdb_gettruy vấn dữ liệu. - Các vấn đề của
bashdbbao gồm độ bền, tính nguyên tử, tính cô lập và hiệu năng.
Cải thiện bashdb để đạt ACID
- ACID là các thuộc tính của giao dịch cơ sở dữ liệu, bao gồm tính nguyên tử, tính nhất quán, tính cô lập và độ bền.
- Để cải thiện độ bền của
bashdb, thêm lệnhsyncvàodb_set. - Để đảm bảo tính cô lập, sử dụng chương trình
flockđể thêm khóa tệp.
Độ bền
fsyncvàfdatasynclà các system call dùng để flush bộ đệm ghi xuống đĩa.- Lệnh
syncflush mọi trang "bẩn" xuống đĩa, và cờ-dsẽ gọifdatasync.
Tính cô lập
- Sử dụng
flockđể cung cấp tính cô lập đa tiến trình chobashdb. flocklà chương trình Linux dùng cho khóa tệp, và cờ-scho phép đọc đồng thời.
Tin xấu
- Không tìm được cách đơn giản để đảm bảo tính nguyên tử với
bashdb. - Để cải thiện hiệu năng, cần tối ưu thuật toán
O(n).
Storage engine
- Mục đích của storage engine là cung cấp một lớp trừu tượng để đọc và ghi dữ liệu vào bộ nhớ lưu trữ bền vững.
- Thiết kế storage engine hướng tới việc giảm thiểu disk I/O và disk seek.
B-tree biến đổi được
- B-tree là một biến thể của BST có tính cục bộ không gian, giúp giảm thiểu disk I/O và seek.
- B-tree là BST được tổng quát hóa để các nút có thể có nhiều nút con hơn.
LSM tree bất biến
- LSM tree là cấu trúc dữ liệu bất biến được ghi tuần tự, phù hợp với workload thiên về ghi.
- LSM tree đệm dữ liệu trong bộ nhớ, rồi khi đạt dung lượng nhất định sẽ flush thành SSTable đã được sắp xếp.
Bloom filter
- Bloom filter là cấu trúc dữ liệu xác suất cho phép kiểm tra hiệu quả việc một phần tử không tồn tại trong tập hợp.
- Bloom filter hoạt động bằng cách sử dụng các hàm băm, với độ phức tạp không gian là
O(log n).
Write Ahead Log
- WAL là một tệp đặc biệt ghi log mọi thao tác giao dịch, và tái dựng trạng thái khi tiến trình cơ sở dữ liệu khởi động.
Tính cô lập
- Để đạt được tính cô lập, có thể dùng khóa bi quan, khóa lạc quan hoặc MVCC.
- Chuẩn ANSI/ISO SQL 92 định nghĩa nhiều mức cô lập đọc khác nhau.
Hệ thống phân tán
- Hệ thống phân tán làm tăng độ phức tạp, và có thể phân tán dữ liệu trên nhiều máy để đạt tính sẵn sàng và mở rộng theo chiều ngang.
- Theo lý thuyết CAP, hệ thống chỉ có thể đảm bảo hai trong ba yếu tố: tính nhất quán, tính sẵn sàng và khả năng chịu phân vùng.
Consistent hashing
- Consistent hashing là phương pháp phân mảnh dữ liệu giúp giảm lượng mục phải di chuyển khi thêm hoặc bớt nút.
Ý kiến của GN⁺:
- Hiểu các vấn đề cơ bản của cơ sở dữ liệu và các thuộc tính ACID là cốt lõi của kỹ thuật cơ sở dữ liệu.
- Ví dụ
bashdbgiúp hiểu các vấn đề phát sinh trong hệ thống cơ sở dữ liệu thực tế. - Thiết kế storage engine và hệ thống phân tán là các yếu tố quan trọng quyết định hiệu năng và độ tin cậy của cơ sở dữ liệu.
1 bình luận
Ý kiến trên Hacker News
Tóm tắt bình luận thứ nhất:
Tóm tắt bình luận thứ hai:
Tóm tắt bình luận thứ ba:
Tóm tắt bình luận thứ tư:
Tóm tắt bình luận thứ năm:
Tóm tắt bình luận thứ sáu:
Tóm tắt bình luận thứ bảy:
sync; mv; sync.Tóm tắt bình luận thứ tám:
Tóm tắt bình luận thứ chín:
Tóm tắt bình luận thứ mười: