Hacker News

Cách DSQL đảm bảo quy mô chuỗi

Cách DSQL đảm bảo quy mô chuỗi Cuộc khám phá này đi sâu vào dsql, xem xét tầm quan trọng và tác động tiềm tàng của nó. — Hệ điều hành kinh doanh Mewayz.

9 đọc tối thiểu

Mewayz Team

Editorial Team

Hacker News

DSQL đảm bảo quy mô trình tự trong môi trường phân tán bằng cách loại bỏ sự phối hợp một nút truyền thống để chuyển sang phân bổ dựa trên phạm vi và tạo ID dựa trên sự đồng thuận — loại bỏ các tắc nghẽn mà không làm mất đi tính duy nhất. Hiểu cách thức hoạt động của tính năng này là điều cần thiết đối với bất kỳ ứng dụng sử dụng nhiều dữ liệu nào trong xây dựng nhóm cần phát triển mà không gặp phải các hạn chế về cơ sở hạ tầng.

Chuỗi cơ sở dữ liệu là gì và tại sao chúng bị hỏng ở quy mô lớn?

Một chuỗi trong cơ sở dữ liệu quan hệ là một bộ đếm tạo ra các số có thứ tự, duy nhất - được sử dụng phổ biến nhất cho các khóa chính. Trong thế giới một máy chủ, điều này không quan trọng: một nút sở hữu bộ đếm, tăng nó một cách nguyên tử và trao giá trị cho bất kỳ ai yêu cầu. Đơn giản, đáng tin cậy và hoàn toàn không thể tồn tại ngay khi bạn thêm nút thứ hai.

Sự cố xuất hiện ngay khi bạn phân phối cơ sở dữ liệu của mình trên nhiều nút hoặc vùng. Mỗi nút cần giá trị chuỗi mới phải phối hợp với cơ quan trung ương để đảm bảo không có hai nút nào phát hành cùng một số. Dưới tải nhẹ, sự phối hợp đó là vô hình. Dưới tải nặng — hàng triệu lần chèn mỗi giây trên các cụm phân tán về mặt địa lý — cơ quan trung ương đó trở thành điểm nghẽn điều tiết toàn bộ đường dẫn ghi của bạn.

Các công cụ cơ sở dữ liệu truyền thống khắc phục vấn đề này bằng các giải pháp thay thế: phân bổ lẻ/chẵn cho mỗi nút, phân vùng thủ công các phạm vi chuỗi hoặc loại bỏ hoàn toàn các chuỗi cho UUID. Mỗi thỏa hiệp đều gây ra sự phức tạp trong hoạt động, hy sinh các đảm bảo về đặt hàng hoặc trao đổi nút cổ chai này để lấy nút cổ chai khác. DSQL có một cách tiếp cận cơ bản khác.

DSQL sử dụng phân bổ phạm vi như thế nào để giảm sự phối hợp?

Thông tin chi tiết cốt lõi đằng sau việc chia tỷ lệ trình tự của DSQL là các nút không cần phối hợp trên mọi giá trị duy nhất — chúng chỉ cần phối hợp trên các phạm vi. Thay vì mỗi lần chèn kích hoạt một chuyến đi khứ hồi đến cơ quan quản lý chuỗi trung tâm, mỗi nút yêu cầu trả trước một khối các giá trị chuỗi và phát hành chúng cục bộ cho đến khi hết khối.

💡 BẠN CÓ BIẾT?

Mewayz replaces 8+ business tools in one platform

CRM · Hóa đơn · Nhân sự · Dự án · Đặt chỗ · Thương mại điện tử · POS · Phân tích. Gói miễn phí vĩnh viễn có sẵn.

Bắt đầu miễn phí →

Cách tiếp cận này, được gọi là phân bổ phạm vi hoặc đặt trước theo đợt, làm giảm đáng kể số lượng các sự kiện phối hợp phân tán. Một nút yêu cầu phạm vi 1.000 giá trị chuỗi thay thế 1.000 chuyến đi khứ hồi phối hợp riêng lẻ bằng một chuyến đi duy nhất. Phép toán thông lượng ngay lập tức trở nên rõ ràng: các chuỗi không còn là yếu tố giới hạn nữa mà thay vào đó, việc tính toán hoặc lưu trữ trở thành mức trần thực sự.

"Mục tiêu của thiết kế trình tự phân tán không phải là làm cho việc phối hợp nhanh hơn — mà là làm cho việc phối hợp trở nên hiếm hoi. DSQL đạt được quy mô không phải bằng cách tăng tốc nút thắt cổ chai mà bằng cách loại bỏ nhu cầu về nút thắt cổ chai một cách có hệ thống."

Khi phạm vi phân bổ của nút hết, nó sẽ yêu cầu một khối mới. Nếu một nút gặp sự cố ở tầm trung, thì những giá trị không được sử dụng đó sẽ bị bỏ qua - DSQL chấp nhận các khoảng trống theo trình tự vì tính duy nhất được đảm bảo quan trọng hơn tính liên tục được đảm bảo. Logic ứng dụng hiện đại hầu như không bao giờ yêu cầu các chuỗi hoàn toàn không có khoảng trống; nó yêu cầu không có hai hàng nào có chung khóa.

Sự đồng thuận phân tán đóng vai trò gì trong an toàn trình tự?

Phân bổ phạm vi giải quyết được thông lượng, nhưng nó đưa ra một thách thức mới: ngăn chặn hai nút yêu cầu cùng một phạm vi cùng một lúc. Đây là nơi các giao thức đồng thuận phân tán - thường là các biến thể Paxos hoặc Raft - trở nên quan trọng đối với việc đảm bảo tính chính xác của DSQL.

Trước khi bất kỳ nút nào có thể bắt đầu phát hành các giá trị từ một phạm vi mới, việc phân bổ phạm vi đó phải được cam kết thông qua lớp đồng thuận. Phần lớn các thành viên của cụm phải xác nhận việc đặt trước trước khi nút yêu cầu tiếp tục. Điều này đảm bảo rằng ngay cả khi có phân vùng mạng, lỗi nút hoặc yêu cầu phạm vi đồng thời, không có hai nút nào hoạt động từ các phạm vi trình tự chồng chéo.

Kết quả thực tế là một hệ thống cung cấp sự đảm bảo tính nhất quán của chuỗi nút đơn truyền thống đồng thời hỗ trợ thông lượng ghi theo chiều ngang của kiến ​​trúc phân tán. Ứng dụng nhìn thấy số nhận dạng duy nhất, không xung đột mà không cần biết bất kỳ

All Your Business Tools in One Place

Stop juggling multiple apps. Mewayz combines 207 tools for just $19/month — from inventory to HR, booking to analytics. No credit card required to start.

Try Mewayz Free →

Dùng Thử Mewayz Miễn Phí

Nền tảng tất cả trong một cho CRM, hóa đơn, dự án, Nhân sự & hơn thế nữa. Không cần thẻ tín dụng.

Bắt đầu quản lý doanh nghiệp của bạn thông minh hơn ngay hôm nay.

Tham gia 30,000+ doanh nghiệp. Gói miễn phí vĩnh viễn · Không cần thẻ tín dụng.

Tìm thấy điều này hữu ích? Chia sẻ nó.

Sẵn sàng áp dụng vào thực tế?

Tham gia cùng 30,000+ doanh nghiệp đang sử dụng Mewayz. Gói miễn phí vĩnh viễn — không cần thẻ tín dụng.

Bắt đầu Dùng thử Miễn phí →

Sẵn sàng hành động?

Bắt đầu dùng thử Mewayz miễn phí của bạn ngay hôm nay

All-in-one business platform. No credit card required.

Bắt đầu miễn phí →

Dùng thử 14 ngày miễn phí · Không cần thẻ tín dụng · Hủy bất kỳ lúc nào