피드로 돌아가기
Why Hytale Treasure Hunt Engines Stumble Before 1,000 Concurrent Diggers: What Veltrix Does Not Document
Dev.toDev.to
Backend

Spatial Hash 도입으로 p99 18µs 달성 및 인프라 비용 66% 절감

Why Hytale Treasure Hunt Engines Stumble Before 1,000 Concurrent Diggers: What Veltrix Does Not Document

Lillian Dube2026년 5월 26일4advanced

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)을 먼저 프로파일링할 것

원문 읽기