aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-26 10:46:30 +0100
committereunhhu <[email protected]>2026-09-26 10:46:30 +0100
commit2827b23a1ec319d6a70eadccfa45cb5b7d8c83cc (patch)
tree216e26dc38493031d6828ad9eecbe7c76c8906d8 /docs
parent0c47bc2bc2497771740410bcd965d4d4fd0e3524 (diff)
downloadpure-2827b23a1ec319d6a70eadccfa45cb5b7d8c83cc.tar.gz
pure-2827b23a1ec319d6a70eadccfa45cb5b7d8c83cc.zip
Count a connection's deadline from its last progress
pure-serve renewed a connection's deadline when a request arrived or an answer finished, not while an answer was being sent, so a client that read a large answer steadily but slowly was cut off after ten seconds (a 1 MiB document over a 50 KB/s link never arrived). Every write that makes progress now renews it; only a stalled connection expires.
Diffstat (limited to 'docs')
-rw-r--r--docs/design/008-module-format.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/design/008-module-format.md b/docs/design/008-module-format.md
index c800a8a..7c9b50a 100644
--- a/docs/design/008-module-format.md
+++ b/docs/design/008-module-format.md
@@ -204,7 +204,8 @@ text·리스트가 남을 때만 위치를 유지한다.
- **연결.** HTTP/1.1 지속 연결과 파이프라이닝(응답은 순서대로), edge-triggered epoll 소유 스레드 하나, 기다리는
연결을 한 번에 받는다. 연결 구조체는 받을 때 할당하고 닫으면 재사용하므로 메모리는 설정한 최대치가 아니라
- 열린 연결 수를 따른다(기본 최대 1,024). 응답은 머리말과 본문을 `writev` 한 번으로 보낸다.
+ 열린 연결 수를 따른다(기본 최대 1,024). 응답은 머리말과 본문을 `writev` 한 번으로 보낸다. 연결 기한(기본
+ 10초)은 진행이 멈춘 시간으로 센다. 느리게라도 계속 받아 가는 클라이언트는 큰 응답을 끝까지 받는다.
- **런타임 코어.** 요청은 `runtime.c`를 그대로 거친다(연결마다 작업 슬롯, 입력 바이트 예산, 코어가 소유한
ingress, 요청에서 빌린 PUT 응답). 효과는 비동기 인터페이스(`pure_runtime_take`/`complete`)로 소유 스레드에서 처리한다.
- **이벤트 한 바퀴가 묶음 하나다.** 준비된 요청을 모두 지연 저장 모드의 앱에 차례로 적용하고, 저장 한 번 **뒤에**