Skip to content
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

daily logtime 을 위한 location 최적화 #388

Closed
jpham005 opened this issue Nov 3, 2023 · 4 comments · Fixed by #391
Closed

daily logtime 을 위한 location 최적화 #388

jpham005 opened this issue Nov 3, 2023 · 4 comments · Fixed by #391
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@jpham005
Copy link
Member

jpham005 commented Nov 3, 2023

time series collection 까진 필요가 없을 것 같고,
별도 date 단위로 합산한 collection + 전용 index 만으로 충분합니다.

time series collection 을 사용하는 경우, logtime 을 추가해주는 부분 구현 난이도가 올라갑니다.

millisecond 로 value 를 저장하고 있기 때문에, month 단위도 충분히 처리할 수 있을 것으로 기대가 됩니다.

@jpham005 jpham005 added this to 42Stat Nov 3, 2023
@jpham005 jpham005 self-assigned this Nov 3, 2023
@jpham005 jpham005 converted this from a draft issue Nov 3, 2023
@jpham005 jpham005 added the enhancement New feature or request label Nov 3, 2023
@jpham005 jpham005 added this to the v.0.10.0 milestone Nov 3, 2023
@yoopark yoopark moved this from 📋 Backlog to 🔖 Ready in 42Stat Nov 3, 2023
@jpham005 jpham005 moved this from 🔖 Ready to 🏗 In progress in 42Stat Nov 3, 2023
@jpham005
Copy link
Member Author

jpham005 commented Nov 4, 2023

logtime 일 단위로 구해주는 함수는 제작했으나,
이를 기존 데이터에 적절히 합치는 과정이 어려운 상황입니다.

delete -> insert 하는 경우, delete 된 순간 query 가 발생할 가능성이 있는 문제가 있고,
한번에 약 10000개의 기록을 갱신하기 때문에 updateOne 이나 transaction 도 한계가 있을 것으로 보입니다.

@jpham005
Copy link
Member Author

jpham005 commented Nov 6, 2023

connection pool size 설정을 통해 부하를 일정 수준으로 유지하도록 했고, 해당 동작에 5초정도 소요되는 상황입니다.
중간에 다른 query 실행을 해도 문제가 없는 것을 확인했고, delete -> insert 가 갖고 있는 단점도 없습니다.

@jpham005
Copy link
Member Author

jpham005 commented Nov 7, 2023

type DailyLogtimeRecord = {
  type: DailyActivityRecordType;
  value: number;
}

@jpham005 jpham005 changed the title logtime 관련 최적화 daily logtime 을 위한 location 최적화 Nov 7, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in 42Stat Nov 7, 2023
@jpham005 jpham005 reopened this Nov 7, 2023
@yoopark yoopark moved this from ✅ Done to 🔖 Ready in 42Stat Nov 7, 2023
@jpham005 jpham005 moved this from 🔖 Ready to 🏗 In progress in 42Stat Nov 7, 2023
@jpham005 jpham005 linked a pull request Nov 7, 2023 that will close this issue
@jpham005
Copy link
Member Author

jpham005 commented Nov 7, 2023

#389 와 함께 daily activity 를 구현합니다.

type DailyActivity = {
  date: Date; // 해당 일의 00시 00분
  records: (DailyLogtimeRecord | DailyDefaultRecord)[];
}

jpham005 added a commit that referenced this issue Nov 9, 2023
- 기존과는 다른 구조로 제작하였습니다. 앞으로 db 정리하고 이런 방식으로 고치면 어떨까 하는 생각입니다.
- daily_logtimes collection 을 추가했습니다.
- scale_teams, events_users 로 인해 성능 저하가 심각한 수준이면 별도 collection 으로 분리할 예정입니다. 현재 자체 테스트에선 dev 기준 100 ~ 300ms 정도 나옵니다.

- close #388
- close #389
jpham005 added a commit that referenced this issue Nov 9, 2023
- 기존과는 다른 구조로 제작하였습니다. 앞으로 db 정리하고 이런 방식으로 고치면 어떨까 하는 생각입니다.
- daily_logtimes collection 을 추가했습니다.
- scale_teams, events_users 로 인해 성능 저하가 심각한 수준이면 별도 collection 으로 분리할 예정입니다. 현재 자체 테스트에선 dev 기준 100 ~ 300ms 정도 나옵니다.

- close #388
- close #389
jpham005 added a commit that referenced this issue Nov 10, 2023
- 기존과는 다른 구조로 제작하였습니다. 앞으로 db 정리하고 이런 방식으로 고치면 어떨까 하는 생각입니다.
- daily_logtimes collection 을 추가했습니다.
- scale_teams, events_users 로 인해 성능 저하가 심각한 수준이면 별도 collection 으로 분리할 예정입니다. 현재 자체 테스트에선 dev 기준 100 ~ 300ms 정도 나옵니다.

- close #388
- close #389
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in 42Stat Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant