2011-03-13 2 views
7

내가 클라우드 기반 동기화 솔루션 (드롭 박스 같은) 건물의 생각입니다 :클라우드 기반 동기화 아키텍처

  1. 무엇을 것 같은 강력한 아키텍처 모습?

  2. Windows, mac, linux 및 모바일 장치와 같은 다양한 플랫폼을 지원하려면 어떤 기술이 필요합니까?

  3. 어떤 효율적인 동기화 알고리즘을 사용 하시겠습니까?

나는 순진 아키텍처/솔루션이 될 것 알고

  1. 는 클라우드 스토리지 네트워크 호출을 확인하고 동기화 폴더 트리 구조 (단지 메타 정보)를 얻는다.

  2. 로컬 동기화 폴더 트리 구조 (난 당신이 파일 시스템 모니터 lsyncd 같은 것을 사용하는 것 같아요?)

  3. 이전에서 동기화 폴더 구조를 검색을 구성하기 위해 클라이언트에서 파일 시스템 모니터를 동조. 이제 에는 클라이언트에 3 개의 폴더 트리 구조가 있습니다. 이 3 개의 트리를 사용하면 로컬 폴더에서 수행해야 할 작업과 서버의 원격 폴더에서 할 작업을 결정할 수 있습니다. 예를 들어 특정 응용 프로그램 인 사전 정의 된 규칙 을 사용하여 편집, 충돌 해결 등을 추가, 삭제합니다.

이 아키텍처로는 충분하지만 악마에 대한 자세한 내용은이 아키텍처를 참조하십시오. 동기화 폴더 트리가 매우 넓고 (매우 넓고 깊다면) 어떨까요? 분명한 차이를 결정하는 효율적인 알고리즘이 필요합니다. 네트워크 연결이 끊어지고 전체 트리를 제대로 보내지 않거나 보내지 않으면 어떻게됩니까? 또한 네트워크 파일 크기를 줄이기 위해 파일 만 보내면됩니다.

이러한 것들은 제가 알고있는 것들입니다. 그러나이 아키텍처가 충분하고 세부 사항에 시간을 투자해야한다면 제 질문은 무엇입니까? Dropbox는 어떻게 설계되었으며 대형 폴더 구조와 데이터 크기의 동기화를 효율적으로 만들기 위해 어떤 기술과 알고리즘을 사용합니까? 이런 식으로 디자인 할 때 제가 참고할 수있는 자료 나 책이 있습니까?

미리 감사드립니다.

답변

1

시작할 좋은 장소는 Dropbox API을 평가하여 Dropbox API를 디자인 한 방법에 대한 아이디어를 얻는 것입니다. 그러면 기술이 솔루션에 어떻게 적용될 수 있는지에 대한 아이디어가 제공 될 것입니다. 다른 동기화 솔루션과 마찬가지로 악마가 세부 사항에 있습니다.

-bill

관련 문제