Skip to content

Comments

INTERNAL: Remove cancelNoneIdempotent arg in MoveOperationTask#878

Merged
jhpark816 merged 1 commit intonaver:developfrom
brido4125:remove/cancelIdempotent
Feb 19, 2025
Merged

INTERNAL: Remove cancelNoneIdempotent arg in MoveOperationTask#878
jhpark816 merged 1 commit intonaver:developfrom
brido4125:remove/cancelIdempotent

Conversation

@brido4125
Copy link
Contributor

🔗 Related Issue

https://github.com/jam2in/arcus-works/issues/686

⌨️ What I did

MoveOperationTask 생성자에서 사용되는 cancelNonIdempotent를 제거한다.
이후 MoveOperationTask 내부에서는 true 값을 통해
무조건 non-idempotent 연산은 cancel 하도록 한다.

기존에 해당 값이 false로 설정된 로직들은 아래와 같다.

  • slave -> master 로의 op 이동하는 경우
  • zk로부터 swtichover 이벤트 먼저 감지하고 non-idempontent 연산이 없는 경우

그 외는 아래 코멘트에 적힌 버그입니다.
https://github.com/jam2in/arcus-works/issues/686#issuecomment-2646920539

@brido4125 brido4125 self-assigned this Feb 18, 2025
@jhpark816 jhpark816 requested a review from uhm0311 February 18, 2025 09:01
@jhpark816 jhpark816 requested a review from oliviarla February 18, 2025 12:23
@jhpark816
Copy link
Collaborator

@oliviarla 추가 리뷰어 지정합니다.

@oliviarla
Copy link
Collaborator

oliviarla commented Feb 19, 2025

다음과 같은 이유로 적합하다고 판단했습니다. 잘못 이해한 부분이 있다면 알려주세요. (MoveOperationTask는 updateReplConnections 메서드 내부에서만 호출되므로 zk 로부터 응답이 왔다는 것을 전제로 함)

  • slave 노드가 사라졌을 때 → 애초에 비멱등 연산이 들어가지 않으므로 cancelNonIdemponent 값 상관없음
  • slave ↔ master 임을 나타내는 캐시 서버 응답이 이미 왔지만, 또다른 노드가 master인 상태일 때 → 기존 노드에서 비멱등 연산이 처리되는지 여부를 알 수 없으므로 cancel시켜야 한다.
  • slave ↔ master 이고 캐시 서버 응답이 안왔을 때 → 비멱등 연산이 들어가있었을 수 있지만 아직 캐시 서버로부터 확실한 응답이 안왔으므로 cancel시켜야 한다.
  • failover(slave → master)일 때 : master에 비멱등 연산이 들어가있을 수 있지만 아직 캐시 서버로부터 확실한 응답이 안왔으므로 cancel시켜야 한다.
  • 완전히 새로운 노드가 master가 되었을 때: 기존 master에 비멱등 연산이 들어가있을 수 있지만 아직 캐시 서버로부터 확실한 응답이 안왔으므로 cancel해버린다. 기존 slave에 있던 연산들은 비멱등 연산이 들어가지 않으므로 cancelNonIdemponent 값 상관없음

@jhpark816 jhpark816 merged commit fb0501c into naver:develop Feb 19, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants