좋아요나 조회수 등 동시성 처리 질문입니다.
943
작성한 질문수 30
사용자가 많지 않고 일반 커뮤니티 같은 경우에는 좋아요 개수가 많이 몰릴 일이 없다고 생각해서 PessimisticLock을 적용하려고 합니다.
제가 생각했을 땐 인스타나 그런 대규모 사이트의 좋아요는 PessimisticLock을 적용하면 성능 저하가 뚜렷하게 나타난다고 생각합니다. -> 레디스 사용이 베스트
토이프로젝트 규모의 SNS는 PessimisticLock으로 구현하는게 비용도 들지 않고 데이터 정합성이 보장된다고 판단했습니다.
혹시 제가 틀린 거나 더 나은 방법이 있을까요?
항상 감사합니다!
아 추가로 newFixedThreadPool은 왜 32로 설정하는지도 궁금합니다!!
답변 1
2
dbsquddlfz 님 안녕하세요.
말씀하신대로 토이프로젝트 규모에서는 PessimisticLock 을 이용하여 정합성을 보장할 수 있겠으며, 사용자가 많을때는 성능저하로 인하여 레디스 사용이 나을거라고 생각합니다.
다만 개인적으로 조회수 같은 데이터는 정합성을 어느정도 포기해도 되는 데이터라고 생각합니다.
이러한 데이터는 lock 을 활용하여 정확한 데이터를 맞추기보다는 근사치에 해당하는 데이터를 활용해도 될 것이라고 생각합니다.
사용자가 많은 서비스에서는 조회수같이 근사치에 해당하는 데이터를 사용할 때 hyperloglog 라는 알고리즘을 사용할 수 있습니다.
ThreadPool 의 사이즈를 32로 설정한것은 일반적인 예제에서 많이 사용하는 사이즈가 무난할 것이라고 생각되어 저도 32를 사용하였습니다.
감사합니다.
레디선 테스트코드에서 채널이름은 없어도 되는건가요?
0
43
2
낙관적 락을 사용할 떄 차이점
0
121
2
동시성 검증 코드에 관한 문의
0
95
2
단일연산
0
70
2
낙관적락vs. 레디스락
0
108
2
안녕하세요. 레디슨 질문있습니다..!!
0
67
2
@Lock(OPTIMISTIC)이 필요한 이유
0
90
2
get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?
0
132
2
DataSource Hikari 사용 이유
0
147
2
saveAndFlush 사용 이유 문의
0
113
3
비관적 락 VS 네임드 락
0
160
3
application.yaml 에 redis 정보
0
100
2
왜 클래스 이름에 Facade 가 붙나요?
0
185
2
@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.
0
219
2
@modifying 이용한 동시성 제어
0
168
2
DB락과 분산락
0
262
2
NamedLock 테스트 실패
0
186
2
테스트에서 트랜잭션 어노테이션 질문 있습니다.
0
173
2
optimistic Lock 재시도 질문입니다.
0
232
2
낙관적 락 테스트 실패
0
241
2
오류?
0
1627
4
LettureLockStockFacadeTest에서 오류가 발생합니다.
1
268
2
Pessimistic Lock 전체 테스트 오류 문의
0
360
3
비관적 락 vs 레디스(Lettuce)락 비교 관련 질문
0
460
2





