Google Cloud: Databases
Điểm AI 43/100

Sản phẩm

Google Cloud ra mắt Memorystore for Valkey 9.1: Tăng gấp 3 lần hiệu suất QPS

(giờ Việt Nam)

Tóm tắt AI

Google Cloud chính thức phát hành Memorystore for Valkey 9.1, mang lại hiệu suất QPS cao gấp 3 lần so với Redis Cluster nhờ kiến trúc đa hàng đợi không khóa và khả năng mở rộng luồng động.

Chính văn · Bản dịch AI

Memorystore for Valkey 9.1: 3x QPS Caching

Tại Google Cloud, chúng tôi cam kết mang đến trải nghiệm quản lý tốt nhất được hỗ trợ bởi phần mềm mã nguồn mở. Hôm nay, chúng tôi công bố việc phát hành chính thức Memorystore for Valkey 9.1, đạt hiệu suất lên tới gấp 3 lần số truy vấn mỗi giây (QPS) với độ trễ micro giây so với Memorystore for Redis Cluster.

Sự hỗ trợ của chúng tôi dành cho Valkey bắt đầu từ năm 2024, khi Redis Inc. chuyển đổi mô hình cấp phép từ giấy phép mã nguồn mở BSD cởi mở sang mô hình cấp phép kép. Để đáp lại, Google Cloud cùng với các nhà lãnh đạo công nghệ khác đã ủng hộ việc tạo ra Valkey, một giải pháp thay thế mã nguồn mở được quản lý bởi Linux Foundation.

Valkey đã có những bước tiến vượt bậc kể từ đó, mang đến các bản cập nhật quan trọng về hiệu suất và tính năng, vượt xa so với phiên bản fork ban đầu. Valkey đặc biệt hấp dẫn đối với các tổ chức đang mở rộng quy mô AI và microservices để xử lý hàng triệu người dùng đồng thời. Tại đây, các nhà phát triển backend và kiến trúc sư phải đảm bảo cả thông lượng khổng lồ lẫn duy trì độ trễ ở mức micro giây.

Trong bài viết này, hãy cùng xem cách Valkey 9.1 đạt được hiệu suất đó, các khả năng mới dành cho nhà phát triển, cách bắt đầu và cách khách hàng đang sử dụng nó.

Bên trong hệ thống: Tư duy lại về giao tiếp giữa các luồng (thread)

Trong các kho dữ liệu in-memory có thông lượng cao, việc giảm tải I/O hiệu quả là rất quan trọng để giữ cho vòng lặp thực thi chính không bị chặn. Trước đây, Valkey gán các socket của client vào các luồng I/O một cách tĩnh theo kiểu round-robin, buộc luồng chính phải liên tục thăm dò danh sách các client đang chờ để phát hiện công việc đã hoàn thành.

Valkey 9.1 thay thế việc thăm dò danh sách bằng kiến trúc nhắn tin đa hàng đợi, không khóa (lock-free), giúp loại bỏ sự lãng phí CPU giữa các luồng và mở khóa khả năng cân bằng công việc động. Kiến trúc này bao gồm ba hàng đợi bổ trợ:

  • Hàng đợi từ luồng chính đến luồng I/O: Điều phối các tác vụ đọc và ghi vào hàng đợi một nhà sản xuất - nhiều người tiêu dùng (SPMC). Các luồng worker rảnh rỗi sẽ lấy tác vụ theo yêu cầu, cho phép "đánh cắp" công việc động để ngăn chặn tình trạng thiếu hụt luồng hoặc điểm nóng (hot-spotting).
  • Hàng đợi từ luồng I/O đến luồng chính: Các luồng worker đẩy các tác vụ đã hoàn thành vào hàng đợi nhiều nhà sản xuất - một người tiêu dùng (MPSC). Luồng chính lấy các tác vụ đã hoàn thành ngay lập tức, loại bỏ việc lặp danh sách chờ bận (busy-wait).
  • Các hàng đợi dành riêng cho luồng I/O: Các hàng đợi một nhà sản xuất - một người tiêu dùng (SPSC) chuyên dụng xử lý việc dọn dẹp bộ nhớ theo luồng và giảm tải epoll khối lượng lớn.

Valkey 9.1 cũng thay thế các ngưỡng luồng tĩnh bằng công cụ mở rộng quy mô động hai giai đoạn:

  • "Kích hoạt" dựa trên CPU: Khi mức sử dụng CPU của luồng chính vượt quá 30%, công cụ sẽ tự động kích hoạt luồng I/O nền đầu tiên để hấp thụ lưu lượng truy cập trước khi các nút thắt cổ chai hàng đợi hình thành.
  • Tự động mở rộng quy mô theo độ sâu hàng đợi: Sau khi được kích hoạt, Valkey sẽ tự động điều chỉnh số lượng luồng worker I/O đang hoạt động dựa trên lượng tồn đọng trong hàng đợi SPMC theo thời gian thực, đảm bảo các nhân (core) bổ sung chỉ được sử dụng khi cần và ở trạng thái nghỉ khi không tải.
https://storage.googleapis.com/gweb-cloudblog-publish/images/1_K3ph3LP.max-2000x2000.png

Các khả năng mới dành cho nhà phát triển trong Valkey 9.1

Ngoài hiệu suất thuần túy, Valkey 9.1 giải quyết các yêu cầu tính năng chính từ các nhóm kỹ thuật với các lệnh mới mạnh mẽ và kiểm soát bảo mật nâng cao. Dưới đây là những gì bạn có thể làm với các khả năng mới này:

1. Kiểm soát truy cập cấp cơ sở dữ liệu chi tiết (ACLs)

Chúng tôi gần đây đã ra mắt hỗ trợ danh sách kiểm soát truy cập (ACL) trên Memorystore for Valkey để cung cấp khả năng ủy quyền chi tiết hơn ở cấp khóa và cấp lệnh bằng cách sử dụng IAM. Cơ chế bảo mật nền tảng này được cung cấp miễn phí và bao gồm các khả năng sau:

  • Quản lý tập trung: Phương pháp ánh xạ 1:N cho phép bạn xác định một chính sách ACL duy nhất và áp dụng nó trên nhiều cụm (cluster).
  • Đa người thuê an toàn (Secure multi-tenancy): Các tổ chức có thể dễ dàng thực thi nguyên tắc đặc quyền tối thiểu và bảo mật đa người thuê trên toàn bộ hệ thống cơ sở dữ liệu của họ.
  • Khả năng quan sát nâng cao: Tính năng này bao gồm các phiên bản sửa đổi chính sách và ghi nhật ký kiểm toán toàn diện.

Trước đây, các quy tắc ACL áp dụng toàn cục trên một instance. Valkey 9.1 cho phép quản trị viên hạn chế quyền truy cập của người dùng ở cấp cơ sở dữ liệu số cụ thể trong khuôn khổ ACL.

Ví dụ thực tế: Bạn có thể cấu hình một người dùng cho môi trường staging hoặc dịch vụ cụ thể và cô lập quyền truy cập của họ chỉ trong các cơ sở dữ liệu không phải sản xuất:

  • production user: @all ~* db=0
  • staging user: @all ~* db=1
  • dev user: @all ~* db=2

Bảo vệ chống lại truy cập dữ liệu trái phép và ngăn ngừa lỗi ứng dụng bằng cách tận dụng kiểm soát truy cập cấp cơ sở dữ liệu trên nhiều cơ sở dữ liệu, tất cả mà không cần phải thêm tiền tố vào các khóa của bạn.

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_JicgxIP.max-1400x1400.png

2. CLUSTERSCAN: Quét khóa toàn cụm hiệu quả

Trước đây, việc quét khóa trên một cụm lớn đòi hỏi phải truy vấn từng node riêng lẻ. Cách tiếp cận này không nhận biết được cụm hoặc khả năng chuyển đổi dự phòng (failover). Do đó, các lần quét có thể bỏ sót khóa, trả về kết quả trùng lặp hoặc thất bại nếu việc di chuyển slot hoặc chuyển đổi dự phòng node xảy ra trong quá trình thực hiện.

Lệnh CLUSTERSCAN giải quyết những hạn chế này bằng cách giới thiệu một con trỏ nhận biết cấu trúc liên kết (topology-aware cursor). Con trỏ này mã hóa slot hiện tại, dấu vân tay của bảng băm cục bộ và con trỏ cục bộ. Với thông tin mã hóa bổ sung này, các client có thể quét khóa trên toàn bộ cụm trong khi vẫn xử lý mượt mà các thay đổi về cấu trúc liên kết và chuyển hướng.

CLUSTERSCAN hỗ trợ hai chiến lược quét chính:

Trường hợp sử dụng 1: Quét toàn bộ cụm tuần tự (một worker)

Chiến lược này phù hợp cho các tập lệnh đơn giản hoặc các tác vụ nền ưu tiên sự đơn giản hơn tốc độ. Client bắt đầu với con trỏ 0 và tuần tự đi qua tất cả các slot trong cụm:

Để tiếp tục quét, hãy chuyển con trỏ được trả về cho lệnh gọi tiếp theo. Con trỏ sẽ tự động chuyển sang slot tiếp theo khi slot hiện tại đã được quét xong.

Quá trình quét hoàn tất khi lệnh trả về con trỏ "0".

Trường hợp sử dụng 2: Quét cụm song song (nhiều worker)

Chiến lược này phù hợp cho các lần quét có thông lượng cao. Sử dụng đối số SLOT giới hạn việc quét trong một slot cụ thể, cho phép bạn phân chia 16.384 slot cho nhiều worker song song.

Worker 1 (Quét Slot 0):

Worker 2 (Quét slot 1000 song song):

Từ đây, Worker 1 tiếp tục truyền SLOT 0 và Worker 2 tiếp tục truyền SLOT 1000. Việc không khớp giữa slot và con trỏ sẽ trả về lỗi. Sau khi tất cả 16.384 slot đã được quét, quá trình quét cụm được coi là hoàn tất.

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_kgFC6Uv.max-1600x1600.png

3. Thêm lệnh cho tính nguyên tử và thời hạn (expirations)

HGETDEL: Lấy và xóa nguyên tử. Một mô hình ứng dụng phổ biến bao gồm việc đọc một trường băm và xóa nó ngay lập tức (như tiêu thụ token xác thực dùng một lần hoặc trạng thái phiên làm việc ngắn hạn). Valkey 9.1 giới thiệu HGETDEL, giúp truy xuất giá trị của một trường băm và xóa nó một cách nguyên tử trong một lần truyền tin mạng.

Ví dụ thực tế: HSET user:1001 temp_token "abcde" (integer) 1 HGETDEL user:1001 FIELDS 1 temp_token 1. "abcde" HGET user:1001 temp_token (nil)

MSETEX: Thời hạn dùng chung cho nhiều khóa. Để loại bỏ chi phí đường ống (pipeline) của nhiều lệnh, lệnh MSETEX mới cho phép thiết lập nhiều khóa cùng lúc với một thời hạn dùng chung duy nhất.

Bài gốc còn tiếp — xem tiếp tại bài gốc ↗

Google CloudValkeyMemorystoreHạ tầng AIDatabase

Bài viết được AI dịch và tổng hợp tự động từ Google Cloud: Databases. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.

Google Cloud ra mắt Memorystore for Valkey 9.1: Tăng gấp 3 lần hiệu suất QPS | AIHOT.vn