반응형

ZGC 3

WiredTiger Copy-on-Write와 ZGC가 닮은 이유

WiredTiger와 ZGC는 서로 전혀 다른 레이어에 존재한다. 하나는 데이터베이스 스토리지 엔진이고, 다른 하나는 JVM의 가비지 컬렉터다. 그럼에도 불구하고 두 기술은 놀라울 정도로 유사한 설계 결정을 공유한다.공통된 질문은 하나다. “읽고 실행 중인 흐름을 멈추게 할 것인가, 아니면 관리 쪽이 더 복잡해질 것인가”WiredTiger와 ZGC는 모두 후자를 선택했다.1. WiredTiger의 Copy-on-Write란 무엇인가WiredTiger는 MongoDB의 기본 스토리지 엔진으로, 페이지 단위의 Copy-on-Write(CoW) 전략을 사용한다.핵심 동작 방식B-Tree 페이지는 사실상 불변 객체처럼 취급된다쓰기 발생 시 기존 페이지를 직접 수정하지 않는다새 페이지를 복사하여 변경을 적용한다부..

7편. ZGC 동작 원리 - Colored Pointer로 거의 멈추지 않는 GC

6편에서는 G1GC가 Region 기반 구조와 Mixed GC를 통해 Full GC를 피하고 정지 시간을 예측 가능하게 만드는 방식을 살펴봤습니다.이번 편에서는 G1GC보다 한 단계 더 나아간 GC, 바로 ZGC(Z Garbage Collector)의 동작 원리를 다룹니다.“GC로 인한 멈춤을 체감하지 않게 만들 수는 없을까?”ZGC는 이 질문에 매우 공격적인 방식으로 답한 GC입니다.ZGC의 목표 - 지연 시간을 힙 크기와 무관하게기존 GC의 정지 시간(STW)은 대부분 힙 크기와 어느 정도 비례합니다.힙이 커질수록 스캔해야 할 객체가 늘어나고, 정지 시간도 함께 늘어납니다.ZGC의 목표는 명확합니다.힙 크기가 커져도STW를 항상 수 ms 수준으로 유지하자.이를 위해 ZGC는 GC 구조 자체를 근본적으..

Backend Core/JVM 2026.01.25

5편. JVM GC 알고리즘 - CMS, G1, ZGC는 무엇이 다를까?

4편에서는 JVM이 왜 GC를 선택했는지, 그리고 Young GC와 Old GC가 어떤 역할을 하는지 살펴봤습니다.이번 편에서는 한 단계 더 들어가서 GC 알고리즘 자체를 다룹니다.“GC는 왜 이렇게 종류가 많을까?”이 질문에 답하려면, GC를 단순한 기술이 아니라 트레이드오프의 집합으로 봐야 합니다.GC 알고리즘은 하나의 목표를 가질 수 없다모든 GC 알고리즘은 다음 목표를 동시에 만족할 수 없습니다.낮은 지연 시간(Latency)높은 처리량(Throughput)낮은 메모리 오버헤드하나를 얻으면, 다른 하나를 포기해야 합니다.GC 선택은 “정답”이 아니라 환경에 맞는 선택이다.CMS GC - 지연 시간을 줄이려던 첫 시도CMS(Concurrent Mark Sweep)는 Old GC의 정지 시간을 줄이기..

Backend Core/JVM 2026.01.25
반응형