While adding MySQL support to Hyperdrive, we found a subtle protocol bug when caching query results.
Source: https://blog.cloudflare.com/hyperdrive-mysql. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000 DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try itViệc sử dụng SELECT trong ứng dụng gây ra chi phí ẩn: chuyển các cột không cần thiết qua mạng, làm tăng kích thước dữ liệu và thời gian xử lý tại client; nó phá vỡ tối ưu hóa covering index buộc MySQL phải lấy toàn bộ hàng; tạo ra code dễ vỡ khi hành vi thay đổi âm thầm khi thêm, đổi tên hoặc trùng lặp cột qua join; và rò rỉ dữ liệu nhạy cảm như internal_notes trong response API, logs hoặc exports. Bài viết đưa ra ví dụ cụ thể về covering indexes, join với tên cột trùng, và rò rỉ dữ liệu, khuyến nghị nên dùng danh sách cột cụ thể thay vì SELECT trong production code. Tuy nhiên, SELECT vẫn hữu ích cho việc khám phá nhanh hoặc dùng với COUNT().
Sử dụng SELECT * trong mã ứng dụng gây ra chi phí ẩn làm tăng thời gian xử lý và nguy cơ rò rỉ dữ liệu.
Talorys là một personal AI agent tự host được thiết kế để hoạt động trên tier miễn phí của Cloudflare. Với chỉ một lệnh npx create-talorys@latest, người dùng có thể triển khai giải pháp này trong tài khoản Cloudflare của mình. Nó cung cấp các tính năng như chat, memory, tasks, notes và scheduled reminders mà không cần telemetry, phù hợp cho single-user. Điểm đáng chú ý là dự án này tận dụng hoàn toàn các dịch vụ miễn phí của Cloudflare, giúp giảm chi phí cho người dùng cá nhân.
Talorys cho phép bạn triển khai trợ lý AI cá nhân miễn phí trên Cloudflare với một lệnh duy nhất.
Cloudflare đã giảm thành công việc sử dụng RAM lên đến 100TB cho dịch vụ dựa trên Pingora bằng cách áp dụng thống kê. Nguyên nhân kỹ thuật nằm ở việc tối ưu hóa việc lưu trữ trạng thái trong các cây nhị phân (binary trees) mà không làm giảm độ chính xác. Hệ quả là việc sử dụng RAM giảm xuống còn 25%, giải phóng tài nguyên đáng kể cho hệ thống. Bài viết đáng học ở chỗ cho thấy cách áp dụng toán học và Rust để giải quyết vấn đề hiệu suất mà không cần thay đổi logic nghiệp vụ.
Bài viết này tiết lộ phương pháp thống kê thú vị giúp giảm đáng kể lượng RAM sử dụng trong hệ thống mạng lớn của Cloudflare.
Cloudflare đã hỗ trợ native Rust trên Workers thông qua target Emscripten mới cho wasm-bindgen. Giờ đây nhiều thư viện Rust trước đây không được hỗ trợ có thể biên dịch và triển khai trực tiếp lên platform Workers. Sự thay đổi này bao gồm hỗ trợ sắp tới cho Tokio async runtime, một thành phần quan trọng trong hệ sinh thái Rust. Đối với lập trình viên Rust, đây là cơ hội lớn để tận dụng hiệu năng native code trong environment serverless của Cloudflare. Bạn nên đọc bài gốc để hiểu rõ cách cấu hình và các hạn chế hiện tại của experimental feature này.
Bài viết này giúp bạn triển khai native Rust lên Cloudflare Workers với hỗ trợ mới cho Emscripten target, mở rộng khả năng sử dụng thư viện Rust và ứng dụng async như Tokio trên nền tảng này.
Cloudflare vừa công khai bộ dữ liệu BEACON chứa hàng tỷ bản ghi hiệu năng Real User Monitoring (RUM) ẩn danh trên Google BigQuery. Dữ liệu này đo tốc độ thực tế của web dựa trên hàng tỷ điểm đo từ người dùng thật khắp toàn cầu. BEACON cung cấp cái nhìn sâu sắc về hiệu năng trang web ở các khu vực địa lý khác nhau, cho thấy thời gian tải trang trung bình dao động từ 3.2 giây ở châu Âu lên đến 7.5 giây ở châu Phi. Các nhà phát triển có thể truy vấn trực tiếp bộ dữ liệu này để tối ưu hóa hiệu ứng Largest Contentful Paint (LCP) và First Input Delay (FID) của ứng dụng web. Dự án này là nguồn tài liệu tham khảo quý giá để hiểu sự khác biệt hiệu năng giữa các khu vực và cải thiện trải nghiệm người dùng toàn cầu.
Lập trình viên nên đọc bài này để truy cập vào bộ dữ liệu hàng tỷ ghi chú hiệu suất thực tế giúp tối ưu hóa hiệu năng website.
MySQL 26.7 giới thiệu mô hình lịch mới, đánh dấu sự chuyển đổi lớn trong cách phiên bản hóa phần mềm. Thay vì việc sử dụng định dạng phiên bản theo quy ước cũ (ví dụ: 8.0), phiên bản này áp dụng mô hình 26.7, với số đầu tiên đại diện cho năm và số thứ hai cho tháng. Sự thay đổi này nhằm mục đích giúp người dùng dễ dàng xác định thời điểm phát hành phiên bản và cải thiện khả năng lập kế hoạch cập nhật. Sự điều chỉnh này cho thấy xu hướng hướng tới minh bạch hóa thông tin phiên bản trong hệ sinh thái database. Các lập trình viên nên cân nhắc hiểu rõ mô hình này để quản lý dự án và cơ sở dữ liệu hiệu quả hơn trong tương lai.
Bài viết này giúp lập trình viên nắm bắt sự thay đổi quan trọng trong mô hình phiên bản MySQL 26.7 và hiểu tác động đến công việc phát triển ứng dụng.
Cloudflare’s 1.1.1.1 công khai DNS resolver duy trì một bộ nhớ cache lớn để xử lý hàng tỷ truy vấn mỗi ngày. Đội ngũ đã thực hiện năm tối ưu hoá cấp Rust trong bố cục mục cache: tái cấu trúc struct, sử dụng kiểu số nguyên gọn gàng, loại bỏ padding, áp dụng arena allocation và lưu trữ trước giá trị băm, giảm kích thước mỗi mục xuống 56 %. Khi mở rộng ra toàn bộ hạ tầng toàn cầu, việc này giải phóng khoảng 100 TB RAM, tạo thêm dung lượng cho các đợt lưu lượng cao và giảm chi phí vận hành. Bài học là việc kiểm soát bố cục dữ liệu và khai thác khả năng kiểm soát bộ nhớ của Rust có thể tiết kiệm tài nguyên lớn ngay cả ở các dịch vụ quy mô lớn. Đọc bài gốc sẽ cung cấp các con số cụ thể và hướng dẫn chi tiết từng bước để áp dụng các tối ưu hoá tương tự vào các cache khác.
Bài viết tiết lộ những tối ưu hóa cấp độ Rust giúp tiết kiệm 100 terabyte bộ nhớ cho cache DNS của Cloudflare.
Người thực hành MySQL khuyên không nên dùng các kiểu dữ liệu phức tạp như TIMESTAMP, DATE/TIME hay ENUM, thay vào đó nên dùng các kiểu số đơn giản hơn. Việc sử dụng ENUM gặp vấn đề khi xóa giá trị buộc phải rebuild toàn bộ bảng, cùng lỗi MySQL khiến MIN()/MAX() hoạt động không nhất quán trên ENUM.
Lập trình viên nên đọc bài này để tránh rủi ro về hiệu suất, tính bảo trì và tính nhất quán khi sử dụng các kiểu dữ liệu phức tạp như ENUM và TIMESTAMP trong MySQL, mà thay vào đó có thể áp dụng các giải pháp đơn giản và đáng tin cậy hơn.
Đang tải bình luận…