Saya tidak yakin apakah rsync yang benar cocok untuk Amazon.
Seperti yang saya pahami, algoritma rsync standar berarti klien menghitung hash untuk setiap blok file dan server menghitung hash untuk salinannya dan mengirimkan hash itu ke klien yang berarti klien dapat menentukan blok mana yang telah berubah dan perlu mengunggah.
Itu menyebabkan dua masalah bagi Amazon karena banyak hash yang harus dikirim melalui internet dan juga dibutuhkan kekuatan pemrosesan untuk menghitung semua hash yang akan meningkatkan biaya Amazon - yang mungkin mengapa mereka menyerahkannya kepada penyedia pihak ketiga yang dapat biaya tambahan untuk fitur itu.
Adapun klon, mereka jelas menyimpan hash di suatu tempat dan di suatu tempat dapat bervariasi tergantung pada klon. Mungkin bagi mereka untuk menyimpan hash sebagai objek terpisah per file di Amazon atau sebagai database yang disimpan di Amazon atau mereka dapat menyimpannya secara lokal dan jarak jauh.
Ada kelebihan dan kekurangan dalam melakukannya. Jika hash disimpan secara jarak jauh dalam file individual, maka bisa mahal untuk terus mengambilnya. Jika hash disimpan dalam basis data jarak jauh, maka basis data ini dapat menjadi besar dan bisa mahal untuk terus mengambil dan memperbaruinya. Jika hash disimpan secara lokal, maka ini membantu mengurangi biaya, tetapi menimbulkan komplikasi dan masalah lain.
(Tentu saja Amazon memiliki layanan lain, sehingga dimungkinkan untuk menyimpan basis data di Amazon DB)
Sebagai contoh, saya mencoba satu klon rsync awal beberapa tahun yang lalu. Ini tidak ditulis untuk memperhitungkan struktur harga Amazon dan mengeluarkan banyak http untuk mengambil hash dari setiap blok dan karena biaya Amazon untuk setiap get, itu berarti bahwa sementara bagian penyimpanan tagihan saya turun tajam, bagian transfer menggelembung.
Apa yang saya kehilangan dengan menggunakan duplikat + s3 bukan rsync + s3rsync + s3?
Anda kehilangan fakta bahwa dengan rsync Anda tahu Anda membandingkan file sumber dengan file cadangan Anda. Dengan duplikat dan klon lainnya, Anda membandingkan file sumber Anda dengan hash yang diambil saat cadangan dilakukan. Sebagai contoh, dimungkinkan untuk mengakses S3 secara langsung dan mengganti salah satu file-nya tanpa menghitung ulang hash atau memperbarui database hash.