MongoDB 4.4 (hiện đang trong giai đoạn thử nghiệm) đang được triển khai với chương trình nghị sự chính là giải quyết các đề xuất của nhà phát triển từ cộng đồng MongoDB. Phiên bản này đã được phát hành để tăng cường khả năng hoạt động của cơ sở dữ liệu ở quy mô thuận tiện và đáng tin cậy, do đó được phát triển theo nguyên tắc "kỹ thuật hướng người dùng" để cho phép nó cung cấp nhiều tính năng được cải tiến.
Các tính năng được cải thiện trong MongoDB 4.4
Số lần Đọc bị Bảo vệ
Bộ định tuyến truy vấn MongoDB vấn đề đọc yêu cầu song song với nhiều tập hợp bản sao và kết quả dữ liệu từ nút hiệu quả nhất được trả về, do đó giảm độ trễ của ứng dụng.
Khóa dùng chung có thể xác định
Thêm hậu tố vào khóa phân đoạn sau khi sửa đổi phân phối dữ liệu trong quá trình chia tỷ lệ.
Số lần đọc được sao chép
Đây là tính năng làm nóng trước bộ nhớ đệm của các bản sao thứ cấp để giảm hậu quả của các cuộc bầu cử sơ bộ có thể do bảo trì theo kế hoạch hoặc sự cố ngừng hoạt động.
Cải tiến tổng hợp
Nâng cao tổng hợp có nhiều cải tiến khác nhau, bao gồm xác định và định giá Biểu thức tổng hợp, kết hợp dữ liệu từ nhiều bộ sưu tập mongo thành một tập kết quả duy nhất, thao tác chuỗi và toán tử mới trong xử lý mảng. Sau đây là một số cải tiến:
$ out
Hoạt động$ out đã được cải thiện để xuất kết quả thu thập tới các cơ sở dữ liệu khác nhau thay vì phiên bản trước đó chỉ có thể xuất ra một tập hợp trong cùng một cơ sở dữ liệu đã gây ra.
$ indexStats
$ indexStats có các đầu ra trường mới trong MongoDB 4.4 bao gồm các trường:
tòa nhà | Đó là Cờ Boolean, cho biết chỉ mục đang được tạo. |
spec | Tài liệu đặc tả cho từng chỉ mục |
mảnh | Tên cụ thể của phân đoạn nếu được yêu cầu |
$ merge
Trong MongoDB 4.4 $ hợp nhất đã được cải thiện để xuất trên cùng một bộ sưu tập đang được nâng cấp. Ngoài ra, người ta cũng có thể xuất trong một bộ sưu tập xuất hiện trên đường dẫn như $ lookup.
$ planCacheStats Thay đổi
Trạng thái$ planCacheStats đã được cải thiện để chạy cả phiên bản mongod và mongos trong MongoDB 4.4. Hơn nữa, $ planCacheSTats có một trường mới được gọi là trường máy chủ khi chạy mongo. PlanCache.list () là một trình bao bọc cho giai đoạn tổng hợp $ planCacheStats.
$ collStats Thay đổi
$ collStats đã được thực hiện để chấp nhận số liệu thống kê thực thi truy vấn trong tài liệu bổ sung. Ngoài ra, Bộ sưu tập Quét dưới dạng các trường có mô tả sau;
Tên trường | Mô tả |
nonTailble | Đây là số nguyên 64 bit thực hiện quét bộ sưu tập trên một số truy vấn không sử dụng con trỏ có thể điều chỉnh. |
tổng số | Total là một tập hợp các truy vấn được thực hiện quét bộ sưu tập không sử dụng con trỏ có thể điều chỉnh. |
$ unionVới Tổng hợp
MongoDB đã thêm $ unionWith, một tính năng hợp nhất các tập hợp tập hợp, nghĩa là, nó hợp nhất các kết quả của một đường dẫn từ một số tập hợp thành một tập hợp.
$ unionVới cú pháp
$ unionWith có cú pháp chung sau:
cd{ $unionWith: { coll: "<collection>", pipeline: [ <stage1>, ... ] } }
$ unionWith có phiên bản cú pháp đơn giản hóa được sử dụng để bao gồm tất cả các tài liệu từ một bộ sưu tập:
{ $unionWith: "<collection>" } // include all documents from the specified collection
$ Tích lũy tổng hợp
$ ắc quy là một tính năng mới khác trong MongoDB 4.4 chỉ định toán tử bộ tích lũy tùy chỉnh. Bộ tích lũy là các nhà khai thác không thay đổi trạng thái khi các tài liệu thực hiện tiến trình dọc theo đường ống. Bạn có thể sử dụng toán tử $ Tích lũy để thực thi các hàm JavaScript không được MongoDB hỗ trợ. $ Tích lũy được tìm thấy trong ba giai đoạn sau của quy trình:
- $ bucket stage:Chỉ xuất các tài liệu chứa không ít hơn một đầu vào tài liệu.
- $ group stage:Nhập tài liệu theo _id được chỉ định và xuất tài liệu cho từng nhóm cụ thể
- $ bucketAuto stage:Nó sắp xếp các mục nhập tài liệu thành các số nhóm cụ thể được gọi là nhóm.
Cú pháp
Cú pháp cho $ Tích lũy như sau:
{ $accumulator:{
init: <code>,
initArgs: <array expression>, // Optional
accumulate: <code>,
accumulateArgs: <array expression>,
merge: <code>,
finalize: <code>, // Optional
lang: <string>
}}
Tổng hợp $ function
$ function TỔNG HỢP xác định một hàm tổng hợp trong JavaScript.
Toán tử hàm$ có thể được sử dụng để xác định các hàm nhằm sử dụng các hành vi không được MongoDB hỗ trợ
Cú pháp cho hàm $ như sau:
{
$function: {
body: <code>,
args: <array expression>,
lang: "js"
}
}
Các tính năng khác có trong phiên bản MongoDB 4.4 mới nhất là:ghi mối quan tâm, đọc toàn cục, sao chép luồng, đồng bộ hóa ban đầu có thể tiếp tục và phân đoạn băm hỗn hợp.
Có gì mới với bộ bản sao MongoDB?
Đồng bộ hóa ban đầu có thể tiếp tục
MongoDB 4.4 có một tính năng cố gắng tiếp tục quá trình đồng bộ hóa bị gián đoạn.
Bản sao Truyền trực tuyến
Trong các phiên bản trước của MongoDB, tạp chí thứ hai đã thu thập các lô oplog theo yêu cầu được đưa ra để đồng bộ hóa từ nguồn. Với MongoDB 4.4, các nguồn biểu mẫu quy trình đồng bộ sẽ gửi các luồng liên tục các mục nhập nhật ký đến các quy trình đồng bộ thứ cấp.
Thư mục khôi phục
Từ MongoDB 4.4 khi khôi phục, thư mục bộ sưu tập được đặt tên theo UUID của bộ sưu tập và không gian tên bộ sưu tập.
Khoảng thời gian Lưu giữ Oplog Tối thiểu
Từ MongoDB 4.4 trở đi, bạn có thể chỉ định số giờ ít nhất mà bạn muốn duy trì mục nhập oplog.
Thay đổi cấu hình lại bộ bản sao
MongoDB 4.4 có một lệnh gọi là replSetReconfig cho phép thêm hoặc bớt không quá một cử tri tại một thời điểm. Một tính năng mới khác trong MongoDB 4.4 là các thay đổi đối với replSetGetConfig. MongoDB 4.4 replSetConfig có thể quy định trạng thái cam kết tùy chọn mới.
Các phím mảnh ghép băm
Bắt đầu trong MongoDB 4.4, bạn có thể chia nhỏ tập hợp bằng cách sử dụng khóa phân đoạn ghép với một trường băm duy nhất. Trước 4.4, MongoDB không hỗ trợ các khóa phân đoạn ghép với trường băm. Tính năng phân đoạn được băm hỗn hợp hỗ trợ các tính năng như phân đoạn vùng, trong đó tiền tố (tức là đầu tiên) trường không được băm hoặc các trường hỗ trợ phạm vi vùng trong khi trường được băm hỗ trợ nhiều phân phối dữ liệu được phân đoạn hơn. Ví dụ:thao tác sau phân đoạn một tập hợp trên khóa phân đoạn băm hỗn hợp hỗ trợ phân vùng phân vùng:
sh.shardCollection(
"examples.compoundHashedCollection",
{ "fieldA" : 1, "fieldB" : 1, "fieldC" : "hashed" }
)
Cải tiến Chung về Cụm được Chia nhỏ
Kiểm tra tính nhất quán của chỉ mục
Trong MongoDB 4.4, về cơ bản, máy chủ cấu hình, về cơ bản, theo mặc định, kiểm tra các bất thường của tệp qua các phân đoạn đối với các tập hợp được phân đoạn. Lệnh serverStatus trả về trường shardedIndexConsistency để báo cáo về các bất thường của tệp khi chạy trên máy chủ cấu hình cần thiết. Trong MongoDB 4.4, bạn sẽ có nhiều thao tác removeShard trước. Trong các bản chuyển thể trước đó, removeShard trả về một lỗi nếu có trước một thao tác removeShard khác.
Giới hạn khóa phân đoạn
Bắt đầu ở dạng 4.4, MongoDB loại bỏ ràng buộc 512 byte đối với ước tính khóa phân đoạn. Đối với MongoDB 4.2 trở về trước, khóa phân đoạn không được vượt quá 512 byte.
Làm mới bộ nhớ đệm danh mục được cải thiện
Trong MongoDB 4.4, trong trường hợp có một đoạn cũ, bộ đệm danh mục sẽ phục hồi nó để lấy một đoạn có đoạn này.
MongoDB 4.4 có enableFinerGrainedCatalogCacheRefresh, đây là một tham số làm suy giảm khả năng phục hồi bộ đệm danh mục. enableFinerGrainedCatalogCacheRefresh tập trung vào phân đoạn và sử dụng hành vi hồi sinh bộ nhớ cache danh mục dày dặn hơn.
Tham số enableFinerGrainedCatalogCacheRefresh được mặc định là true.
Các cải tiến về Truy vấn và Làm sắc nét trong MongoDB 4.4
MongoDB có truyền thống liên tục mở rộng quy mô thông qua việc phân phối dữ liệu thành nhiều nút hoặc thông qua sharding. Khóa phân đoạn giữ một tài liệu vì khóa phân đoạn của một tài liệu nhất định chỉ có thể được thay đổi trước một nhiệm vụ chứ không phải sau một nhiệm vụ.
Sự phát triển của MongoDB đã khiến việc hiệu chỉnh lại các phân đoạn của nội dung được cung cấp trong MongoDB trở nên khó khăn. Để cho phép tái cân bằng, bản phát hành MongoDB 4.4 đã giới thiệu các khóa phân đoạn có thể tái tạo lại cho phép sửa đổi các khóa phân đoạn của tài liệu.
Các khóa phân đoạn có thể tinh chỉnh cho phép thay đổi các khóa phân đoạn của tài liệu bằng cách cho phép các tài liệu thuộc cùng một phân đoạn thay đổi yêu cầu của chúng và do đó trở nên cân bằng lại động.
Tái cân bằng có thể được lập trình hoặc tích cực tùy thuộc vào cách người dùng xem nó theo thời gian.
Các cải tiến khác
Tổng hợp bộ sưu tập MongoDB khi các bộ dữ liệu khác nhau cho phép truy vấn thông qua các Unions. Khả năng như vậy cho phép xử lý dữ liệu theo cách khác nhau chứ không phải như một ETL riêng biệt.
Dữ liệu có thể được di chuyển và hợp nhất trên máy chủ và được chuyển cho máy khách và quá trình này không yêu cầu nhiều lần thực hiện để quản lý một kết quả hoàn chỉnh.
Hàm$ nằm trong số Tổng hợp chi phí cho phép thực hiện các tổng hợp phức tạp hơn ở phía máy chủ và nâng cao quy trình xử lý dữ liệu.
Các quy trình định giá phiên bản khác nhau xuất hiện trên MongoDB 4.4 đã phát hành. Các tính năng dự phòng đã được liên kết với việc tăng hiệu suất của phiên bản beta. Tuy nhiên, hàm $ chỉ được gọi khi các tính năng có sẵn và giá gốc khác không đủ trong quá trình đang diễn ra.
Trình điều khiển và Ngôn ngữ Truy vấn MongoDB
- Các lần xuất hiện Tổng hợp tùy chỉnh có chức năng chủ sở hữu mở rộng MongoDB như một phần của quy trình thực thi tổng hợp.
- Tập hợp Liên minh có khả năng phân tích và khám phá chuyên sâu hơn thông qua việc kết hợp dữ liệu từ nhiều bộ sưu tập vào quy trình Tổng hợp Liên minh.
- Viết các mối quan tâm và Global Read để ghi độ bền và định cấu hình cách ly đọc cụm.
- Trình điều khiển Swift và Gỉ mới
- Tính linh hoạt trong quy mô và hiệu suất
- Nhân rộng luồng và lập chỉ mục đồng thời giúp giảm độ trễ của bản sao để cung cấp dữ liệu cho người dùng trong MongoDB 4.4.
- Kết quả được trả về càng sớm càng tốt do tính năng Đọc được bảo vệ giảm thiểu độ trễ p65 và p99 bằng cách gửi yêu cầu đọc tới nhiều bản sao dữ liệu trong MongoDB.
- Giữ lại vị trí dữ liệu dưới dạng các khóa Compound Hashed được phân bổ đồng đều trên các phân đoạn khác nhau bằng khóa phân đoạn của chúng.
- Không có hệ thống trung tâm khi xác định và tinh chỉnh khóa phân đoạn tại bất kỳ thời điểm nào.
Khả năng phục hồi và Bảo mật
- Xác thực trong MongoDB 4.4 beta nhanh hơn 50% và là TLS 1.3.
- Kết nối với MongoDB Atlas yêu cầu Xác thực AWS IASM, giúp đơn giản hóa bảo mật gốc đám mây bằng cách sử dụng lại thông tin đăng nhập Amazon IAM tạm thời và thông thường hiện có.
- Khôi phục các nút bằng cách đồng bộ hóa Ban đầu có thể tiếp tục, giúp giảm bớt quy trình mở rộng quy mô bằng cách thêm các bản sao mới. Giảm tác động của các cuộc bầu cử sơ bộ bằng Mirrored Reads làm ấm bộ nhớ đệm của các cuộc bầu cử phụ sau khi bảo trì hoặc ngừng hoạt động theo kế hoạch.
Kết luận
MongoDB 4.4 đã mang lại trải nghiệm tốt hơn trong cơ sở dữ liệu dựa trên tài liệu không quan hệ bằng cách cải thiện các tính năng hiệu suất trong hệ thống của nó. Những cải tiến đã cho phép các ứng dụng phân tích, vận hành và giao dịch nhanh hơn với MongoDB 4.4.
MongoDB 4.4 cũng đã cho phép Tính linh hoạt khi xác định phân phối dữ liệu khi các yêu cầu của hoạt động thay đổi. Cải tiến được thực hiện trên MongoDB 4.4 đã làm cho nó đáng tin cậy hơn về độ trễ, độ phức tạp và khả năng kiểm soát bảo mật khi sử dụng Mongo Atlas, một đám mây.