Skip to content

refactor(word): standardize single-flight on RLock#333

Merged
SolfE merged 2 commits into
developfrom
codex-rlock-migration
May 28, 2026
Merged

refactor(word): standardize single-flight on RLock#333
SolfE merged 2 commits into
developfrom
codex-rlock-migration

Conversation

@SolfE
Copy link
Copy Markdown
Member

@SolfE SolfE commented May 28, 2026

Summary

single-flight 분산락 경로를 Redlock 분기에서 RLock 표준 경로로 단순화하고, 관련 설정/테스트/로컬 도커 구성을 정리했습니다.

Problem

  • Redisson RedissonRedLock 경로와 다중 노드 설정이 코드/설정/테스트에 남아 있어 운영 복잡도가 높았습니다.
  • 현재 목적(LLM 중복 호출 억제)에 비해 Redlock 경로는 유지 비용이 크고, 미사용 설정(lock-ttl-ms)도 남아 있었습니다.

Solution

  • single-flight leader lock 경로를 RLock + watchdog 단일 경로로 표준화
  • Redlock 관련 프로퍼티/초기화/폴백 분기 제거
  • 로컬 compose에서 Redlock 전용 Redis 3노드 구성 제거
  • 문서를 현재 운영 기준(RLock 표준화, Bedrock 동기 API 멱등키 부재 맥락)으로 갱신
  • 미사용 lockTtlMs 필드 및 설정 제거

Changes

  • WordSingleFlightRedisCoordinator: Redlock 분기 제거, createLock() 단일화
  • WordSingleFlightProperties: lockTtlMs, redlockEnabled, redlockNodeAddresses 제거
  • application*.properties: Redlock/lock-ttl 설정 제거
  • docker-compose.yml: redis-a/b/c 및 관련 env/depends_on/volumes 제거
  • 테스트: Redlock 전용 단위/통합 테스트 제거, single-flight 핵심 회귀 테스트 유지
  • 결정 문서/인덱스 문구 업데이트

Example

  • 두 인스턴스 동시 요청에서도 leader action 1회 실행(single-flight)
  • leader 실패 결과의 follower 전파 유지
  • timeout 후 result key 재조회 fallback 유지

검증:

  • ./gradlew test --tests "com.linglevel.api.word.service.WordSingleFlightRedisCoordinatorTest" --tests "com.linglevel.api.word.service.WordSingleFlightRedisCoordinatorIntegrationTest" 통과
  • ./gradlew bootRun 기동 확인

Related Issues

없음

@SolfE SolfE merged commit 5569b54 into develop May 28, 2026
1 check passed
@SolfE SolfE deleted the codex-rlock-migration branch May 28, 2026 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant