انجمنی که بخواهد از اولوس بیرون برود، دادهاش را برمیدارد و روی سرور خودش بالا میآورد. این را بهعنوان یک ویژگی تبلیغاتی ننوشتهایم؛ بهعنوان قیدی نوشتهایم که شکل داده را تعیین میکند. سیستمی که نتوان از آن بیرون رفت، سیستمی است که ماندن در آن انتخاب نیست.
آنچه تحویل میگیرید یک پوشه است، نه یک فایل فشردهی رمزدار: یک فایل فهرست که میگوید چه چیزی آنجاست و checksum هر فایل چیست، یک فایل برای هر کالکشن که هر خطش یک سند است، و فهرست کلید هر فایلی که این اسناد به آن ارجاع میدهند. باید بتوانید بازش کنید، بشمارید و در آن جستوجو کنید، بیآنکه ابزاری از ما لازم داشته باشید.
هر خط Extended JSON است، نه JSON ساده. تبدیل ساده، شناسهها و تاریخها را به رشته تبدیل میکند و موقع خواندن رشته تحویل میدهد — یعنی هر ارجاع داخل آرشیو بیصدا از کار میافتد و انجمنی بازیابی میشود که هیچ عضوی ندارد.
شناسهها هم عوض نمیشوند. ابزار وارد کردن حتی یک شناسه را بازنویسی نمیکند، چون بازنویسی یعنی باید هر ارجاع در هر کالکشن دوباره نوشته شود — از جمله آنهایی که داخل فیلدهای آزاد نشستهاند و هیچ اسکیمایی شکلشان را نمیداند. ماژولی که ماه بعد اضافه شود، ارجاعهایی میآورد که آن ابزار هرگز نشنیده است.
پیش از هر کاری آرشیو بررسی میشود: یک دستور که به هیچ دیتابیسی دست نمیزند و فقط checksum و تعداد ردیف هر فایل را با فهرست میسنجد. یک بایت جابهجاشده در انتقال، بی این بررسی، ماهها بعد به شکل «چرا این خبر باز نمیشود؟» خودش را نشان میدهد.
فایلها داخل آرشیو نیستند — مونگو فقط ردیف اطلاعاتی فایل را نگه میدارد. ولی همهی فایلهای یک انجمن زیر یک پیشوند واحد نشستهاند که با شناسهی همان انجمن شروع میشود، و همین یک قاعده کپی را به یک عبور تبدیل میکند بهجای جستوجوی فایلبهفایل.
چیزهایی هم همراه نمیآیند و دلیلشان نوشته شده: اعتبارنامهی درگاه پیامک ما، کنسول اپراتور، مجوزهای ورود پشتیبانی، نشستها و کدهای یکبارمصرف، و لاگ ممیزی پلتفرم. نقشهای سطح پلتفرمِ کاربران هم پاک میشود؛ روی سرور شما چنین نقشی معنایی جز «مالک همهچیز» ندارد. همهی این حذفها در فایل فهرست آرشیو نوشته میشوند.
و اینکه دادهی انجمن دیگری همراه نیاید، ادعا نیست: تست قابلیت انتقال دو انجمن با دادهی عمداً شبیهبههم میسازد، از یکی خروجی میگیرد و ثابت میکند صفر ردیف از دیگری داخل آرشیو است.
یک صراحت لازم هم هست: حالت تکمستأجری امروز به شکل توابع تصمیمگیری در هسته وجود دارد و هنوز به اپ وصل نشده است. تا آن موقع، وارد کردن داده کار میکند ولی سرور همچنان مثل یک پلتفرم چندمستأجری رفتار میکند. فهرست کارهای باقیمانده در سرصفحهی همان فایل نوشته شده است.
- قابلیت انتقال
- میزبانی مستقل