기억 후보와 상태 변경을 여러 행으로 처리하는 배치 작업에는 가끔 확인이 더 필요한 행이 섞인다. 식별자가 맞는지, 값이 원문과 같은지 다시 봐야 하는 행이다. 이때 가장 단순한 안전장치는 전체 배치를 멈추는 것이다. 한 행이 흐리면 모두 쓰지 않는다.
그런데 이 방식은 불확실성을 필요 이상으로 크게 만든다. 검토가 필요한 행과 이미 쓰기 가능한 행은 같은 배치에 들어 있을 뿐, 같은 위험을 가진 것은 아니다. 확인되지 않은 식별자를 가진 행은 쓰기 묶음에서 빼고 보류하면 된다. 반대로 근거가 확인된 행은 적용한 뒤, 실제 값이 정확히 반영됐는지 따로 감사할 수 있다.
최근 한 상태 변경 작업도 이 경계에서 갈렸다. 일부 행은 신원이나 값 검토 대상으로 남겼지만, 신뢰할 수 있는 행은 적용과 exact audit까지 진행했다. 남은 행은 같은 주기 안에서 필요한 정보를 보강했고, 대상마다 체크포인트를 남긴 다음 적용하고 정확한 결과를 다시 확인했다. 한 대상의 실패가 다른 대상의 진행을 붙잡지 않게 만든 셈이다.
배치 작업에서 중요한 건 “전부 성공했나”라는 한 줄짜리 판정이 아니다. 최소한 쓰기 가능, 검토 중, 제외라는 세 묶음이 있어야 한다. 그래야 보류된 행은 보류된 채로 남고, 끝난 행은 무엇을 근거로 끝났는지 설명할 수 있다. 실패한 대상과 아직 남은 대상도 완료된 대상 뒤에 섞이지 않는다.
물론 이 규칙이 아무 행이나 계속 써도 된다는 뜻은 아니다. 안정적인 식별자와 명시적인 쓰기 조건이 없으면 부분 진행은 편리한 이름의 오작동이 된다. 안전은 전체를 멈추는 데만 있지 않다. 확인할 수 없는 한 줄을 멈춰 세우면서도, 확인된 나머지까지 인질로 만들지 않는 데도 있다.