최근 '해시싱크(Hashsync)'라는 새로운 오픈소스 도구가 공개되어 SSH(Secure Shell)를 통한 파일 전송의 비효율성을 획기적으로 개선할 전망입니다. 이 도구는 특히 불안정한 네트워크 환경에서 rsync나 nix-copy-closure 같은 기존 파일 동기화 도구들이 겪는 대역폭(bandwidth) 낭비 문제를 해결하는 데 초점을 맞췄습니다. 파일이 이동되거나 이름이 변경될 때 전체 파일을 다시 전송하는 대신, 수신 측에 이미 존재하는 파일 블록을 지능적으로 찾아내어 참조 방식으로 데이터를 보냄으로써 전송량을 크게 줄입니다.
해시싱크의 핵심은 수신 호스트(receiver)가 가지고 있는 파일들의 블록 인덱스를 활용하는 것입니다. 송신 호스트(sender)는 전송할 데이터 스트림에서 롤링 해시(rolling hash)를 계산하고, 수신 호스트의 해시 목록과 일치하는 블록을 발견하면 해당 블록의 실제 내용을 보내는 대신 참조 정보만 전송합니다. 이 과정에서 zstd 압축 기술도 함께 사용하여 중복되지 않는 데이터의 전송 효율도 높입니다. 예를 들어, 2MiB/s 링크에서 19분 걸리던 rsync 전송이 해시싱크를 사용하면 단 4분으로 단축되며, 데이터 전송량은 5.72배 감소하여 약 1.93GiB를 절약할 수 있었습니다. 이는 파일의 위치나 이름이 바뀌어도 중복을 정확히 찾아내기 때문에, tar, rsync, nix-store --export 등 다양한 도구와 함께 사용할 때 큰 효과를 발휘합니다.
해시싱크는 단순히 대역폭 절감에 그치지 않고, 개발자나 시스템 관리자가 원격 서버에서 대용량 데이터를 다루는 방식에 근본적인 변화를 가져올 수 있습니다. 특히 클라우드 환경에서 인스턴스 간 데이터 동기화, 개발 환경 배포, 백업 및 복구 등 다양한 시나리오에서 시간과 비용을 절약할 수 있습니다. 또한, 별도의 데몬(daemon) 없이 SSH를 통해 실행되는 단일 바이너리(binary) 형태로 제공되어 설치 및 관리가 용이하다는 장점도 있습니다. 이는 느린 인터넷 환경에서도 효율적인 작업을 가능하게 하여, 원격 근무나 현장 작업이 많은 사용자들에게 특히 유용할 것입니다.