Tập 96: `duy-web` — Killer framework cho dịch vụ mạng

Trạng thái sự thật: Chưa xảy ra — Kế hoạch Phase W (Sprint 177-190).

Một ngôn ngữ lập trình hệ thống hiện đại cần một "killer app" trong thế giới ứng dụng để chứng minh sức mạnh của mình. Với Rust, đó là các web services hiệu năng cao; với Go, đó là microservices và Kubernetes. DUY hướng tới việc xây dựng duy-web — một framework dịch vụ mạng hiệu năng cực cao.

Điểm khác biệt của duy-web là việc ứng dụng triệt để hệ thống Effect và Region để quản lý bộ nhớ của mỗi request. Thay vì phân bổ bộ nhớ rải rác trên global heap rồi chịu chi phí dọn dẹp (GC sweep hoặc malloc/free chằng chịt), mỗi HTTP request khi đi vào hệ thống sẽ được cấp phát một RequestRegion riêng biệt.

HTTP Request -> [ RequestRegion ] -> Process (alloc inside)
                     |
                   Response Sent -> [ Drop RequestRegion ] (zero cleanup cost)

Toàn bộ dữ liệu sinh ra trong quá trình xử lý request (parse header, parse JSON body, sinh response) đều nằm gọn trong region này. Khi request kết thúc và response được gửi đi, toàn bộ RequestRegion được thu hồi chỉ bằng một phép toán dịch chuyển con trỏ stack đơn giản. Không memory leaks. Không fragmentation. Hiệu năng xử lý request sẽ đạt mức tiệm cận tối đa của phần cứng card mạng mà không có bất kỳ độ trễ rác (garbage collection pause) nào. Đây chính là minh chứng rõ ràng nhất cho triết lý: thiết kế ngôn ngữ đúng đắn sẽ tự động mang lại kiến trúc ứng dụng tối ưu.


Bình luận (0)

Đang tải bình luận...