خط سفید، روی سیاه، واه واه واه!

امروز برای دومین بار پایگاه داده‌های کنتور را نابود کردم.

مدتهاست که درگیر مشکل حجم بالای اطلاعات درج شده در این پایگاه داده‌ها به خاطر بازدیدهای بالای گنجور بودم. اتفاقی که می‌افتاد این بود که با افزایش حجم داده‌ها گزارش‌گیری در آن به مشکل برمی‌خورد. برای حل مشکل تصمیم گرفتم ریز بازدیدها را در قالب گزارشات نهایی مورد نیازم جمع‌بندی کنم و بعد ریز بازدیدها را پاک کنم. منتهی مشکل به این راحتی قابل حل نبود. گزارشگیری و حذف اطلاعات از جدولی شامل نزدیک به سی میلیون رکورد برای همین کار هم زمانبر بود. تصمیم گرفتم داده‌های قدیمی را با اجرای یک پرس‌وجوی حذف به صورت دستی حذف کنم. این هم فکر خوبی نبود و بعد از گذشت نزدیک به دو ساعت -وقتی اجرای پرس‌وجوی حذف به پایان نرسید و تلاش من برای توقف آن ناکام ماند- سرویس پایگاه داده‌ها را راه‌اندازی دوباره کردم و بعد، من ماندم و یک پایگاه داده‌های گیر کرده در وضعیت بازیابی (recovery). درد سرتان ندهم: در غیاب چت‌جی‌پی‌تی کمی با نسخهٔ خنگ آفلاین دیپ‌سیک سر و کله زدم و وقتی به نتیجه نرسیدم به امید آن که با حذف فایل لاگ (log) و بارگذاری مجدد پایگاه داده (با ساخت مجدد این فایل) وضعیت اصلاح شود فایل لاگ را پاک کردم. نتیجه آن چیزی که فکر می‌کردم نبود و سرویس پایگاه داده‌ها دیگر این فایل را گردن نگرفت. این شد که مجبور شدم پایگاه داده‌های برنامه را از نو بسازم.

در این فرایند آمارهای سایتهای خودم آنقدرها اهمیتی نداشت. اما می‌دانم کنتور کاربران دیگری داشت که آمار سایتهای خودشان را از آن می‌گرفتند. غیر از آن که آمار آنها از دست رفته، حساب کاربریشان پاک شده و کدهای رهگیری که در سایتهایشان گذاشته‌اند هم خطا می‌دهد.

این اولین بار نیست که داده‌های کنتور را خراب می‌کنم. اگر این بار هوش مصنوعی کمکی به بازگرداندنش نکرد دفعهٔ قبل عامل اصلی خرابکاری بود.

برای حل همین مشکل سری قبل از چت‌جی‌پی‌تی پرسیدم که چطور می‌توانم حجم بزرگی از داده‌ها را پاک کنم (قضیه مال چند ماه پیش است)، پیشنهاد داد جدول را TRUNCATE کنم و من بدون تحقیق در مورد پیشنهادش همان اسکریپتی را که نوشته بود اجرا کردم. نتیجه: داده‌های آماری همه یکباره پاک شدند. حداقل دفعهٔ قبل اطلاعات کاربران و دامنه‌های تعریف شدهٔ آنها سر جایشان مانده بود.

در هر حال از جمله دستاوردهای خرابکاری اخیر شاید آزاد شدن ۲۵۰ گیگابایت فضا روی سرور باشد.

غیر از آن متوجه شدم که باز هنگام تلاش برای حل مشکلات رهگیری آمار بازدیدکنندگان نسکبان یکی از پیشنهادهای هوش مصنوعی را بدون بررسی جایگزین کرده بودم. پیشنهاد هوش مصنوعی فقط شامل بخشهای نیازمند تغییر کد بود و اشاره کرده بود که بقیهٔ بخش‌های کد باید دست نخورده بماند و من بدون دقت پیشنهاد ناقصش را جایگزین کد کامل کرده بودم.

نکتهٔ دیگری هم فهمیدم.

من فکر می‌کردم که با قطع اینترنت و از آنجا که سروری که کنتور روی آن راه‌اندازی شده داخلی است و از روی اینترنت دیده نمی‌شود آمار گنجور باید صفر یا نزدیک به صفر باشد (خود گنجور روی اینترنت در دسترس است). از بررسی آمار قبل از حذف اطلاعات و حتی بعد از آن متوجه شدم که آمار سیم‌کارتهای سفید (آنها که هم اینترنت دارند و گنجور را می‌بینند و هم اینترانت داخلی و کنتور را می‌بینند) خیلی بیشتر از آن چیزی است که تصور می‌کردم. چون روی کنتور عملاً آمار اینهاست که ثبت می‌شود و در آن حدی که تصور می‌کردم کم نیستند (آمارهای پاک شده که تا ۳۰ روز پیشتر را هم روی رابط کاربری نشان می‌داد مشخص می‌کرد که این نیست که یک دفعه و به دلیل عرضهٔ رسمی اینترنت طبقاتی آمار اینها افزایش پیدا کرده باشد و در طول مدت این قطعیِ حالا بیش از یک ماهه اینها به اینترنت دسترسی داشتند). نکتهٔ جالبش این است که در میان این دوستان علاقمندان گنجور هم کم نیستند!

این آمار مال همان چند ساعت دیروز است که پایگاه داده‌های کنتور را از نو ساختم:

سیم‌کارت‌های سفید بازدیدکنندگان گنجور

پیشتر این رباعی را خطاب به گروهی از میان اینان ساخته بودم که اهل سیاست و صاحب مقامند و تغییرات توییتر ایلان ماسک در نمایش موقعیت صاحب حساب کاربری رسوایشان کرد:

در فنّ سیاه‌بازی این صاحب جاه

بودی تو به خود غرّه که ایلان ناگاه

از بازی روزگار کردت آگاه

خطّ تو سفید گشت و روی تو سیاه!

پی‌نوشت: آمار یک روز کامل (۱۴ فروردین):

گزارش‌های دامنه - ganjoor.net - جدول کشورهای بازدیدکننده

این یکی هم نشان می‌دهد که این بازدیدها را حدود ۱۴۰۰ سفیدخط مجزا مرتکب شده‌اند:

گزارش‌های دامنه - ganjoor.net - آمار دیروز

و یادآور می‌شود که تعداد بازدیدکنندگان گنجور منطقاً درصد کوچکی از کل صاحبان این خطها باید باشد شاید اصلاً به درصد هم نرسد.

7 دیدگاه برای “خط سفید، روی سیاه، واه واه واه!”

  1. سلام و درود؛
    امیدوارم که این دیدگاه رو بخونید.
    با توجه به اینکه به داستان علاقه دارید و از خواندن هم لذت میبرید، داستانم را از ابتدا مینویسم.
    من از اول قطعی اینترنت متوجه شدم که گنجور از دسترس خارج شده و چون یکی از سرگرمی های من سر زدن به گنجور بود کمی آزرده شدم.
    بعد از اینکه ارتباط من با اینترنت بین الملل به شدت کاهش یافت و در ساعاتی نمیتوانستم وارد گنجور بشوم؛ امشب به سرم زد با توجه به مصاحبه ای که از شما دیده بودم و گفته بودید در github گنجور دیتابیس کل گنجور موجود هست، با دانلود دیتابیس و ساخت یک وب ویو ساده خودم و دوستانم را از نعمت اشعار فارسی بهرمند سازم.
    چند ساعتی در github گنجور گشتم و چیز های جالب بیشتری از شما فهمیدم که در اون سه ساعت و نیم مصاحبه اشاره نشده بود ولی هر چقدر که گشتم، دیتابیس مذکور را پیدا نکردم.
    البته یک دیتابیس ناقص پیدا کردم که خب خیلی بیشتر از آنچه که در ذهنم تصور میکردم ناقص بود.
    بعد از فکر کردن من دو راه به ذهنم رسید:
    ۱- مانند شما از طریق وب اسکرپینگ روی گنجور یک دیتابیس برای خودم ردیف کنم تا به اشعار دسترسی پیدا کنم. ( مانند همون قضیه که سایت آقاعه رو خوابوندید و ی دیداس ناخواسته رقم زدید)
    ۲- با شما صحبت کنم تا شاید حداقل با هم راهی پیدا کنیم یا راهی در اختیارم بگذارید که این مشکل را حل کنم.

    فکر میکنم با توجه به ناراحتی شما از عدم دسترسی به گنجور که در نوشته خودتان ذکر کرده بودید این روش در نهایت منطقی تر به نظر میرسد، در نتیجه این داستان کوتاه را نوشتم تا بگویم لطفا برای درد من چاره ای کنید یا راهکاری در اختیارم بگذارید.
    البته با توجه به درونگرا بودن شما و عدم همکاری شما با هیچ کس در این کره خاکی، قطعا انتظار زیادی ندارم؛ اما امیدوارم شما این حسن نیت و این علاقه من را درک کنید.
    شمارم: [حذف شده]

    1. آپدیت:
      بالاخره پس از تکاپوی فراوان پیداش کردم.
      ولی خدا وکیلی چرا آخه باید توی اون ریپو بزاریدش:))
      کاش دیتابیس ی ریپو جدا داشت….

      1. درود بر آقامرتضای عزیز،
        دیتابیس رو مدتهاست تصمیم دارم شاید در قالب همون پشتیبان SQL Server در قالب یک رپوی جدا منتشر کنم. مشکلم اطلاعات کاربرانه که باید حذف یا بی‌نام بشه و برای این کار باید یه ابزار به سرویس اضافه کنم. اضافه بشه دیتابیس اصلی رو که شامل محتوای خیلی بیشتری از لحاظ ساختاری به نسبت گنجور رومیزی هست منتشر می‌کنم.

  2. درود جناب روحی عزیز.
    بنده هم سوالی داشتم پیرو همین که چطور می‌تونیم به دیتابیس گنجور دست پیدا کنیم برای بالا آوردن یک نمونه شخصی؟
    آدرسش در گیت‌هاب کجاست؟ آیا همینه که اینجا قرار داره؟
    https://github.com/ganjoor/desktop/releases

    پ.ن:‌ توسعه‌دهنده گنجورک هستم. اگر یادتون مونده باشه. = )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *