Skip to main content

RocksDB - Partitioned Index/Filters

Trong RocksDB, Partitioned Index/Filters là một tính năng quan trọng giúp tăng tốc độ truy vấn dữ liệu bằng cách sử dụng các chỉ mục và bộ lọc được chia thành các phân đoạn (partition).

Khi RocksDB tạo ra một tệp SSTable mới, nó sẽ tạo các chỉ mục và bộ lọc tương ứng cho phân đoạn của tệp SSTable đó. Mỗi phân đoạn sẽ có một chỉ mục và bộ lọc riêng, được sắp xếp theo thứ tự tăng dần của khóa.

Khi thực hiện truy vấn dữ liệu, RocksDB sẽ sử dụng các chỉ mục và bộ lọc để xác định phân đoạn chứa khóa cần truy vấn. Việc này giúp giảm số lượng dữ liệu cần xem xét và tăng tốc độ truy xuất dữ liệu.

Ví dụ:

Giả sử bạn có một tệp SSTable với các phân đoạn như sau:

  • Phân đoạn 1: Khóa từ A đến F
  • Phân đoạn 2: Khóa từ G đến M
  • Phân đoạn 3: Khóa từ N đến Z

Khi thực hiện truy vấn dữ liệu với khóa X, RocksDB sẽ sử dụng chỉ mục và bộ lọc để xác định rằng phân đoạn 3 chứa khóa X. Vì vậy, RocksDB chỉ cần xem xét dữ liệu trong phân đoạn 3 để tìm kiếm khóa X, giảm bớt thời gian truy xuất dữ liệu.

Partitioned Index/Filters giúp tăng tốc độ truy vấn dữ liệu bằng cách giảm số lượng dữ liệu cần xem xét. Nó cung cấp một cơ chế tối ưu để xác định vị trí của dữ liệu trong RocksDB và tìm kiếm nhanh chóng các khóa cần truy vấn.

Ví dụ:

Giả sử bạn có một RocksDB với các tệp SSTable và phân đoạn như sau:

  • Tệp SSTable 1:
    • Phân đoạn 1: Khóa từ A đến F
    • Phân đoạn 2: Khóa từ G đến M
  • Tệp SSTable 2:
    • Phân đoạn 1: Khóa từ N đến T
    • Phân đoạn 2: Khóa từ U đến Z

Khi thực hiện truy vấn dữ liệu với khóa X, RocksDB sẽ sử dụng chỉ mục và bộ lọc của các tệp SSTable để xác định rằng phân đoạn 2 của tệp SSTable 2 chứa khóa X. Vì vậy, RocksDB chỉ cần xem xét dữ liệu trong phân đoạn 2 của tệp SSTable 2 để tìm kiếm khóa X, giảm bớt thời gian