ฉันไม่แน่ใจว่า rsync ที่แท้จริงเหมาะสมกับ Amazon หรือไม่
ดังที่ฉันเข้าใจแล้วอัลกอริทึม rsync มาตรฐานหมายถึงไคลเอนต์คำนวณแฮชสำหรับแต่ละบล็อกของไฟล์และเซิร์ฟเวอร์คำนวณแฮชสำหรับการคัดลอกและส่งแฮชเหล่านั้นไปยังไคลเอนต์ซึ่งหมายความว่าไคลเอนต์สามารถกำหนดบล็อกที่มีการเปลี่ยนแปลง
นั่นเป็นสาเหตุของปัญหาสองประการของอเมซอนในเรื่องที่ว่ามีแฮ็ชจำนวนมากที่ต้องส่งผ่านอินเทอร์เน็ตและต้องใช้กำลังการประมวลผลในการคำนวณแฮชทั้งหมดที่จะเพิ่มค่าใช้จ่ายของอเมซอน - ซึ่งอาจเป็นเหตุผลว่าทำไมพวกเขา เสียค่าใช้จ่ายเพิ่มเติมสำหรับฟีเจอร์นั้น
สำหรับโคลนนิ่งพวกมันเห็นได้ชัดว่าเก็บแฮชที่ใดที่หนึ่งและที่ใดที่หนึ่งอาจแตกต่างกันไปขึ้นอยู่กับโคลนนิ่ง อาจเป็นไปได้ที่พวกเขาจะเก็บแฮชเป็นวัตถุแยกต่างหากต่อไฟล์ใน Amazon หรือเป็นฐานข้อมูลที่เก็บไว้ใน Amazon หรืออาจเก็บไว้ในเครื่องและจากระยะไกล
มีข้อดีและข้อเสียของการทำมันทั้งสองวิธี หากแฮชถูกเก็บไว้ในระยะไกลในแต่ละไฟล์มันอาจมีค่าใช้จ่ายสูงในการเรียกคืนไฟล์เหล่านั้นอย่างต่อเนื่อง หากแฮชถูกเก็บไว้ในฐานข้อมูลจากระยะไกลฐานข้อมูลนี้อาจมีขนาดใหญ่และอาจมีค่าใช้จ่ายสูงในการเรียกใช้และอัปเดตอย่างต่อเนื่อง หากแฮชถูกเก็บไว้ในเครื่องจะช่วยลดค่าใช้จ่าย แต่จะนำเสนอปัญหาและปัญหาอื่น ๆ
(แน่นอนว่า Amazon มีบริการอื่น ๆ ดังนั้นจึงเป็นไปได้ที่จะเก็บฐานข้อมูลใน Amazon DB)
ตัวอย่างเช่นฉันลองใช้ rsync ก่อนหนึ่งโคลนเมื่อหลายปีก่อน สิ่งนี้ไม่ได้ถูกเขียนขึ้นโดยคำนึงถึงโครงสร้างการกำหนดราคาของ Amazon และกำลังออก http จำนวนมากเพื่อรับการแฮชของแต่ละบล็อกและเนื่องจาก Amazon คิดค่าใช้จ่ายสำหรับการรับแต่ละครั้งนั่นหมายความว่าในขณะที่ส่วนการจัดเก็บของบิลของฉันลดลงอย่างรวดเร็ว ballooned
ฉันจะเสียอะไรโดยใช้ความซ้ำซ้อน + s3 แทน rsync + s3rsync + s3
คุณสูญเสียความจริงที่ว่าด้วย rsync คุณรู้ว่าคุณกำลังเปรียบเทียบไฟล์ต้นฉบับกับไฟล์สำรองของคุณ ด้วยความซ้ำซ้อนและโคลนอื่น ๆ คุณกำลังเปรียบเทียบไฟล์ต้นฉบับของคุณกับแฮชซึ่งถ่ายเมื่อทำการสำรองข้อมูล ตัวอย่างเช่นอาจเป็นไปได้ที่จะเข้าถึง S3 โดยตรงและแทนที่ไฟล์ใดไฟล์หนึ่งโดยไม่ต้องคำนวณแฮชใหม่หรืออัปเดตฐานข้อมูลแฮช