Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PolyScale.ai - Mở rộng MySQL &PostgreSQL với Global Caching

Bài đăng của Ben Hagan từ PolyScale.ai

Các ứng dụng theo hướng dữ liệu trải qua nhiều mức độ phức tạp, từ các dịch vụ nhỏ đơn giản đến các hệ thống hướng sự kiện theo thời gian thực dưới tải trọng đáng kể. Tuy nhiên, vì bất kỳ nhóm phát triển và / hoặc DevOps nào được giao nhiệm vụ cải thiện hiệu suất sẽ chứng thực, việc làm cho các ứng dụng theo hướng dữ liệu trở nên nhanh chóng trên toàn cầu là điều “không hề nhỏ”.

Kiến trúc ứng dụng hiện đại như JAMstack thực thi việc phân tách các mối quan tâm bằng cách chuyển dữ liệu và các yêu cầu về tính bền bỉ sang API. Tách nội dung tĩnh một cách rõ ràng, logic nghiệp vụ và tính liên tục của dữ liệu cho phép mỗi nội dung được mở rộng quy mô và quản lý một cách độc lập.

Nhiều doanh nghiệp cũng tập trung vào việc tách các ứng dụng nguyên khối của họ để sử dụng microservices và thường triển khai trong môi trường không máy chủ. Sự thay đổi này để tách rời nhiều hơn để cách ly môi trường tốt hơn cũng có thể mang lại sự linh hoạt trong khu vực tốt hơn liên quan đến vị trí triển khai logic nghiệp vụ và cách nó được mở rộng quy mô. Các ứng dụng hiện có thể được triển khai trên toàn cầu trong một hành động CI / CD.

Tầng dữ liệu tuy nhiên lại đặt ra mức độ phức tạp cao hơn. Có những thách thức thực tế như tính nhất quán của giao dịch, tính khả dụng cao và hiệu suất truy vấn khi tải. Có những ràng buộc như tuân thủ PII và các yêu cầu tuân thủ. Và có những giới hạn không thể vượt qua, chẳng hạn như những định luật vật lý áp đặt cho độ trễ.

Bộ nhớ đệm ứng dụng

Nhiều nhóm phát triển tìm đến bộ nhớ đệm để giải quyết những vấn đề này ở lớp ứng dụng, được hỗ trợ bởi các lớp bền bỉ như Redis hoặc các hệ thống cây nhà lá vườn. Khái niệm rất đơn giản:lưu trữ dữ liệu được khách hàng yêu cầu trong một khoảng thời gian và nếu chúng tôi nhìn thấy nó lần nữa, chúng tôi đã sẵn sàng để phục vụ yêu cầu tiếp theo mà không cần sử dụng đến cơ sở dữ liệu gốc. Việc thiết kế một chiến lược lưu vào bộ nhớ đệm tốt mang lại những thách thức riêng:dữ liệu nào cần lưu vào bộ nhớ đệm, cách lưu vào bộ nhớ đệm và khi nào. Và có lẽ quan trọng hơn, cái gì, bằng cách nào và khi nào để xóa dữ liệu khỏi bộ nhớ cache. Chiến lược bộ nhớ đệm phải được xác định, hiểu rõ và sử dụng cho mọi bộ tính năng mới được thêm vào ứng dụng, giữa các nhà phát triển và các nhóm phòng ban tiềm năng. Thời gian phát triển và sự phức tạp là chi phí.

Cơ sở dữ liệu Đọc-Bản sao

Ngoài ra, nhiều doanh nghiệp giải quyết các thách thức về độ trễ và mở rộng quy mô bằng các bản sao đọc cơ sở dữ liệu. Bản sao đã đọc là các bản sao chỉ đọc của cơ sở dữ liệu chính và được đồng bộ hóa tự động (không đồng bộ) khi các bản cập nhật được thực hiện cho cơ sở dữ liệu chính. Thiết kế một chiến lược đọc-sao chép vững chắc là một nhiệm vụ khó khăn với đầy những chi phí và sự phức tạp tinh tế nhưng không quá phức tạp của riêng nó.

Phần lớn sự phức tạp đó có thể được khắc phục bằng ScaleGrid. Bản sao đọc được quản lý hoàn toàn có thể được triển khai chỉ bằng một nút bấm từ ScaleGrid (với hỗ trợ HA) vào tất cả các đám mây và khu vực chính, với lợi ích chính là dữ liệu được giữ tự động đồng bộ với cơ sở dữ liệu chính.

Tuy nhiên, các bản sao đã đọc không thể thoát khỏi sự cần thiết của việc chạy nhiều, có lẽ nhiều máy chủ cơ sở dữ liệu và chi phí liên quan của chúng.

Một cách tiếp cận khác:PolyScale.ai Edge Cache

PolyScale là bộ nhớ đệm cạnh cơ sở dữ liệu có cách tiếp cận khác. Bộ nhớ cache của PolyScale cung cấp hai lợi ích chính:cải thiện độ trễ truy vấn và giảm khối lượng công việc cơ sở dữ liệu. Hãy phá vỡ điều đó một chút:

  • Độ trễ khu vực được giải quyết giống như một CDN; PolyScale cung cấp một mạng cạnh toàn cầu về Điểm hiện diện (PoP) và lưu trữ các phản hồi truy vấn cơ sở dữ liệu gần với máy khách gốc, tăng tốc đáng kể các phản hồi.

  • Đọc Hiệu suất Truy vấn được cải thiện đáng kể vì PolyScale sẽ phục vụ mọi yêu cầu cơ sở dữ liệu được lưu trong bộ nhớ cache trong <10ms, bất kể độ phức tạp của truy vấn. Ngoài ra, do các yêu cầu đọc được phân phát từ PolyScale, tải này không bao giờ ảnh hưởng đến cơ sở dữ liệu gốc.

Thực hiện

PolyScale có thể được triển khai mà không cần viết mã hoặc triển khai máy chủ trong vài phút. Chỉ cần cập nhật chuỗi kết nối máy khách cơ sở dữ liệu (có thể là ứng dụng web, microservice hoặc công cụ BI chẳng hạn như Tableau) với tên máy chủ PolyScale. Lưu lượng cơ sở dữ liệu sau đó sẽ đi qua mạng biên và sẵn sàng để lưu vào bộ nhớ đệm.

Tương thích với MySQL và Postgres, PolyScale hoàn toàn minh bạch đối với các ứng dụng khách cơ sở dữ liệu, do đó không có gì thay đổi với kiến ​​trúc hiện tại của bạn. Không có di chuyển, không có thay đổi đối với giao dịch và không có thay đổi đối với ngôn ngữ truy vấn hiện tại của bạn. Thực sự cắm và chạy.

Nó hoạt động như thế nào?

proxy mạng toàn cầu của PolyScale và lưu trữ các giao thức dây cơ sở dữ liệu gốc để nó trong suốt với bất kỳ ứng dụng khách cơ sở dữ liệu nào. Các truy vấn được kiểm tra và đọc (SQL SELECT ) có thể được lưu vào bộ nhớ đệm theo địa lý gần với nguồn gốc yêu cầu để tăng tốc hiệu suất. Tất cả lưu lượng truy cập khác (INSERT , UPDATEDELETE ) chuyển đến cơ sở dữ liệu nguồn một cách liền mạch.

PolyScale’s AI đang trên con đường dẫn đến tự động hóa hoàn toàn. Thay vì định cấu hình bộ đệm khi cần, nền tảng sẽ đo lường luồng lưu lượng và liên tục điều chỉnh các thuộc tính của bộ nhớ đệm để mang lại hiệu suất tối ưu. Bạn có thể đọc thêm về mô hình bộ nhớ đệm PolyScale AI tại đây.

Kết luận

PolyScale.ai cung cấp phương pháp tiếp cận hiện đại, plug and play cho hiệu suất và mở rộng ở cấp dữ liệu. Nền tảng PolyScale đang trên con đường dẫn đến tự động hóa hoàn toàn, nơi một khi được kết nối, sẽ quản lý dữ liệu bộ nhớ đệm một cách thông minh để có hiệu suất tối ưu.

Do PolyScale tương thích với cơ sở dữ liệu hiện tại của bạn, nên không cần thay đổi quy mô số lần đọc trên toàn cầu trong vài phút. Hãy thử!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_fetch_array () mong muốn tham số 1 là mysqli_result, boolean được đưa vào

  2. LỖI 1045 (28000):Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:CÓ)

  3. Hàm MySQL LEAST () - Tìm đối số nhỏ nhất trong danh sách đối số

  4. Làm cách nào để chặn đầu ra tiêu đề cột cho một câu lệnh SQL?

  5. Có thể truy vấn bảng cấu trúc cây trong MySQL trong một truy vấn duy nhất, đến bất kỳ độ sâu nào không?