32.4 Durability 폴리시 기반 후기 연결 노드(Late Joiner) 데이터 보존 및 동기전송 복원 체계
ROS2 지향형 분산 로보틱스 시스템은 수십 개의 독립적인 노드 런타임들이 일제히가 아니라 각자의 초기화(Initialization) 스케줄에 따라 비동기적으로 부팅(Asynchronous Booting)되는 다중 동역학적 특성을 지닌다. 만약 로봇의 형상 정보(URDF)를 포함한 로봇 상태 퍼블리셔(Robot State Publisher)가 경로 플래닝 서브스크라이버보다 1초 일찍 부팅되어 단발성 정적 맵(Static Map) 데이터를 발행해 버렸다면, 1초 뒤에 깨어난 서브스크라이버는 이 치명적인 초기화 데이터를 영원히 수신할 수 없게 된다. 이처럼 ’시간적 연결 불일치’에서 벌어지는 데이터 유실을 방어하고, 늦게 동참한 노드(Late Joiner)에게도 과거의 유산을 조건부로 하사하는 시공간 통합 아키텍처가 바로 서비스 품질(QoS)의 Durability(영속성) 폴리시이다. 본 절에서는 Durability 파라미터를 통제하는 보존 모드들의 철학과 동기전송 복원 체계를 학술적으로 정립한다.
1. 시간적 종속성의 한계와 VOLATILE 폴리시
가장 기본이 되는 VOLATILE(휘발성) 모드는 퍼블리셔가 데이터를 송출하는 정확히 그 순간(T=0)에 네트워크 상호 연결(Discovery)이 완성되어 있는 서브스크라이버에게만 데이터를 전달한다. 전달된 패킷은 어플리케이션이 개입하기 무섭게 통신망 큐(Queue)에서 즉각 폐기된다.
이 파라미터 하에서는 T=1초에 새롭게 부팅된 후기 연결 노드(Late Joiner)가 자신이 연결되기 직전의 데이터를 소급하여 요청할 어떠한 물리적 수단도 존재하지 않는다. 마치 시냇물의 흐름처럼, 한 번 떠내려간 정보는 되돌릴 수 없는 절대적 시간의 화살을 따른다. 비전 센서 스트림과 같이 30Hz 단위로 과거 정보가 순식간에 진부해지는(Stale) 실시간 텔레메트리 환경에서는 이러한 극단적 휘발성이 메모리 누수(Memory Leak)를 차단하는 공학적 미덕으로 숭상된다.
2. TRANSIENT_LOCAL 모드와 시간 영속성(Temporal Persistence)의 부여
반면, 자율 드론의 좌표계 변환 행렬(Static TF)이나 동적 파라미터(Parameter) 이벤트처럼 ’가장 마지막에 생성된 단 하나의 상태’가 전체 시스템의 방향타를 결정짓는 상황이라면 TRANSIENT_LOCAL 모드가 절대적인 해법으로 등판한다.
퍼블리셔가 TRANSIENT_LOCAL 속성을 채택하면, 미들웨어는 데이터가 발송된 이후라도 이를 즉각 폐기하는 대신 송신자 측의 로컬 램(RAM) 캐시 영역에 일시적으로 보류(Hold)시킨다. 이후, 수십 초 내지 수 시간 뒤에 새로운 서브스크라이버가 토픽 네트워크에 진입(Join)하여 핸드쉐이킹을 마치는 즉시, 퍼블리셔의 기반 DDS 스택은 런타임 제어기의 개입 없이도 무의식중에 이 보류된 캐시 더미(Dump)를 신규 노드를 향해 선제적으로 브로드캐스팅(동기 전송 복원)한다. 이는 시공간의 제약을 허물고 후기 연결 노드가 시스템 상태의 연속성(Continuity) 위에서 매끄럽게 알고리즘을 부팅할 수 있도록 돕는 ROS2 생태계의 기념비적인 래치(Latching) 패러다임이다.
3. History 파라미터와의 결합(Coupling) 및 한계 용량 설계
TRANSIENT_LOCAL의 데이터 보존 메커니즘은 필연적으로 앞서 서술한 History 폴리시와의 기계적 결속을 요구한다. 영속성을 보장할 과거 패킷의 ’구체적인 물량’을 산정하는 주체가 바로 History이기 때문이다.
실무적 설계에 있어, Durability=TRANSIENT_LOCAL과 History=KEEP_LAST(depth=1)의 조합은 글로벌 맵이나 좌표 분산 시스템에서 가장 범용적으로 쓰이는 불패의 설계 패턴(Design Pattern)이다. 이 결합은 무수한 과거 이력을 무시한 채, 오직 ’가장 진보된 최신 데이터 단 하나’만을 메모리 상에 완강히 쥐고 있다가 뒤늦게 참여한 개체에게 이식해 줌으로써 시스템의 최신성(Recency Requirement) 보장과 OOM 방지라는 두 마리 토끼를 동시에 포획한다.
4. 비대칭 Durability 모델 주입 및 휘발 한계성(Evaporation Limits)
Reliability와 마찬가지로 Durability 역시 비대칭적인 호환성 계약(Compatibility Contract) 하에 작동한다. TRANSIENT_LOCAL(강한 영속성)을 제공하는 퍼블리셔에 VOLATILE(약한 영속성)을 요구하는 서브스크라이버가 결합하는 것은 허용되지만, 반대의 경우는 Incompatible 매치로 패킷 라우팅이 차단된다.
그러나 ROS2의 TRANSIENT_LOCAL이 제공하는 영속성은 오직 ’송신 프로세스(Publisher Node)가 살아있는 동안’으로 한정된다는 중대한 기술적 한계성(Evaporation Limits)을 지닌다. 만일 퍼블리셔 노드 자체가 메모리 폴트(Fault)나 전원 차단으로 소멸(Destroy)된다면, 그가 캐시하던 과거 데이터 역시 휘발되어 버린다. 영구적인 정전(Power-Down)에도 끄떡없는 완벽한 상태 보존을 원한다면 디스크(DB) 기반의 DDS 고도화 폴리시가 필요하나, 이 기능은 통상 상용 엔터프라이즈 DDS 벤더를 통해서만 제한적으로 개방되며, 표준 ROS2 오토마타는 온메모리 기반의 TRANSIENT_LOCAL로 대부분의 자율화 요건을 타결 짓는다.