-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat : 참조되지 않는 해시태그 제거 #312
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
지금 구조는 Question이 삭제되는 이벤트가 시작되면
해시태그 모두를 순회하며 참조되지 않는 해시태그를
모두 지우는 방식같은데요.
지금은 Question의 수도 적고 Question이 삭제되는 경우는 문제가 적을 것 같지만 Question이 삭제되는 경우가 많아지게된다면 해시태그를 모두 순회하며 지우는 지금 방식보다는 일정 시간마다 Question의 HashTag를 확인해가며 지우는 쪽으로 변경해보면 어떨까요 ?
일정 시간을 기준으로 참조되지 않는 HashTag를 지우게 되면 얻는 이점
- 매 Question 삭제마다 모든 QuestionHashTag와 HashTag를 순회하지 않는다.
- 지금 기능으로는 Question의 HashTag가 수정되면 DB에 반영되지 않습니다. 예를 들면 Java 해시태그가 존재하는 Question에서 Java 해시태그를 삭제하는 Question 수정을 하더라도 HashTag 테이블은 반영이 되지 않습니다.
@slowCoyle 처음에 스케쥴링 방식을 생각했는데, 추후 비효율적이라 생각하여 이벤트 방식으로 구현했습니다. 예를 들어 한번 생각해보겠습니다. 하지만 좀 더 평균적인 관점에서 계산해보면, 질문이 300개 있고 각각 해시태그가 2개씩 달려있고, 그 중 절반은 중복 해시태그라고 가정하면 총 300개의 해시태그가 있습니다. 이때 스케줄링을 할 경우, 90000번 조회가 일어나고 이벤트 방식으로라면 매번 600번의 조회가 일어나겠군요. 제가 생각하는 이벤트 방식의 장점
제가 생각하는 계산법으로 적은 거라 오류가 있을 수도 있습니다. 혹시 제가 놓치고 있는 부분이 있다면 편하게 지적해주세요 코일! |
Resolve #311
Changes
Notes
References