피드로 돌아가기
Dev.toBackend
원문 읽기
Spatial Hash 도입으로 p99 18µs 달성 및 인프라 비용 66% 절감
Why Hytale Treasure Hunt Engines Stumble Before 1,000 Concurrent Diggers: What Veltrix Does Not Document
AI 요약
Context
JVM 기반 Actor 모델의 Thread-per-cell 구조로 인한 메모리 고갈 및 GC 지연 문제 발생. pod당 4GB 메모리 제한 내에서 1,000명 이상의 Concurrent Diggers를 처리하기에 부적합한 고비용 스레드 모델의 한계 노출.
Technical Solution
- Veltrix Actor 모델을 폐기하고 Redis Cluster 기반 2-Layer Spatial Hash 구조로 전환하여 메모리 효율성 확보
- Redis Cluster에 10ms TTL Write-behind Cache를 적용하여 Read Latency 최소화 및 DB 부하 분산
- Cell Hash Mod 128 기반 Kafka Partitioning을 통해 이벤트 처리의 순차성과 확장성을 동시에 달성
- Go Worker Pool과 Postgres BRIN Index를 조합하여 고속 쓰기 성능 확보 및 데이터 저장 효율 최적화
- Netty Virtual Threads를 통한 HTTP Tier의 리소스 점유 최소화로 Connection Saturation 문제 해결
- 최종적으로 Eventual Consistency를 수용함으로써 시스템 가용성과 처리량을 극대화한 설계 채택
실천 포인트
- 엔티티별 스레드 할당 구조가 메모리 Ceiling에 미치는 영향을 사전에 계산할 것 - High-concurrency 환경에서 동기식 Gossip 채널 대신 Kafka와 같은 분산 로그 기반의 비동기 전파 구조를 검토할 것 - 쓰기 집약적 공간 데이터 저장 시 Postgres의 BRIN Index와 같은 블록 범위 인덱스 활용을 고려할 것 - 인프라 스케일업 이전에 리소스 누수 지점(Thread Stack, Event Loop Ceiling)을 먼저 프로파일링할 것