برنامههای همگامسازی ابری تا وقتی همهچیز درست کار میکند، چندان هیجانانگیز نیستند. فایلی را روی یک رایانه ذخیره میکنید، چند ثانیه منتظر میمانید و همان فایل روی رایانهای دیگر پدیدار میشود. ماجرا زمانی جالب میشود که دو دستگاه با هم اختلاف پیدا کنند. اگر یک سند را همزمان بهصورت آفلاین و آنلاین ویرایش کنم، نامش را در دو جا تغییر دهم، یا آن را روی یک رایانه پاک کنم و همزمان روی رایانهای دیگر تغییرش دهم، چه پیش میآید؟
برای یافتن پاسخ، گوگل درایو، مایکروسافت واندرایو، دراپباکس و سینکتینگ را در معرض همین موقعیتهای شکست قرار دادم. سه برنامهٔ نخست از فضای ابری شرکت سازندهٔ خود بهره میبرند، اما سینکتینگ مستقیماً میان دستگاههای من کار میکند. شاید این تفاوت در همگامسازی روزمره مهم به نظر نرسد، ولی هنگام بازیابی قطعاً تعیینکننده است.
چهار برنامهٔ همگامسازی را عمداً به دردسر انداختم
یک رایانهٔ لینوکسی، یک رایانهٔ ویندوزی و چهار راه برای اختلاف





از یک رایانهٔ لینوکسی و یک رایانهٔ ویندوزی استفاده کردم و روی هر دو، پوشهٔ آزمایشی یکسانی شامل فایلهای متنی، یک سند ورد، یک تصویر و چند پوشهٔ تودرتو ساختم. گذاشتم همگامسازی هر سرویس کامل شود، سپس اتصال یکی از رایانهها را قطع کردم و چهار آزمایش انجام دادم: ویرایش آفلاین، تغییر نامهای متعارض، حذف آفلاین و تعارضی که در آن هر دو دستگاه یک فایل واحد را تغییر میدادند. پس از برقراری دوبارهٔ اتصال، منتظر ماندم برنامهها کارشان را به پایان برسانند و سپس هر دو رایانه و، در صورت وجود، رابط وب را بررسی کردم.
مطمئن شدم همهٔ فایلهای آزمایشی بهصورت محلی ذخیره شدهاند. گوگل درایو میتواند تمام یک درایو را آینه کند یا پوشههای جریانی برگزیده را برای نگهداری محلی سنجاق کند؛ ویرایش فایلهای جریانی نیز تا زمان بارگذاری در حافظهٔ نهان محلی میماند. واندرایو و دراپباکس هم به فایلهای واقعاً بارگیریشده نیاز دارند، نه جانگهدارها. سینکتینگ فایلهای عادی را روی دیسک نگه میدارد، بنابراین چیزی برای سنجاقکردن وجود نداشت.
تغییرات آفلاین یک کاربر کاملاً بیدردسر بود
حالت جریانی گوگل درایو تنها استثناست

هر چهار برنامه، ویرایش آفلاین روی تنها یک دستگاه را بیهیچ مشکلی مدیریت کردند. فایلی را روی رایانهٔ بدون اتصال تغییر دادم و پس از اتصال دوباره، بهروزرسانی به دستگاه دیگر منتقل شد. تغییر نام یا حذفی که فقط روی همان دستگاه آفلاین انجام شده بود نیز پس از اتصال دوباره همگام شد. واندرایو حذف یک مورد همگامشده را بهمنزلهٔ حذف آن در همهجا در نظر میگیرد، اما نسخهای بازیابیپذیر را در سطل بازیافت نگه میدارد. دراپباکس نیز حذفها را به دستگاههای دیگر منتقل میکند و بسته به طرح اشتراک، مهلتی برای بازیابی در نظر میگیرد.
شیوهٔ ذخیرهسازی گوگل درایو یک نکتهٔ مهم دارد. فایلهای آینهشده، فایلهای محلی عادیاند و حتی اگر درایو برای دسکتاپ از کار بیفتد، همچنان در دسترس میمانند. اما موارد جریانی باید برای دسترسی آفلاین علامتگذاری شوند و اگر برنامه بسته یا اتصال حساب قطع شود، ممکن است فایلهای حافظهٔ نهان دیگر در دسترس نباشند. این از نظر فنی شکست همگامسازی نیست، اما وقتی اتصال قطع میشود و فایل موردنیازتان ناگهان به یک جانگهدار بدل میشود، دقیقاً چنین حسی دارد.
هر برنامه به شیوهٔ خود از انتخاب یک برنده سر باز زد
دراپباکس تعارض را نامگذاری کرد، واندرایو دستگاه را افزود و سینکتینگ جزئیات را نشان داد

اما آزمون واقعی زمانی بود که یک فایل متنی واحد را روی هر دو رایانه به دو شکل متفاوت تغییر دادم. دراپباکس روشنترین نتیجه را نشان داد: فایلی دوم که نام آن عبارت «نسخهٔ تعارضی»، نام ویرایشگر و تاریخ را در بر میگرفت. به گفتهٔ دراپباکس، نسخهای که دیرتر ذخیره شده است به نسخهٔ تعارضی تبدیل میشود و ویرایش دیگر بیسروصدا بازنویسی نمیشود. این کار پوشه را شلوغ میکند، اما هر دو نسخه در دیدرس میمانند و نام فایل نیز بهروشنی توضیح میدهد چه اتفاقی افتاده است.
واندرایو برای فایلهای غیرآفیس رویکرد مشابهی در پیش گرفت و هر دو نسخه را نگه داشت؛ همچنین نام دستگاه را به نسخهٔ محلی افزود. مایکروسافت این رفتار را برای تعارض فایلهای غیرآفیس مستند کرده است، درحالیکه فایلهای آفیس میتوانند روندی برای رفع تعارض آغاز کنند که گزینههایی مانند ذخیرهٔ یک نسخه یا کنارگذاشتن تغییرات محلی را ارائه میدهد. این یکپارچگی سودمند است، اما به این معناست که شیوهٔ رسیدگی به تعارضها به نوع فایل بستگی دارد.
گوگل درایو نیز بهجای بازنویسی، فایلها را نگه میدارد؛ بااینحال نتیجهٔ نهایی بهاندازهٔ دراپباکس گویا نیست. هر دو نسخه را تحویل میگیرم، نه ادغام خودکاری که عملاً ناممکن است. در مستندات راهاندازی درایو آمده است که اگر محتوای فایل محلی با نسخهٔ ابری تفاوت داشته باشد، هر دو نسخه نگه داشته میشوند. کار مطمئن این است که پیش از پاککردن هرکدام، هر دو فایل را باز و با هم مقایسه کنید.
و سرانجام، سینکتینگ در میان این چهار برنامه شفافترین رفتار را داشت. این برنامه نام یکی از نسخهها را با پسوند .sync-conflict تغییر داد؛ پسوندی که تاریخ، زمان و شناسهٔ دستگاه را در بر میگرفت. طبق قاعدهٔ مستندشدهٔ سینکتینگ، معمولاً ویرایش قدیمیتر بهعنوان نسخهٔ تعارضی نشانهگذاری میشود. سپس فایل اضافی نیز بهطور معمول همگام شد و بهجای آنکه شواهد در پنجرهای نامعلوم پنهان بماند، روی هر دو رایانه قرار گرفت.
تغییر نام و حذف فایلها ماجرا را پیچیده کرد
سینکتینگ فقط با فعالکردن نسخهبندی، تاریخچه را نگه میدارد

تغییر نامهای همزمان، آشفتهترین پوشه را به بار آوردند. موتور همگامسازی ممکن است تغییر نام را مانند حذف یک فایل و ساخت فایلی تازه ببیند؛ بنابراین دو رایانهای که از شبکه جدا بودهاند، پس از اتصال دوباره شاید همان فایل را با دو نام معتبر برگردانند. سینکتینگ تغییر نامهای معمولی را بدون فرستادن دوباره فایل مدیریت میکند، اما تغییرات همپوشانی که در حالت آفلاین انجام شدهاند، همچنان به رفع تعارض نیاز دارند. در هر چهار سرویس، نگهداشتن هر دو نام بهتر از انتخاب نام نادرست بود.
آزمایش ویرایش در برابر حذف، نکات بیشتری را آشکار کرد. سینکتینگ این برخورد را بهروشنی تشخیص میدهد و اگر حذف پیروز شود، میتواند دادههای ویرایششده را در قالب رونوشتی تعارضی نگه دارد. سرویسهای ابری نیز با ایجاد رونوشتهای اضافی، نگهداری تاریخچه یا استفاده از سطل زباله، ایمنی بیشتری فراهم میکردند. واندرایو برای همه گونههای فایل تاریخچه نسخه ارائه میدهد و موارد حذفشده از حسابهای شخصی را تا ۳۰ روز در سطل بازیافت نگه میدارد.
بااینحال، سینکتینگ به آمادهسازی نیاز دارد. نسخهبندی فایل بهطور پیشفرض خاموش است و تنها بر تغییراتی اعمال میشود که از دستگاههای دیگر دریافت شدهاند. با فعالکردن نسخهبندی «سطل زباله»، «ساده» یا «پلکانی»، فایلهایی که دستگاههای راهدور جایگزین یا حذف میکنند در پوشه .stversions بایگانی میشوند. بدون این قابلیت، سینکتینگ فقط همگامسازی ساده انجام میدهد، نه پشتیبانگیری.
هیچکدام هر دو ویرایش را نابود نکردند؛ معیار همین است
همگامسازی پشتیبانگیری نیست؛ نبود خطا هم به معنای نبود تعارض نیست
نتوانستم هیچیک از این سرویسها را وادار کنم که هر دو ویرایش رقیب را بیسروصدا نابود کند؛ این کمترین نتیجه پذیرفتنی برای چنین آزمایشی است. دراپباکس تعارضها را بهتر از همه گزارش میکرد، واندرایو نیرومندترین یکپارچگی را با آفیس داشت و گوگل درایو نیز پس از آنکه تفاوت میان پخش جریانی و آینهسازی را فهمیدم، عملکرد خوبی نشان داد. سینکتینگ سازوکارها را شفافتر از همه پیش چشم میگذاشت و بیشترین اختیار را میداد، اما مسئولیت نسخهبندی و دردسترسبودن دستگاهها را بر عهده خودم میگذاشت.
درس این آزمایش آن است که همگامشدن با پشتیبانگیری یکسان نیست و ندیدن خطای همگامسازی نیز به معنای نبود تعارض میان فایلها نیست. اکنون پس از اتصال دوباره هر رایانه، صبر میکنم تا همگامسازی پایان یابد و پیش از پاکسازی، تکتک رونوشتهای غیرمنتظره را بررسی میکنم. رونوشتهای تعارضی آزاردهندهاند، اما این شلوغی سودمند است: گواهی بر اینکه نرمافزار حاضر نشده دادههایم را به قمار بگذارد.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Yadullah Abidi است. مشاهده مقاله اصلی