피드로 돌아가기
Your TLS Stack Is Lying to You About Zero-Copy
Dev.toDev.to
Infrastructure

Panama FFM 기반 Zero-Allocation TLS 설계로 Heap 의존성 완전 제거

Your TLS Stack Is Lying to You About Zero-Copy

Arkadiusz Przychocki2026년 5월 1일9advanced

Context

Exeris Kernel의 'No Waste Compute' 제약 사항을 충족하기 위해 모든 Hot Path에서 GC pressure를 제거해야 하는 상황. 기존 Java SSLEngine은 ByteBuffer 기반의 Heap-facing 계약을 사용하므로, Off-heap ownership 모델과 심각한 Impedance Mismatch가 발생하여 결정론적 메모리 제어가 불가능한 한계 노출.

Technical Solution

  • SSLEngine의 JVM-managed buffer 모델을 폐기하고 Panama FFM(Foreign Function & Memory API)을 통한 Native TLS 직접 제어 구조 설계
  • 메모리 생명주기를 Arena 기반의 Scope에 바인딩하여 Reference Counting 없이 정적 보장되는 Deterministic Cleanup 구현
  • TlsStateMachine을 도입하여 TLS 상태 전이를 커널 실행 컨텍스트에 명시적으로 결합하고 Heap 상의 모호한 상태 잔존 가능성 제거
  • 데이터 전송 경로의 모든 메모리 소유권을 커널이 직접 관리하는 구조를 통해 Native 상태의 즉각적인 해제 및 제어권 확보
  • Netty의 Pooled Buffer 방식이 유발하는 Application Code로의 소유권 누수 및 메모리 릭 리스크를 FFM Scope 모델로 해결

- 고성능 런타임 설계 시 API의 추상화 계층이 내부 메모리 소유권 모델과 일치하는지 검토 - GC Overhead가 임계치에 도달한 경우, 단순 튜닝보다 Panama FFM과 같은 Native Memory 직접 제어 도입 고려 - Reference Counting 기반의 수동 메모리 관리 대신 Scope 기반의 결정론적 생명주기 모델 적용 가능성 분석

원문 읽기