Được xuất bản lần đầu vào tháng 8 năm 2019, tại ObjectRocket.com/blog
CockroachDB® là một phần của họ công nghệ cơ sở dữ liệu Rackspace ObjectRocket. Khả năng mở rộng của CockroachDB rất thú vị, với tính năng sao chép và phân phối dữ liệu (tối đa hóa tính khả dụng cao), cân bằng lại cơ sở dữ liệu tự động và các trung tâm dữ liệu đa địa lý hỗ trợ tuân thủ dữ liệu-domiciling, có thể kể đến một vài cái tên. Và tất cả những điều này với tính toàn vẹn dữ liệu cao và các giao dịch ACID được phân tán vì khả năng phục hồi dữ liệu của CockroachDBdata là điều bắt buộc phải có.
Chúng tôi muốn chia sẻ một số điểm nổi bật của việc mở rộng quy mô với CockroachDB và xem qua những gì DBaaS củaRackspace ObjectRocket cung cấp. Với tư cách là nhà phát triển, khi bạn sử dụng CockroachDB trên biểu mẫu dịch vụ được quản lý của chúng tôi, bạn có thể tập trung vào việc xây dựng các ứng dụng của mình chứ không phải dựa vào sự phức tạp của việc chạy cơ sở dữ liệu.
Ngày nay, việc mở rộng quy mô là điều tối quan trọng
Hai mươi năm trước, lưu trữ là một mối quan tâm tốn kém và thuật ngữ Dữ liệu lớn nói rõ rằng chúng tôi phải đối mặt với những thách thức lớn, chúng tôi có một lượng lớn dữ liệu và không có cách nào tốt để phân tích hoặc sử dụng dữ liệu đó. Nhưng giờ đây, công nghệ có thể xử lý Dữ liệu lớn và hàng loạt truy vấn và giao dịch liên tục vốn có trong thế giới thương mại điện tử, phần mềm tài chính, nghiên cứu, quản trị kinh doanh và khai thác dữ liệu hiện đại của chúng ta. Một biên giới công nghệ khác, Internet of Things , tăng số lượng thiết bị tạo dữ liệu và chạy các giao dịch trực tuyến. Giờ đây, bạn có thể thêm máy ảnh, công tắc đèn và tủ lạnh vào danh sách dài các thiết bị đang tạo dữ liệu hữu ích trực tuyến.
Trong bối cảnh này, điều quan trọng là phải triển khai chiến lược mở rộng quy mô đáp ứng nhu cầu hiện tại đối với các cửa hàng dữ liệu của bạn và đồng thời cho phép tăng trưởng dữ liệu không thể tránh khỏi và các nguồn dữ liệu và giao dịch mới, chưa từng có.
Chia tỷ lệ đơn giản có nghĩa là tăng (hoặc giảm) các tài nguyên cơ sở dữ liệu cần thiết để xử lý khối lượng công việc hiện tại một cách thích hợp.
- Chia tỷ lệ dọc: Thêm (hoặc xóa) RAM, không gian lưu trữ và CPU vào các nút bên dưới trong một cụm.
- Chia tỷ lệ theo chiều ngang: Thêm nhiều nút hơn khi cần thiết để xử lý khối lượng công việc (thay vì thêm nhiều tài nguyên vào một nút).
Hầu hết các cơ sở dữ liệu quan hệ sử dụng tỷ lệ mở rộng theo chiều dọc. Tuy nhiên, hầu hết các cơ sở dữ liệu phân tán (thường không quan hệ) sử dụng phương pháp phân chia theo chiều ngang — tốt hơn cho các tải giao dịch nặng, truy vấn thường xuyên, đọc / ghi và các yêu cầu về khả năng phục hồi. một phần cứng duy nhất.
Tuy nhiên, việc chia tỷ lệ theo chiều ngang không bị ràng buộc về mặt tính toán và chỉ giới hạn ở số lượng phần cứng có sẵn và những gì phần mềm hỗ trợ. Điều làm cho CockroachDB trở nên độc đáo là nó cung cấp một giải pháp tuyệt vời để mở rộng cơ sở dữ liệu quan hệ theo chiều ngang (theo truyền thống là không thể) để đáp ứng với việc đọc và ghi nhanh chóng, theo thời gian thực vốn có trong các hệ thống xử lý giao dịch trực tuyến phân tán (OLTP). Bạn cũng có thể chia tỷ lệ CockroachDB theo chiều dọc, nhưng mở rộng quy mô bằng cách thêm nhiều nút hơn là phương pháp ưu tiên.
Điều gì làm cho việc mở rộng quy mô của CockroachDB trở nên đặc biệt?
Theo Derek Johnson, Giám đốc sản phẩm tại Rackspace ObjectRocket, khía cạnh thú vị nhất của việc mở rộng quy mô của CockroachDB là nó thông minh như thế nào. Sau khi bạn tạo và định cấu hình nút đầu tiên, việc thêm các nút tiếp theo được đơn giản hóa. Trong môi trường nhiều nút, bạn có thể tận dụng các tính năng mạnh mẽ của CockroachDB về quy mô tự động, cân bằng dữ liệu và các yêu cầu tuân thủ theo địa lý cụ thể tự quản lý để giữ cho kho dữ liệu của bạn đáng tin cậy, tuân thủ và hoạt động tốt. Với cấu hình được tối ưu hóa, bạn có thể tận dụng sức mạnh thực sự của CockroachDB. Ví dụ:bằng cách sử dụng —locality
cờ để mô tả khu vực khả dụng và khu vực của nút, CockroachDB triển khai phân vùng địa lý và tự động lưu trữ dữ liệu trong khu vực được chỉ định.
Dưới đây là bảng phân tích về một số điểm nổi bật về tỷ lệ:
Tính toàn vẹn của dữ liệu khi quy mô cửa hàng dữ liệu của bạn
- Các giao dịch tuân thủ ACID và bạn có thể sử dụng chúng theo cách thông thường bằng cách sử dụng các lệnh SQL như
BEGIN
hoặcCOMMIT
. - CockroachDB khác với cơ sở dữ liệu quan hệ. Trong quá trình mở rộng quy mô, nó phân phối cả việc đọc và ghi trên các nút liên quan thay vì tất cả các lần ghi vào một nút duy nhất. Tính khả dụng đa hoạt động này là phiên bản có tính khả dụng cao củaCockroachDB và cho phép mở rộng địa lý.
- CockroachDB sử dụng sao chép đồng thuận bằng cách gửi yêu cầu sao chép tới ít nhất ba nút khác nhau và sau đó chờ cam kết cho đến khi hầu hết các nút báo cáo lại rằng họ đã sao chép dữ liệu thành công.
- Các giao dịch được dàn xếp, với ý định và bản ghi cho mỗi lần ghi, ngăn chặn xung đột giao dịch.
- CockroachDB sử dụng hai đối tượng để dàn xếp tất cả các giao dịch:bản ghi giao dịch và ý định ghi, đối tượng này sẽ đăng ký với đối tượng khác và nếu cần, hãy khởi động lại giao dịch để đảm bảo giao dịch đó cam kết các giá trị mới nhất.
- CockroachDB cung cấp sự cân bằng tốt về hiệu suất và tính toàn vẹn của dữ liệu do tính cân bằng và sao chép dữ liệu của nó.
Phân vùng địa lý để giải cứu!
Thay vì tạo các phân đoạn sau đó được ẩn theo địa lý, cải thiện độ trễ nhưng ngăn chặn các truy vấn địa lý chéo, cài đặt cấu hình CockroachDBuses ở cấp phạm vi để sao chép dữ liệu trong các vùng xác định. CockroachDB mang lại giá trị hai mục đích với khả năng phân vùng địa lý độc đáo của nó. Bằng cách định cấu hình khu vực cụ thể để lưu trữ dữ liệu, bạn đạt được hiệu suất ứng dụng bot (dữ liệu gần với ứng dụng của người dùng hơn) và tuân thủ theo quy định của GDPRdata.
Giao diện người dùng quản trị CockroachDB có một màn hình địa lý tuyệt vời được gọi là Bản đồ nút , hiển thị bản đồ thế giới với các biểu tượng tập hợp các nút và thông tin chi tiết cho từng nút. Màn hình đồ họa này giúp lập kế hoạch và khắc phục sự cố về độ trễ giữa các kho dữ liệu. Khi truy cập CockroachDB của bạn thông qua Giao diện người dùng điều khiển nhiệm vụ ObjectRocket, bạn có thể liên kết dễ dàng với Giao diện quản trị CockroachDB để xem Bản đồ nút.
Việc thêm các nút mới theo cách thủ công với cấu hình thích hợp cho phép mở rộng quy mô thông minh và nhanh chóng
- Nếu muốn chủ động tạo các nút mới, bạn có thể sử dụng lệnh thông qua CLI hoặc Giao diện người dùng quản trị để tạo nút và đặt các cờ cần thiết và các cấu hình khác.
- Thay vào đó, bạn cần dừng và khởi động nhiều cơ sở dữ liệu để mở rộng quy mô, với CockroachDB, bạn có thể dễ dàng thêm nhiều nút hơn trong khi hệ thống đang tải.
Bằng cách sử dụng orchestration, việc chia tỷ lệ được xử lý tự động, không có thời gian chết
CockroachDB cung cấp các ưu điểm mở rộng sau:
- Mở rộng quy mô CockroachDB thông qua nền tảng điều phối giúp việc này trở nên dễ dàng và cho phép tự động hóa mạnh mẽ. Ví dụ:khi bạn sử dụngKubernetes (như ObjectRocket), một lệnh duy nhất có thể mở rộng quy mô của CockroachDB, cung cấp các tài nguyên mới và quay vòng bổ sung nếu cần.
- Việc cân bằng lại dữ liệu giữa các nút diễn ra tự động, ngay cả giữa các trung tâm dữ liệu và các nhà cung cấp đám mây khác nhau.
- Các giao dịch phân tán có nghĩa là không có tác động đến khối lượng công việc, không có thời gian ngừng hoạt động và không tăng độ trễ.
- Việc tối ưu hóa việc sử dụng máy chủ một cách đồng đều trên tất cả các nút là kết quả tự nhiên của việc tự động mở rộng quy mô của CockroachDB.
Mang tất cả lại với nhau trong một dịch vụ được quản lý
ObjectRocket cung cấp các dịch vụ được quản lý hoàn chỉnh cho các kho dữ liệu CockroachDB của bạn bằng cách sử dụng kiến trúc dựa trên vùng chứa Kubernetes.
Các tính năng chính của giải pháp CockroachDB được quản lý bao gồm:
- Cụm tính khả dụng cao (HA) ba nút
- Truy cập vào giao diện người dùng quản trị CockroachDB thông qua giao diện người dùng ObjectRocket
- Danh sách địa chỉ IP cho phép
- Xác thực người dùng
- Bảo mật lớp truyền tải (TLS)
Điều này có nghĩa là bạn nhận được một kho dữ liệu quan hệ, tuân thủ ACID với giao diện SQL thoải mái và khả năng tương thích với PostgreSQLwire, nhưng với HA tự động, khả năng mở rộng dễ dàng và mở rộng theo địa lý.
Cung cấp CockroachDB được quản lý của ObjectRocket cho phép bạn chọn tùy chọn tốt nhất cho nhu cầu dữ liệu của mình từ các loại nút được xác định trước và sau đó mở rộng quy mô theo chiều ngang bằng cách thêm nhiều loại nút khác nếu cần. Nền tảng dựa trên Kubernetes của chúng tôi tự động thay thế các nút không thành công hoặc có vấn đề để chúng tôi có thể đảm bảo rằng cụm của bạn luôn hoạt động và khả dụng.
Đây là thời điểm tuyệt vời để kiểm tra CockroachDB và những gì Rackspace ObjectRocket cung cấp với các dịch vụ được quản lý của chúng tôi. Để biết rõ hơn về cách cung cấp CockroachDB được quản lý có thể giải quyết các yêu cầu lưu trữ dữ liệu của bạn, hãy đọc blog 5 Trường hợp Sử dụng Hàng đầu của chúng tôi. .
Nhấp vào đây để xem Điều khoản dịch vụ của Rackspace Cloud.
Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.