HNSW recall이 배포 때만 떨어진 이유: efSearch를 정적 값으로 두지 않았다 2026년 5월 8일·8 분 벡터 검색의 offline recall은 통과했지만 shard 확장과 metadata filter가 겹친 배포 후 검색 품질이 떨어졌다. HNSW의 efSearch를 정적 튜닝값이 아니라 쿼리별 recall 예산으로 운영한 기록이다.
삭제 요청은 DELETE가 아니었다: tombstone으로 검색 색인을 되살리지 않는 법 2026년 5월 7일·5 분 회원 삭제 요청이 운영 DB에서는 성공했지만 검색 색인과 분석 테이블에서 다시 보인 장애를 tombstone 이벤트, 소비자 재생, 재등장률 지표로 막은 기록입니다.
LoRA adapter를 테넌트마다 붙였더니 GPU 메모리가 먼저 터졌다: eviction 기준을 바꾼 날 2026년 5월 7일·8 분 per-tenant LoRA 서빙에서 모델 품질보다 먼저 무너진 것은 adapter 적재 정책이었다. GPU 메모리, cold load, p99를 함께 보며 adapter pool의 eviction 기준을 다시 잡은 기록이다.
Redis Streams pending이 줄지 않은 날: XAUTOCLAIM은 재시도 정책이 아니었다 2026년 5월 6일·5 분 Redis Streams consumer group에서 pending entries list가 줄지 않는 장애를 XAUTOCLAIM, 처리 멱등성, claim budget으로 나눠 복구한 기록입니다.
업로드가 실패했는데 S3 비용이 늘었다: multipart upload를 닫는 계약 2026년 5월 6일·7 분 multipart upload를 단순 전송 최적화가 아니라 비용과 정합성을 함께 닫는 운영 계약으로 다룬 경험을 정리한다.
eBPF profiler를 켰는데 p99가 흔들린 이유: sampling budget을 먼저 정해야 했다 2026년 5월 5일·6 분 항상 켜 둔 eBPF profiler가 관측성을 올리는 대신 tail latency를 흔든 사고를 바탕으로, sampling 주파수, 대상 선택, symbolization 비용을 운영 계약으로 묶은 기록입니다.
DAU가 1%씩 흔들린 날: HyperLogLog를 billing 지표로 쓰지 않기로 한 이유 2026년 5월 5일·7 분 HyperLogLog를 제품 분석에는 쓰되 과금과 quota에는 쓰지 않도록 cardinality 추정의 오차, 병합, 재처리 경계를 운영 계약으로 나눈 기록입니다.
advisory lock으로 cron 중복 실행을 막았는데 배포 때 다시 겹친 이유 2026년 5월 4일·5 분 PostgreSQL advisory lock으로 scheduler leader를 고른 뒤에도 rolling deploy 중 오래된 worker가 쓰기를 계속하던 장애를 lease table, fencing token, stale writer 차단 기준으로 정리한다.
LLM judge만으로는 agent regression을 못 잡는다: replay harness를 만든 이유 2026년 5월 4일·7 분 코딩 agent 평가를 LLM judge 점수로만 막았더니 실제 repo 변경에서 regression이 새어 나왔다. replay task, deterministic gate, trace ledger를 묶어 배포 기준을 다시 세운 기록이다.
CRDT를 붙였는데 충돌이 사라지지 않았다: LWW 필드를 operation log로 바꾼 날 2026년 5월 3일·6 분 오프라인 협업 기능에서 LWW register 기반 CRDT가 사용자 작업을 조용히 지우던 장애를 바탕으로 operation log, causal metadata, 복구 가능한 충돌 기준을 정리한다.