A post-mortem report of a critical bug that made very early Beta customers of Doltgres vulnerable to data loss when upgrading to 1.0
Nguồn: https://dolthub.com/blog/2026-09-04-postgres-data-loss-post-mortem. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
gRPC-Web được ra đời để cho phép các ứng dụng trình duyệt gọi dịch vụ gRPC mà không cần thay đổi máy chủ, nhưng nó dựa trên việc mã hóa lại payload và thường yêu cầu một proxy như Envoy để chuyển đổi giữa HTTP/1.1 của trình duyệt và HTTP/2 của máy chủ. Vì trình duyệt không hỗ trợ nguyên bản HTTP/2, gRPC-Web buộc phải sử dụng định dạng mã hóa đặc biệt và thường chỉ hỗ trợ gọi unary, khiến các tính năng streaming của gRPC bị hạn chế hoặc mất đi. Điều này dẫn đến độ trễ tăng lên, kích thước gói tin lớn hơn và khiến trình duyệt trở thành khách hàng hạng hai so với các client gốc sử dụng gRPC qua HTTP/2. Bài viết gợi ý thay vào đó các nhà phát triển nên cân nhắc sử dụng giao thức RPC gốc cho web như ConnectRPC hoặc tRPC, hoặc đơn giản là REST/GraphQL khi không cần các tính năng streaming mạnh mẽ của gRPC. Bài học là khi chọn RPC cho ứng dụng web, ưu tiên những giải pháp không cần proxy và không làm thay đổi semantics của giao thức gốc để tránh những Overshoot về hiệu suất và tính năng.
Đang tải bình luận…
PostgreSQL 19 Beta 3 được phát hành vào ngày 13 / 8 / 2026 và ghi chú phát hành đã được hoàn thiện từ ngày 18 / 7 / 2026, mặc dù vẫn được đánh dấu là có thể thay đổi trước khi phiên bản ổn định (GA) ra mắt. Bài viết giải thích rằng các thay đổi chính trong core bao gồm cải tiến về vacuum song song, mở rộng khả năng sao chép logic và một số sửa đổi trong hệ thống catalog, dẫn đến nhu cầu kiểm tra lại các extension và tùy chỉnh cấu hình hiện tại. Do đó, các đội ngũ phát triển được khuyến khích triển khai Beta 3 trên môi trường staging, chạy bộ kiểm thử hồi quy và theo dõi các cảnh báo về tính năng bị loại bỏ hoặc thay đổi hành vi. Quá trình này giúp phát hiện sớm các sự không tương thích và cho thời gian đủ để cập nhật mã nguồn hoặc tìm phiên bản mới của các công cụ phụ trợ. Bài học chính là theo dõi lịch trình phát hành chính thức, sử dụng bản beta để xác thực và lên kế hoạch nâng cấp dựa trên ghi chú phát hành cụ thể thay vì dựa trên giả định chung.
Bài viết giúp lập trình viên nắm bắt những cải tiến và thay đổi quan trọng trong PostgreSQL 19 để chuẩn bị cho quá trình nâng cấp và phát triển ứng dụng hiệu quả.
ClickHouse Managed Postgres là dịch vụ cơ sở dữ liệu được quản lý đầy đủ, trước đây các bản nâng cấp thường được thực hiện tự động mà không có thời gian báo trước. Để giải quyết vấn đề này, nhà phát triển đã thêm tính năng cửa sổ nâng cấp lên lịch (scheduled upgrade windows) cho gói Scale và Enterprise. Khi bật tính năng này, quản trị viên có thể xác định khoảng thời gian cụ thể trong tuần hoặc tháng để hệ thống thực hiện các tác vụ bảo trì định kỳ. Kết quả là thời gian ngừng hoạt động không mong muốn giảm đáng kể, và người dùng có thể lên kế hoạch công việc xung quanh các bản nâng cấp một cách tin cậy. Kinh nghiệm cho thấy việc cung cấp quyền kiểm soát lịch trình bảo trì giúp nâng cao độ ổn định của dịch vụ và là bài học quan trọng cho bất kỳ nền tảng quản lý nào.
ClickHouse Managed Postgres hỗ trợ nâng cấp theo lịch trình giúp lập trình viên kiểm soát thời gian bảo trì hệ thống.
Trong hệ thống version control như Git, các thay đổi schema tồn tại trong các file riêng biệt nên hiếm khi gây xung đột merge. Việc lưu trữ migration files trong Git không đồng nghĩa với việc quản lý chúng hiệu quả bởi Git không hiểu ngữ cảnh của các thay đổi database schema. Hệ quả là các migration files có thể trở nên lỗi thời hoặc gây khó khăn trong việc tracking changes thực tế. Lập trình viên nên cân nhắc sử dụng các công cụ chuyên dụng như Liquibase hoặc Flyway để quản lý schema thay vì phụ thuộc hoàn toàn vào Git tracking.
Lập trình viên nên đọc bài này để hiểu cách quản lý migration files trong Git để tránh hiểu lầm về việc các thay đổi schema được tự động hợp nhất.
Bối cảnh: bài viết mở rộng giới thiệu các tính năng mới của pgwatch v6.0.0 beta, tập trung vào việc cải tiến dashboard và cải thiện quá trình thu thập dữ liệu. Nguyên nhân kỹ thuật: thay đổi cách dashboard được xây dựng bằng React và tối ưu hoá luồng xử lý để giảm tải server. Hệ quả: dashboard hiển thị nhanh hơn và reaper không còn gặp lỗi choking khi xử lý dữ liệu lớn. Điều đáng học: việc sử dụng các thư viện UI hiện đại và tối ưu hoá truy vấn giúp tăng hiệu suất và độ ổn định. Bài viết khuyến khích cộng đồng tham gia đóng góp mã nguồn để hoàn thiện tính năng.
We need to output exactly one short Vietnamese sentence explaining why a programmer should read this. Must be correct Vietnamese, no markdown, no opening greeting. Must only use Vietnamese and Latin characters, no Chinese/Japanese/Korean/Han characters. Latin characters are allowed (i.e., English letters). Names of technical terms must remain Latin (e.g., pgwatch, dashboards, reaper). Must not include any non-Latin characters (i.e., no diacritics? Actually Vietnamese uses diacritics which are Latin letters with diacritics; those are still Latin characters? The instruction says "chỉ dùng chữ Việt và chữ Latin: tuyệt đối không có ký tự Hán/Trung/Nhật/Hàn trong câu trả lời". Vietnamese uses Latin alphabet with diac
PostgreSQL mặc định bọc mỗi câu lệnh trong một giao dịch riêng khi không có BEGIN…COMMIT rõ ràng. Tuy nhiên, khi gửi nhiều câu lệnh trong một chuỗi truy vấn đơn (thông qua PQexec hoặc các hàm plpgsql) hoặc sử dụng các tiện ích như COPY và CREATE INDEX CONCURRENTLY, máy chủ sẽ ẩn ý tạo một giao dịch duy nhất bao gồm tất cả các câu lệnh đó. Điều này có thể dẫn đến việc giữ khóa lâu hơn, tiêu thụ ID giao dịch tăng nhanh và làm khó khăn việc rollback một phần công việc khi lỗi xảy ra. Do đó, lập trình viên cần kiểm tra xem ứng dụng của mình có vô tình nhóm nhiều câu lệnh vào một giao dịch ngầm không và cân nhắc sử dụng BEGIN…COMMIT cụ thể khi cần kiểm soát granularity. Theo dõi pg_stat_activity để phát hiện các giao dịch mở dài hạn cũng là biện pháp phòng ngừa tốt.
Bài này giúp lập trình viên hiểu rõ cách Postgres tự động tạo giao dịch nhiều câu lệnh, tránh lỗi và tối ưu hiệu năng.
Bài viết giải thích thiết kế hệ thống từ đơn giản (máy chủ đơn) đến phức tạp (hàng triệu người dùng), bao gồm API, cơ sở dữ liệu, caching, CDN, load balancing và hạ tầng sản xuất.
Bài viết giúp bạn hiểu rõ cách xây dựng cơ sở hạ tầng thực tế từ những nguyên tắc cơ bản nhất, từ đó tránh những sai lầm thường gặp khi mở rộng hệ thống khi còn mới mẻ.
Đội ngũ gRPC-Rust vừa hoàn thành bản preview phía client và đang chuẩn bị cho các bước phát triển tiếp theo. Họ cần giải quyết các vấn đề về tính ổn định của API, tích hợp hoàn toàn với mô hình async/await của Rust và nâng cấp lớp mã hoá TLS dựa trên thư viện native-tls. Khi các tính năng này ổn định, nhà phát triển sẽ có thể xây dựng dịch vụ gRPC hoàn toàn bằng Rust mà không cần phụ thuộc vào bản triển khai C++, giảm latency và tối ưu hoá sử dụng bộ nhớ. Dự án cho thấy giá trị của việc phát hành preview sớm để thu thập phản hồi cộng đồng trước khi khóa API, giúp giảm nguy cơ thay đổi phá vỡ sau này. Lộ trình cũng nhấn mạnh tầm quan trọng của việc duy trì sự tương thích ngược với protobuf và cung cấp công cụ codegen tự động qua tonic-build.
Bài này cung cấp lộ trình phát triển tiếp theo của gRPC-Rust giúp lập trình viên nắm định hướng công nghệ và lên kế hoạch phát triển hệ thống hiệu quả.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000+ bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử