비슷한 use case를 가진 곳에서 잘 쓸 수 있을 거 같습니다. 공개해주셔서 감사합니다!

다만 ingestion에서 Lock을 쓰는 부분에서 문제가 없었는지 궁금한데요. 데이터 Write의 경우 트래픽이 어느 정도 됐었나요? Lock 경합 등으로 인해 문제가 되는 경우는 없었는지 궁금합니다.

소중한 질문 감사합니다!

Lock은 edge (source, target) pair 단위로 잡습니다 (예: Alice→Phone). 같은 edge에 동시에 쓰는 경우만 경합이 생기는데, 실제로 한 사용자가 같은 대상에 동시에 좋아요 누르는 경우는 거의 없어서 경합이 낮습니다. 이게 저희 데이터베이스 유즈케이스의 특징입니다.

Write 트래픽은 피크 기준 분당 수십만 건 정도입니다. 읽기가 100만+이고 쓰기는 그보다 낮아요.
벤치마크 참고 (읽기 85%, 쓰기 15%) - https://actionbase.io/ko/operations/benchmarks/

핫 엔티티(인기 상품 등)는 lock 경합이 생길 수 있는데, 이건 count 업데이트 때문이에요(HBase Increment). 이 부분은 별도로 최적화해서 처리하고 있습니다. 고빈도 쓰기 관련: https://actionbase.io/ko/stories/kakaotalk-gift-recent-views/