rdiff를 사용하여 온라인 백업을 수행하는 제품이 있습니다.스트림 rdiff - 델타 차이점?
복사 준비 영역에 파일 (우리가 작업하는 동안 그래서 파일이 사라지지 않습니다하거나 수정할 수)
해시 원본 파일 및 rdiff는을 계산 : 어떤 일이 발생하는 것입니다 서명 (델타 차이점 사용) 는
를 압축 &는 결과 델타 차이를 암호화 (우리가 더 이전 버전이없는 경우,이 단계를 스킵)이 rdiff는 델타 차이를 계산
현재 이러한 단계는 서로 명확하게 수행됩니다. 최종 결과는 파일을 여러 번 반복하는 것입니다. 작은 파일의 경우 이것은 (특히 디스크 캐싱과 관련하여) 큰 문제는 아니지만 대용량 파일 (10 또는 심지어 100GB)의 경우 이는 실제 성능 저하 요인입니다.
모든 단계를 하나의 읽기/쓰기 단계로 통합하고자합니다.
이렇게하려면 모든 "출력"(파일 해시, rdiff 서명, 압축 된 & 암호화 된 델타 차이 파일)을 보존하면서 스트리밍 방식으로 위의 모든 단계를 수행 할 수 있어야합니다. 이렇게하면 소스 파일 (예 : 100k?)에서 데이터 블록을 읽은 다음 해시, rdiff 서명을 업데이트하고 델타 차이를 계산 한 다음 압축/암호화 출력 스트림에 출력을 쓰도록 메모리의 파일을 반복합니다 . 목표는 디스크 스 래싱의 양을 크게 최소화하는 것입니다.
현재 서명을 계산하고 2 진 델타를 생성하기 위해 rdiff.exe (기본 librsync 라이브러리의 맨 위에있는 얇은 층)를 사용합니다. 즉, 이러한 과정은 별도의 프로세스로 수행되며 스트리밍 방식 대신 원샷 방식으로 수행됩니다.
librsync 라이브러리를 사용하여 필요한 작업을 수행하려면 어떻게해야합니까?
"적절한 잠금 플래그"는 무엇을 의미합니까? 어떻게해야합니까? 또한, "압축 및 암호화가 델타 컴퓨팅과 병렬로 수행 될 수있다"고했는데, 어떻게 완료 되었습니까? 나는 그것이 가능하다는 것을 (구현하기 위해 노력한 후) 보지 못했다. 너는 무엇을 할 것이냐? – spentak
답변이 업데이트되었습니다. –