صفها و صفهای اولویت دار در ایمیل سرور
با توجه به ماهیت ایمیل سرور و نحوه فعالیت آن که ممکن است ایمیلهای زیادی در هر زمان به آن تحویل داده شود، صفها کاربردهای حیاتی در آن دارند. ایمیلها بر اساس قواعد مختلف در این صفها قرار گرفته و فعالیت لازم بر روی آنها انجام میشود. مثلا صف اسکن برای ویروس، صف ارسال به بیرون، صف بررسی ایمیل هنگام دریافت و غیره.
تقریبا تمامی ایمیل سرورها چون به عنوان یک سرویس دهنده سروری عمل میکند و درخواست ها را به صورت ناهمزمان دریافت می کند در بخش های مختلف باید صف (Queue) برای انجام کارها ایجاد کند. بنابراین صفها در ایمیل سرورها کاربردهای حیاتی دارند و ایمیلها بر اساس قواعد مختلف در این صفها قرار گرفته و فعالیت لازم بر روی آنها انجام میشود. مانند:
- صف اسکن برای ویروس
- صف ارسال به بیرون
- صف بررسی ایمیل هنگام دریافت و غیره...
در این مقاله سعی شده است که انواع صف از نظر نوع پردازش مورد مقایسه قرار گرفته و ایمیل سرورهای مختلفی که از هر مدل استفاده میکنند معرفی شوند.
صفها در ایمیل سرورها چه کاربردی دارند؟
همانطور که در بالا اشاره شد، چون ایمیل سرور به عنوان یک سرویس دهنده سروری عمل میکند و درخواست ها را به صورت ناهمزمان دریافت می کند در بخش های مختلف باید صف (Queue) برای انجام کارها ایجاد کند.
به عنوان مثال زمانیکه دکمه ارسال ایمیل را میزنید، ایمیل شما جهت ارسال به گیرنده، تحویل ایمیل سرور داده میشود. سرور SMTP در صورت قبول ایمیل ابتدا آن را در صف ارسال قرار میدهد. کلیه ایمیلهای دریافت شده از کاربران مختلف جهت ارسال به مقصد، ابتدا در صف ارسال قرار گرفته و سپس با ترتیبی خاص برای گیرنده ارسال میشوند. صفها یکی از موارد کلیدی در ایمیل سرور میباشد زیرا هر ایمیل سرور قادر به ارسال تعداد محدودی ایمیل در هر لحظه (قابل تنظیم توسط ادمین ایمیل سرور) میباشد و اگر تعداد تقاضا برای ارسال بالا باشد، لازم است که مکانیسمی برای نگهداری آنها تا زمان رسیدن نوبت ارسال وجود داشته باشد.
انواع صفهایی که در ایمیل سرور وجود دارد
گرچه استاندارد خاصی برای این موضوع نداریم، اما در ایمیل سرورها، صفوف مختلف برای مکانیزمهای متفاوت وجود دارد. مثلا صف ارسال ایمیل که اصطلاحا به آن صف خروجی (Outgoing Queue) گفته میشود یا صف دریافت ایمیل که به آن صف ورودی(Incoming Queue) گفته میشود از دیگر نمونههای صفهای موجود در سرورها هست که ایمیلهای دریافتی جهت انجام پردازشهای مختلف مانند بررسی ویروسی بودن و یا انطباق با قوانین مختلف در آن قرار میگیرند. بر همین اساس صفهای مختلف دیگری نیز مانند retry queue و غیره نیز در ایمیل سرورها وجود دارد.
نکته: مدیریت صفها در برخی ایمیل سرورها به صورت عادی (نوبت به ترتیب زمانی)، انجام می شود و مشکلاتی برای رسیدگی به اولویت ها ایجاد می کند که در ادامه به آنها اشاره شده است.
مشکل صفهای عادی در ایمیل سرور
براساس نحوه پیادهسازی صف، ایمیل سرورها به دو دسته تک صف و دارای صفوف پردازش موازی تقسیم میشوند. در ایمیل سرورهای تک صفی، به ازای هر کدام از موارد بالا مثلا ارسال، تنها یک صف وجود داشته و کلیه ایمیلها درون این صف قرار میگیرند. این ایمیل سرورها بر اساس اینکه هر ایمیلی که زودتر رسیده باشد زودتر هم پردازش میگردد عمل مینمایند (first in first out)
توجه: ایمیل سرور اکسیژن (axigen) از این نوع ایمیل سرور میباشد. ایمیل سرور اکسیژن دارای تنها یک صف ارسال، یک صف دریافت و یک صف retry میباشد.
اشکال این نوع ایمیل سرورها در تعداد کاربران بالا مشخص میشود. مثلا در ایمیل سروری که دارای ۱۰۰۰ کاربر باشد، در صورتیکه کاربری یک ایمیل را برای ۱۰۰ کاربر ارسال نماید، صد ایمیل در صف قرار گرفته و کاربر بعدی که یک ایمیل ارسال نموده در انتهای صف، بعنوان صد و یکمین ایمیل قرار میگیرد و باید منتظر بماند.
این مورد، مخصوصا در دانشگاه و شرکتهایی که ایمیل انبوه ارسال میکنند میتواند مشکل ساز شود. مثلا دبیر یکی از مجلات در دانشگاهی، اقدام به ارسال چندین هزار ایمیل به مقصدهای مختلف میکند. در این حال اگر یکی از افراد هیات علمی ایمیلی ارسال نماید، این ایمیل در آخر صفی از چندین هزار ایمیل قرار میگیرد و تا زمانی که این ایمیلها ارسال نشده باشند، ایمیل این عضو هیات علمی ارسال نخواهد شد.
مشکل بعدی زمانی پیش میآید که به دلیلی ایمیل واقع در اول صف به مشکل بر بخورد. در این صورت ممکن است کلیه ایمیلهای بعدی این صف تا رفع مشکل در انتظار ارسال باقی بمانند.
صفهای اولویتدار به چه نحوی عمل میکنند؟
نوع دیگری از صف، صفهای اولویت دار یا priority queue ها هستند. در این مدل، هر نوع صف دارای چندین صف که با هم بصورت موازی عمل میکنند میباشد. بعنوان مثال یک ایمیل سرور میتواند ۵ صف ارسال موازی داشته باشد که بصورت موازی ایمیل ارسال کنند. ایمیل سرور در هنگام ارسال ایمیل ایمیلها را در صفوف مختلف موازی قرار میدهد. ۱۰۰۰ ایمیل ارسالی از یک شخص درون یک صف و ایمیل سایر اشخاص درون صف دیگری قرار میگیرد. بنابراین ارسال ایمیل انبوه از طرف یک شخص تاخیری در ارسال ایمیل سایر افراد ایجاد نمیکند.
توجه: ایمیل سرورهای اکسچینج، آیس وارپ و ایمیل سرور سورنا مجهز به صف های چندگانه اولویت دارد میباشند. در سورنا علاوه بر اولویت صف، سرعت صف هم قابل کنترل است.
در ایمیل سرور اکسچینج، هر ایمیل میتواند یکی از سه اولویت کم، عادی و بالا را داشته باشد. بر اساس همین اولویتبندی صف هر کدام از ایمیلها مشخص میگردد. در آیس وارپ، خود ایمیل سرور تشخیص میدهد که هر ایمیل در کدام یک از ۵ صف موجود قرار گیرد. یکی از پارامترهای تعیین کننده تعداد گیرندههای یک ایمیل میباشد. در سورنا نیز علاوه بر بودن ۴ صف مختلف، سرعت ارسال ایمیل هر صف نیز متفاوت است. به این صورت که مثلا صف شماره صفر هر بار ۴ ایمیل همزمان ارسال مینماید. صف شماره ۱ هربار ۳ ایمیل همزمان و به همین ترتیب صفوف دیگر نیز عمل مینمایند. در سورنا علاوه بر خود ایمیل سرور، تنظیم صف و اولویت ارسال به ازای هر کاربر نیز وجود دارد.
ایمیل سرور سازمانی سورنا: یک راهکار جامع و مستقل برای مدیریت ایمیل سازمانی . درخواست جلسه یا اکانت دموی ایمیل سرور سازمانی سورنا
ایمیل سرورهای دارای صفهای اولویتدار برای کدام سازمانها کاربرد دارد؟
بطور کلی صف های اولویت دار priority queueکارآمدتر از صفهای معمولی بوده و یکی از موارد مهمی که در انتخاب ایمیل سرور سازمانی باید مد نظر قرار گیرند میباشد. این مورد مخصوصا در ایمیل سرورهای مورد استفاده در دانشگاهها و سازمانهایی که ارسال ایمیل انبوه دارند بسیار مهم میباشد.