rsync는 작은 하나의 파일을 동기화하는 데 좋은 옵션입니까?


0

나는 느리고 불안정한 전화 접속 모뎀 연결을 통해 비교적 작은 하나의 파일을 최신 상태로 유지해야합니다.

이 파일은 15K로 시작하여 2 시간 후에 500K로 끝나는 XML입니다.

단방향 복제입니다. 현재 솔루션은 매분마다 전체 파일을 다운로드합니다. 지금까지는 광대역 연결로 잘 작동하지만 지금은 전화 접속 만 가능한 위치에서 사용해야합니다. 다운로드가 느리기 때문에 "실시간 데이터"라는 환상이 사라집니다.

나는 rsync가 독점적 인 (그리고 결함이있는) "delta-only"프로토콜을 개발하는 것을 막을 수 있다고 생각했다. rsync가이 특별한 경우에 진정한 이점을 제공하는지 궁금합니다.

그래서, 질문은 : rsync 프로토콜이 15K에서 500K까지의 단일 파일에 잘 맞습니까?


이 단방향 또는 양방향 데이터 복제입니까?
— Nick

단방향 복제입니다.
— Sebastián Grignoli

답변:


0

이 경우가 아닙니다. 너는 뭔가를 사용하는 것이 더 낫다. diffxml 파일 간의 차이점 만 업데이트로 보내고 대상 컴퓨터에 패치를 적용합니다.


이유를 설명해 주시겠습니까? diffxml 솔루션의 단점은 XML을 해결할 솔루션을 코딩해야하고 원본 서버에있는 XML의 모든 오래된 버전의 사본을 보관하여 diff를 계산해야한다는 것입니다.
— Sebastián Grignoli

XML 문서의 시작 부분에서의 변경은 문서 끝의 변경보다 rsync를 사용하여 전송하는 것이 더 많은 작업을 요구하지만, 변경 한 곳과 관계없이 diffxml을 사용하면 거의 동일합니다.
— Ignacio Vazquez-Abrams

diffxml은 대역폭 분석을 목적으로하지 않고보다 분석적인 도구처럼 보입니다.
— Sebastián Grignoli

1
또한, 난 그냥 로컬 rsync를 시도 하고이 파일 크기와 전혀 대역폭 사용량을 줄일 것으로 보이지 않습니다. 나는이 일에 힘내를 사용하는 것을 생각하기 시작했다.
— Sebastián Grignoli

@ SebastiánGrignoli 지금 막 Repo에 넣고 그런 식으로 동기화하라는 답변을 작성하려고했습니다. 여러 업데이트가 병합되고 청크됩니다. +1.
— Nick

0

글쎄, 나는 rsync로 해냈다. 그리고 나는 그것이 잘 작동한다고 말할 필요가있다.

그것은 너무 적은 데이터를 전송하므로 좁은 다이얼 업 연결 (광대역과 함께 사용했던 이전 주파수보다 1/3!)에서 업데이트 빈도를 20 초로 단축 할 수있었습니다.

800kb의 XML을 업데이트하는 데 5kb의 다운로드 + 800 바이트의 업로드가 필요합니다!

업데이트에 대한 변경 사항이 없을 때 버전을 확인하면 500 바이트를 덜 다운로드하고 100 바이트를 업로드합니다! (정규 채팅 세션에서 더 많은 바이트를 전송합니다!)

다른 diff 솔루션보다 나아졌으며 그 주위에 아무것도 프로그래밍 할 필요가 없었습니다. (이전에는 rcync를 실행하기 위해 push 메카니즘을 추가 할 생각 이었지만 아직 필요하지는 않습니다. 20 초가 걸리며 폴링은 매우 가볍습니다.)

가는 길, rsync!

추신 : 나는 힘내를 시도하지 않았고 아마도 좋은 해결책이었을 것이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.