ماهو الـconnection pooling
اذا، ماهو الـ connection pool؟
لربما سمعت بعبارة " الاتصال بقاعدة البيانات أمر مكلف " حيث كل اتصال على حدى يمر عبر سلسلة من الأمور منها الـ auth ( الى اخره) و عملية فتح و غلق الاتصال بقاعدة البيانات يعتبر مكلف للوقت و ريسورسس السيرفر, وبالعودة لـdocumentation الـMySQL في قسم B.5.2.7 Too many connections سنلاحظ حديث مطوري هذا النوع من قواعد البيانات عن الرقم المثالي والإفتراضي لعدد الاتصالات المسموح به لتقدم خدمة سريعة وهو 151 اتصال ( سابقا كان 100 اتصال فعال ) في حالة عمل الخدمة مع ويب سيرفر الـapache لتقديم خدمة افضل بالتالي وجب التنبيه بأن هناك عدد ما لكمية الاتصال بقاعدة البيانات.
ولحل هذه المشكلة وجد ما يسمى بالـconnection pool الذي يعمل كناقل/ وسيط سريع بين الطلب و قاعدة البيانات ليقلل التكلفة (من الوقت و الريسورسس ) ويرفع و يزيد من الأداء
اذا، ماهو / هي الـ connection pool فعليا؟
إن صح الوصف فهي عبارة عن بركة ( كما في الصوره اعلاه) تحتوي على مجموعة من الاتصالات بقاعدة البيانات مفتوحة وجاهزة للاستخدام المتكرر ( ولنفترض 10) والفائدة من ذلك توفير الوقت الذي يكون مابين اغلاق الاتصال و فتحه مرة أخرى لعملية أخرى another query بذلك وعند نفاذ كمية الاتصالات من البركة (اي ان هناك عدد معين من المستخدمين في نفس الوقت يستخدمون جميع قنوات الاتصال في هذه البركة ) يتم اضافة اتصال آخر بشكل اوتوماتيكي ( ليصبح مثلا 14 اتصال داخل البركة ) وعند الانتهاء يرجع للعدد الطبيعي (10) ويتم غلق هذه الاتصالات
ملاحظة: استخدام الـ connection pool آمن جدا و مع وجود كمية اتصالات مفتوحة وفي المرحلة الاخير اي بعيدا عن connection parsing and authentication لا يعني ذلك عدم الأمان.
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !