Hiểu về mongodb wiredtiger

Nội dung bài viết

Video học lập trình mỗi ngày

WiredTiger là gì?


WiredTiger là một nền tảng mở rộng NoQuery, mã nguồn mở để quản lý dữ liệu. Nó được phát hành theo phiên bản 2 hoặc 3 của GNU General Public License. WiredTiger sử dụng kiến trúc MultiVersion Concurrency Control. MongoDB mua lại WiredTiger Inc. vào ngày 16 tháng 12 năm 2014. Theo wiki. 


Và nói về WiredTiger thì những ai mà làm về method thì quá rõ. Không tin bạn cứ thử tìm vào nơi chưa data của mongodb mà xem, thường thì nó nằm ở /var/lib/mongodb. Nó sẽ có dạng thế này.

WiredTiger
WiredTigerLAS.wt
WiredTiger.lock
WiredTiger.turtle
WiredTiger.wt
_mdb_catalog.wt
mongod.lock
sizeStorer.wt
collection-0-601483983079373625.wt
index-1-601483983079373625.wt
diagnostic.data
storage.bson

Công cụ lưu trữ WiredTiger


WiredTiger là công cụ lưu trữ giá trị khóa, hiệu suất cao, là công cụ lưu trữ mặc định trong MongoDB 3.2 và mới hơn. Trong triển khai MongoDB sử dụng công cụ WiredTiger, thư mục được quản lý bởi WiredTiger. Nghĩa là, WiredTiger cần toàn bộ nội dung của thư mục để hoạt động bình thường. Xóa tệp khỏi thư mục này có thể khiến WiredTiger (và do đó MongoDB) không thể khởi động.


Files WiredTige


Cơ sở dữ liệu MongoDB 3.2 hoặc những phiên bản mới hơn được tạo bắt đầu với cài đặt mặc định thường bao gồm như trên:

WiredTiger
WiredTigerLAS.wt
WiredTiger.lock
WiredTiger.turtle
WiredTiger.wt
_mdb_catalog.wt
mongod.lock
sizeStorer.wt
collection-0-601483983079373625.wt
index-1-601483983079373625.wt
diagnostic.data
storage.bson

Làm db là phải hiểu từng tệp và chức năng của nó như sau: 

  • WiredTiger: tệp phiên bản WiredTiger
    Tệp văn bản này chứa phiên bản WiredTiger được sử dụng để tạo cơ sở dữ liệu và được WiredTiger sử dụng khi khởi động để xác định xem có cơ sở dữ liệu hay không.
  • WiredTiger.wt: tệp siêu dữ liệu WiredTiger
    Tệp siêu dữ liệu chính theo dõi thông tin về bộ sưu tập và chỉ mục nào tồn tại trong cơ sở dữ liệu, cũng như bản cập nhật lâu bền gần đây nhất (điểm kiểm tra) cho từng bộ sưu tập và chỉ mục đó.
  • WiredTiger.turtle: tệp cấu hình công cụ cho tệp WiredTiger.wt 
    Tệp văn bản này chứa cấu hình công cụ WiredTiger cho tệp siêu dữ liệu được mô tả ở trên. WiredTiger.wt 
  • WiredTigerLAS.wt: tệp giao diện WiredTiger
    MongoDB định cấu hình bộ nhớ đệm trong bộ nhớ WiredTiger để chứa không quá một tỷ lệ dữ liệu bẩn được chỉ định (mặc định là 20% trong MongoDB 3.2.10). Nếu dữ liệu bẩn vượt quá số lượng đã định cấu hình và WiredTiger được yêu cầu để giữ dữ liệu bẩn vì lý do hoạt động, thì tệp này sẽ chứa dữ liệu bẩn tràn ra đĩa.
  • _mdb_catalog.wt: tệp siêu dữ liệu MongoDB
    Tệp này chứa siêu dữ liệu và danh mục của cơ sở dữ liệu MongoDB, bộ sưu tập và chỉ mục, bao gồm cả tệp dữ liệu WiredTiger ánh xạ tới từng bộ sưu tập hoặc chỉ mục MongoDB.
  • WiredTiger.lock và : khóa tệp mongod.lock
    MongoDB và WiredTiger sử dụng các tệp khóa này để đảm bảo rằng chỉ một quy trình duy nhất truy cập cơ sở dữ liệu tại bất kỳ thời điểm cụ thể nào.
  • sizeStorer.wt: tệp theo dõi kích thước bộ sưu tập MongoDB
    Tệp này chứa thông tin về kích thước và số lượng tài liệu của mỗi bộ sưu tập MongoDB.
  • collection-X-XXX.wt và : Các tệp chỉ mục và bộ sưu tập MongoDB index-X-XXX.wt
    Mỗi bộ sưu tập MongoDB được lưu trữ trong một tệp và mỗi chỉ mục MongoDB được lưu trữ trong một tệp. Các phần của tên tập tin đại diện cho một số ngẫu nhiên được sử dụng bởi WiredTiger như một định danh nội độc đáo. Nếu MongoDB được khởi động với tùy chọn này, các tệp này có thể xuất hiện trong thư mục con của . collection-X-XXX.wt  index-X-XXX.wt  X-XXX --directoryPerDB  dbpath

Ref: muralidba.blogspot.com

Có thể bạn đã bị missing