Skip to content

응답 제출 API에서 Caching 적용 중 문제 발견 #61

@justine-yun

Description

@justine-yun

문제상황

  • 10초동안 초당 200개의 응답 제출 요청을 보낸 경우 문제 발생
  • redis에 설문지 응답을 저장하는 과정까지는 문제가 없음
  • redis에서 mongoDB로 설문지 응답을 save하는 과정에서 문제 발생

원인

  • 30초 주기마다 redis에서 mongoDB로 설문지를 save하고 있는데, 첫 번째 작업이 다음 30초가 오기 전까지 모든 설문지를 save하지 못함
  • 다음 30초에 두 번째 작업이 시작됨
    • 두 번째 작업에는 첫 번째 작업이 미처 보내지 못한 설문지도 포함되어 있음
  • 첫 번째 작업과 두 번째 작업이 중복해서 같은 설문지를 save하는 과정에서 오류 발생
    • 동일한 _id로 save 하는 과정에서 오류 발생

해결 방법

후보 1 - redis에서 DB로 업데이트 하는 주기를 증가시킨다

  • 요청을 모두 처리할 수 있도록 충분히 긴 시간을 주기로 설정하기
  • 주기가 길어질수록 설문지의 응답이 DB상에 늦게 반영된다는 문제가 있음
  • 요청이 늘어날수록 주기를 계속 증가시켜 주어야 함

후보 2 - 30초 안에 처리할 수 있을 만큼만 처리하기

  • 30초안에 충분히 처리할 수 있을 만큼만 작업을 분배한다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions