Email: info@developit.ir

فشرده سازی درخواست ها در elasticsearch

به نظرم در هنگام کار با داده های حجیم موضوع فقط نحوه ی مدیریت اطلاعات داخل کلاستر نیست و این تنها حل کردن بخشی از مساله میتونه باشه.

ممکنه درخواست های زیادی هم سمت سرور ارسال بشه و چقدر خوبه این درخواست ها به نحوی فشرده و کوچکتر بشن تا انتقال اطلاعات سریعتر انجام بشه مخصوصا داخل elasticsearch که به صورت real time کار میکنه.

به این منظور مشغول پیاده سازی ماژول msgpack برای elasticsearch شدم اما زمانی که ازش استفاده کردم دو مشکل وجود داشت:

1) افت کارایی، نه به خاطر encode/decode کردن JSON. به این دلیل که اصل scripting در elasticsearch کاهش سرعت رو به همراه داره مخصوصا زمانی که کد شما قرار هست به ازای هر درخواست اجرا بشه.

2) منسوخ شدن برخی از روش های scripting در آینده، مخصوصا javascript! ظاهرا scripting در نسخه های بعدی دچار تغییرات زیادی خواهد شد در حدی که elastic.co پیشنهاد میکنه از painless scripting language استفاده کنیم.

و این در حالی بود که خود elasticsearch به طور پیشفرض درخواست ها رو فشرده میکرد و من ازش اطلاعی نداشتم...

اگر از http module استفاده میکنید، elasticsearch از فشرده سازی در صورتی که ممکن باشد با استفاده از Accept-Encoding پشتیبانی میکند. مقدار http.compression در بخش network settings به طور پیشفرض true است. سطح فشرده سازی درخواست ها در elasticsearch قابل تغییر است. سطوح فشرده سازی از 1(حداقل فشرده سازی) شروع شده و نهایتا تا 9(حداکثر فشرده سازی) قابل تغییر میباشد. در network settings فشرده سازی روی سطح 3 تنظیم شده با این وجود میتوانید مقدار آن را با استفاده از http.compression_level کم یا زیاد کنید.

این مطلب آخرین بار در تاریخ 01:32 - 1395/12/29 ویرایش شده است.

ارسال نظر
عضویت در خبرنامه
جهت اطلاع از آخرین فعالیت های من لطفا در خبرنامه عضو شوید