Weekly roundup of Rails codebase changes covering progress toward Ractor compatibility (shareable controller, Action View, Active Record, and time zone configuration across Ractors), a fix for a TypeCaster connection leak, preserved key order in fetch_multi cache lookups, a new PostgreSQL error_verbosity option, restored triggers after disable_referential_integrity failures, deduplicated joins in scoped through associations, a test config to shuffle unordered query results, an upgrade of Active Storage to Marcel 2, JSON 3.0 compatibility fixes, default timeouts on generated GitHub Actions jobs, and two guides open for review (Hotwire and a rewritten Securing Rails guide). Also mentions Claude Fable 5.1 and GLM 5.3 Flash topping the Agents on Rails coding benchmark leaderboard.
Nguồn: https://world.hey.com/this.week.in.rails/towards-ractor-ready-rails-ordered-cache-fetches-and-more-bea9ebcb. 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.
Đang tải bình luận…
PostgreSQL 19 ra mắt bản cập nhật chính thức và đi kèm với bốn view hệ thống mới. Những view này cho phép truy vấn trực tiếp về tình trạng khóa (lock contention), quá trình phục hồi (recovery state), mức độ ưu tiên của autovacuum và cách cấp phát bộ nhớ chia sẻ động (dynamic shared memory allocations). Trước đây, quản trị viên thường phải dựa trên các extension bên ngoài hoặc truy vấn các pg_catalog phức tạp để thu thập thông tin tương tự. Với các view mới, việc giám sát và chẩn đoán các vấn đề hiệu suất trở nên nhanh chóng và không cần cài đặt thêm thành phần. Điều này cho thấy việc cải thiện khả năng quan sát nội bộ của PostgreSQL có thể giảm thời gian debug và giúp tối ưu hoá cấu hình mà không cần phụ thuộc vào công cụ của bên thứ ba.
Bài viết này giúp lập trình viên dễ dàng kiểm tra các vấn đề về lock contention, trạng thái phục hồi, ưu tiên autovacuum và phân bổ bộ nhớ chia sẻ động trong PostgreSQL 19.
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.
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.
Trong PostgreSQL 19, log_lock_waits sẽ bật mặc định sau khi tắt mặc định qua phiên bản 18, sử dụng timer giống deadlock_timeout (một giây) để ghi log tình trạng chờ khóa khi phát hiện xung đột. log_lock_failures, tham số mới trong PostgreSQL 18, ghi log ai đang giữ khi câu lệnh SELECT ... FOR UPDATE NOWAIT thất bại do không thể chờ. Cả hai tính năng này hữu ích để giám sát hiệu năng hệ thống, tuy nhiên log_lock_failures chỉ áp dụng cho cấp độ hàng với NOWAIT, không bao gồm LOCK TABLE hoặc timeout. Lập trình viên nên bật log_lock_waits ở mọi nơi và log_lock_failures trừ khi đang sử dụng workload thực thi NOWAIT liên tục.
Đọc bài này giúp bạn hiểu cách tối ưu hiệu suất PostgreSQL bằng các thông số log_lock_waits và log_lock_failures mới trong phiên bản 19.
Bài viết mô tả sự cố xảy ra với khách hàng sử dụng phiên bản Beta đầu tiên của Doltgres khi họ nâng cấp lên phiên bản 1.0. Theo báo cáo post‑mortem, lỗi nằm ở script nâng cấp không đúng cách xử lý dữ liệu metadata từ các bản Beta, dẫn đến việc hệ thống coi bảng người dùng là tạm thời và xóa chúng trong quá trình chuyển đổi. Hệ quả là những khách hàng Beta đầu tiên mất toàn bộ dữ liệu đã lưu trữ trong Doltgres sau khi nâng cấp, khiến họ phải khôi phục từ bản sao lưu hoặc bắt đầu lại từ đầu. Đội phát triển đã xác định nguyên nhân là thiếu kiểm tra phiên bản trong hàm migration và đã sửa bằng cách thêm điều kiện kiểm tra trước khi thực hiện các thao tác thay đổi schema. Bài học được rút ra là cần luôn chạy thử nghiệm nâng cấp trên dữ liệu thực tế từ tất cả các phiên bản hỗ trợ và tự động hóa kiểm tra tính tương thích ngược trước khi phát hành phiên bản ổn định.
Bài báo tiết lộ lỗi nghiêm trọng khiến người dùng Beta sớm của Doltgres có nguy cơ mất dữ liệu khi nâng cấp lên phiên bản 1.0.
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
Bài viết thực nghiệm trên PostgreSQL bằng cách tăng số kết nối từ 1 lên 400 để đo throughput và latency. Kết quả cho thấy throughput đạt đỉnh ở khoảng 48 kết nối, sau đó giảm 37% khi tăng lên 400 kết nối, đồng thời latency tăng gấp 13 lần. Nguyên nhân là sự cạnh tranh về tài nguyên bộ nhớ và luồng trong PostgreSQL khi số kết nối vượt quá khả năng xử lý của CPU và bộ nhớ đệm, gây ra hiện tượng thrashing và tăng thời gian chờ lock. Điều này dạy chúng ta nên đo lường đường cong hiệu suất và chọn kích thước connection pool phù hợp, thay vì đặt giá trị cao nhất có thể.
Bài viết này giúp lập trình viên hiểu cách tối ưu kích thước connection pool để đạt hiệu suất cao nhất.
LibreDB Studio là IDE SQL mã nguồn mở, tự host cho PostgreSQL chạy trên trình duyệt, triển khai dưới dạng container, Helm chart hoặc npm package. Công cụ hỗ trợ pooling connection, transaction rõ ràng, giám sát thông qua pg_stat_* và xác thực qua local account hoặc OIDC với kiểm soát quyền truy cập.
Lập trình viên phát triển ứng dụng PostgreSQL nên đọc để tìm hiểu cách tự host một IDE SQL trực tuyến, tối ưu hóa hiệu năng với cơ chế kết nối pooled và tự động rollback, đồng thời khám phá tính năng hỗ trợ quyền truy cập RBAC và hỗ trợ OIDC, giúp streamline quá trình phát triển và quản lý cơ sở dữ liệu.
Đọ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ử