Skip to content

데이터 정합성 문제 #7

@jpham005

Description

@jpham005

현재 람다는 여러 엔드포인트를 순서대로 호출하여 업데이트하고, 그 날짜를 엔드포인트별로 기록하는 방식을 사용하고 있습니다.
이 호출을 엔드포인트 단위로 나누어, 한 엔드포인트가 실패하더라도 다른 엔드포인트는 업데이트를 진행하도록 하려 합니다.
이유는, 하나만 실패해도 전부 실패처리를 한다면, 이것이 다음 번 호출할 때 처리해야 하는 부분으로 다가오게 되는데, 이 때 호출 수나 시간에 문제가 생길 수 있기 때문입니다.

하지만 이러면 서로 연관이 있는 데이터끼리 정합성이 맞지 않을 가능성이 생깁니다.
ex. 유저 업데이트 하는 중에는 1레벨이였는데, 그 후에 경험치 업데이트할때는 시간이 경과하여 2레벨이 되었음.

하지만 개인의 데이터는 바뀌는 주기가 길기 때문에, 람다가 한번 더 호출되면 맞춰지는 부분입니다.
그래도 여전히 람다의 호출 주기 사이에는 정합성이 맞지 않는 문제가 남아있습니다.

이를 해결하기 위해선, 호출 주기마다 업데이트 할 범위를 통일할 수 있습니다만...
이걸 위해선 호출이 정말 무조건 된다는 확신이 필요할 것 같네요.
지금은 la-seine 에서 실패한 요청들에 대해 반환하기만 하는 상태라, 많이 돌리다 보면 한번씩 오류가 나는 것이 관측되는 상황이라 더욱 고민이 됩니다.

현 상황에선 서로 다른 collection 을 참조하는 경우, 이런 정합성 문제가 발생하지 않는 것들만 있습니다만, 추후 이런 부분을 고민하게 되는 경우가 있을 것 같아 기록으로 남깁니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationhelp wantedExtra attention is needed

    Type

    No type

    Projects

    Status

    🆕 New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions