Bỏ qua tới nội dung chính
Quay lại tin tức

PGSimCity Biến Sự Phức Tạp Của PostgreSQL Thành Mô Phỏng Thành Phố 3D Ảo Diệu Như Thế Nào

InfoQ AI· Olimpiu Pop· 16/8/2026general

Nikolay Samokhvalov đã phát triển PGSimCity, một công cụ giáo dục mã nguồn mở giúp trực quan hóa cơ chế PostgreSQL dưới dạng mô phỏng không gian 3D trên trình duyệt. Công cụ này hỗ trợ các nhà phát triển backend và kỹ sư độ tin cậy hệ thống (site reliability engineers) trong việc tìm hiểu SQL và động lực thực thi của nhân hệ thống (kernel execution). Dự án hiện có sẵn trên GitHub và hướng tới việc nâng cao hiểu biết về kiến trúc cơ sở dữ liệu thông qua các yếu tố tương tác.

Trang chủ InfoQ Tin tức PGSimCity biến sự phức tạp của PostgreSQL thành mô phỏng 3D thành phố ảo như thế nào Phát triển PGSimCity biến sự phức tạp của PostgreSQL thành mô phỏng 3D thành phố ảo như thế nào Ngày 16/8/2026 2 phút đọc Bởi Olimpiu Pop Theo dõi chúng tôi trên Youtube 232K người theo dõi Linkedin 26K người theo dõi Instagram Mới RSS 19K độc giả X 57,1k người theo dõi Facebook 21K lượt thích Bluesky Mới Nghe bài viết này - 0:00 Âm thanh sẵn sàng phát Trình duyệt của bạn không hỗ trợ phần tử âm thanh. 0:00 0:00 Bình thường 1.25x 1.5x Thích Danh sách đọc Nikolay Samokhvalov đã phát hành PGSimCity, một công cụ trực quan hóa giáo dục mã nguồn mở, chuyển đổi cơ chế cụm PostgreSQL thành một mô phỏng không gian 3D tương tác. Chạy hoàn toàn trên trình duyệt mà không cần các phụ thuộc cục bộ, dự án có thể truy cập thông qua hộp cát PGSimCity Live Visualisation. Công cụ này thu hẹp khoảng cách khái niệm giữa các truy vấn SQL cấp cao và việc thực thi kernel cấp thấp cho các nhà phát triển backend, kỹ sư độ tin cậy trang web và kiến trúc sư cơ sở dữ liệu. Cơ chế trừu tượng cốt lõi biến các thành phần nội bộ của PostgreSQL 18 thành các khu vực đô thị rõ ràng được định nghĩa trong src/world/layout.ts. Các kết nối máy khách đi vào từ bầu trời phía bắc đến bộ giám sát Postmaster, bộ này phân nhánh các tiến trình worker dọc theo đại lộ backend. Vùng bộ nhớ dùng chung (shared_buffers) nằm như một lưới 1024 khung hình trung tâm cùng với wal_buffers, ProcArray, bảng khóa và Nhật ký cam kết (CLOG). Các khu vực lưu trữ bên dưới thành phố cấu trúc dữ liệu heap dưới dạng các trường trang 8 KB, cây B-tree, Bản đồ không gian trống (FSM) và Bản đồ hiển thị (VM). Ghi nhật ký trước (Write-Ahead Logging) được định tuyến đến khu vực WAL phía đông, nơi các luồng walwriter và walsender phát sóng các luồng sao chép, trong khi khu vực bảo trì phía tây chứa các worker checkpointer, bgwriter và autovacuum. Để duy trì tính toàn vẹn kiến trúc, lớp trình bày tách biệt nghiêm ngặt việc kết xuất (rendering) bằng three.js khỏi các chuyển đổi trạng thái cốt lõi. Các thay đổi mô phỏng được tính toán trong các máy trạng thái TypeScript cô lập tại src/sim/state.ts sử dụng SimState, đảm bảo rằng sự dao động tốc độ khung hình không bao giờ làm mất đồng bộ trạng thái nội bộ. Trong khi các nhà phát triển phụ trợ (backend) có thể theo dõi vòng đời câu lệnh qua các giai đoạn phân tích (parse), viết lại (rewrite), lập kế hoạch (plan) và thực thi (execute), các kỹ sư cơ sở dữ liệu chính và SRE (Site Reliability Engineer) có thể kích hoạt các lỗi vận hành để kiểm tra các chế độ lỗi của công cụ. Việc đặt shared_buffers thành 16 MB buộc các cuộc đua loại bỏ theo cơ chế clock-sweep, nơi các phụ trợ ghi các trang "bẩn" (dirty victim pages) trước khi đọc dữ liệu mới. Mô phỏng work_mem bị hạn chế khiến các nút thực thi Sort và HashAggregate phải tràn các tệp tạm thời vào base/pgsql_tmp. Các giao dịch chạy dài làm giảm xmin horizon, gây tắc nghẽn autovacuum và làm phình bảng, trong khi các đợt ghi dữ liệu lớn gây ra các cơn bão checkpoint làm ngập pg_wal với các bản ghi toàn trang (FPW - full-page writes) vượt quá ngưỡng max_wal_size / (1 + checkpoint_completion_target). Trên Hacker News, dự án đã khơi dậy cuộc thảo luận rộng rãi về trực quan hóa kiến trúc phần mềm có hỗ trợ AI và tải nhận thức (cognitive load). Samokhvalov lưu ý rằng nguyên mẫu ban đầu được xây dựng thông qua việc nhắc lệnh LLM (mô hình ngôn ngữ lớn) với hàng tỷ token trước khi hiệu chỉnh thủ công rộng rãi dựa trên mã nguồn PostgreSQL REL_18_STABLE. Phản hồi từ cộng đồng đã thúc đẩy các nỗ lực giảm mật độ cửa sổ bật lên (pop-up) trên giao diện người dùng và truyền cảm hứng cho các dự án phái sinh như CHSimCity dành cho ClickHouse. PGSimCity cũng tích hợp PGlite để thực thi PostgreSQL thực, trong bộ nhớ, được biên dịch sang WebAssembly trực tiếp bên trong luồng máy khách của trình duyệt. Nhìn về phía trước, tệp ROADMAP.md của dự án vạch ra một số cột mốc kỹ thuật cốt lõi: giới thiệu các chế độ trực quan hóa nhóm câu lệnh (statement-pooling), điều chỉnh mô hình kích thước vòng đệm khung (buffer-frame ring-sizing) với các quy tắc io_combine_limit và effective_io_concurrency động của PostgreSQL 18, mở rộng các đường dẫn kế hoạch truy vấn tương tác và triển khai các cổng kiểm thử đột biến (mutation testing gates) hàng đêm để củng cố công cụ xác minh xác định chống lại nhánh REL_18_STABLE ngược dòng. Toàn bộ mã nguồn, tài liệu và bộ kiểm thử vận hành có thể truy cập trên kho lưu trữ GitHub của PGSimCity theo Giấy phép Apache-2.0, khuyến khích các nhà phát triển cung cấp phản hồi, phân nhánh và đóng góp. Astro 7: Trình biên dịch Rust, Quy trình Markdown Rust và Vite 8 giúp tăng tốc độ xây dựng lên tới 61% Báo cáo Xu hướng InfoQ về Điện toán đám mây và DevOps 2026: AI, Khả năng phục hồi, Nền tảng, FinOps và Chủ quyền Nội dung liên quan

Nguồn tin: InfoQ AI — Tác giả: Olimpiu Pop. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.