Skip to content
isdnetworks
Go back

단방향 동기화와 반대편의 0

여러 대에서 같은 설정 계층을 공유하고 있었고 그 사이에 동기화 규약이 있었다. 보조 쪽 장비에서 설정을 손보고 작업을 마쳤다고 정리하던 참이었다.

Table of contents

Open Table of contents

상황 — 보조에서 한 작업

마치기 전에 남은 것이 있는지를 스스로 물어보다가 반대편은 어떻게 됐는지가 걸렸다. 같은 계층을 쓴다면 저쪽에도 반영이 돼 있어야 한다.

그래서 주 쪽 장비에서 같은 자리를 조회해 봤는데 반영된 것이 하나도 없었다. 내가 한 변경이 그쪽에는 전혀 안 가 있었다.

규약대로였는데 미완인 것

동기화 규약을 다시 읽어 보니 이 계층은 주에서 보조로만 가는 단방향이었다. 보조에서 바꾼 것은 자동으로 올라가지 않는 것이 규약대로였다.

그러니 시스템은 정상으로 동작한 것이고 잘못된 것은 내 작업의 범위 인식이었다. 규약대로 돌았어도 필요한 곳에 그 변경이 없으면 작업은 미완이다.

완료 보고에 항목을 세운다

이 확인을 안 했으면 반영되지 않은 상태가 완료로 기록될 뻔했다. 완료로 적히고 나면 그 뒤로는 아무도 다시 안 보므로 그 상태로 굳는다.

그래서 완료 보고에 반대편 반영 여부를 별도 항목으로 세웠다. 항목이 있으면 채우기 위해서라도 조회하게 되고 없으면 안 한 것도 모른다.

덮기 전의 회수와 대조

주 쪽에서 보조로 다시 내려보내면 보조의 변경이 덮인다는 것도 여기서 걸렸다. 내가 한 변경이 아직 주에 없으니 그대로 내려보내면 없어진다.

그래서 덮기 전에 보조 쪽 판을 회수해 주 쪽 것과 diff 를 뜨는 단계를 넣었다. 변경 중 하나는 이미 주 쪽에도 반영돼 있어서 대조하지 않았으면 중복으로 넣을 뻔했다.

계층마다 다른 주인

같은 장비들 사이에도 계층마다 어디가 주인지가 달랐다. 어떤 것은 주에서 내려가고 어떤 것은 각자 관리하며 어떤 것은 git 저장소를 거친다.

git 으로 관리되는 것은 올리는 순간 모든 장비가 같은 것을 받으므로 이 문제가 없었다. 어느 계층에서 작업하는지에 따라 완료의 조건이 다르다는 것이 이 건의 요지였다.

정리


Share this post on:

Previous Post
누구 책임인지를 나타내는 값을 정의했다
Next Post
내가 만들지 않은 시스템을 확장한다는 것