작성
·
818
·
수정됨
1
사용자가 많지 않고 일반 커뮤니티 같은 경우에는 좋아요 개수가 많이 몰릴 일이 없다고 생각해서 PessimisticLock을 적용하려고 합니다.
제가 생각했을 땐 인스타나 그런 대규모 사이트의 좋아요는 PessimisticLock을 적용하면 성능 저하가 뚜렷하게 나타난다고 생각합니다. -> 레디스 사용이 베스트
토이프로젝트 규모의 SNS는 PessimisticLock으로 구현하는게 비용도 들지 않고 데이터 정합성이 보장된다고 판단했습니다.
혹시 제가 틀린 거나 더 나은 방법이 있을까요?
항상 감사합니다!
아 추가로 newFixedThreadPool은 왜 32로 설정하는지도 궁금합니다!!
답변 1
2
dbsquddlfz 님 안녕하세요.
말씀하신대로 토이프로젝트 규모에서는 PessimisticLock 을 이용하여 정합성을 보장할 수 있겠으며, 사용자가 많을때는 성능저하로 인하여 레디스 사용이 나을거라고 생각합니다.
다만 개인적으로 조회수 같은 데이터는 정합성을 어느정도 포기해도 되는 데이터라고 생각합니다.
이러한 데이터는 lock 을 활용하여 정확한 데이터를 맞추기보다는 근사치에 해당하는 데이터를 활용해도 될 것이라고 생각합니다.
사용자가 많은 서비스에서는 조회수같이 근사치에 해당하는 데이터를 사용할 때 hyperloglog 라는 알고리즘을 사용할 수 있습니다.
ThreadPool 의 사이즈를 32로 설정한것은 일반적인 예제에서 많이 사용하는 사이즈가 무난할 것이라고 생각되어 저도 32를 사용하였습니다.
감사합니다.
매번 친절하게 답변해주셔서 너무 감사합니다.
덕분에 새로운 것도 많이 배울 수 있었습니다!!
진짜진짜 감사합니다!