Why use Database Connection Pooling?
အရင်က DBMS တွေဘယ်လိုအလုပ်လုပ်သလဲ ဒီမှာရေးဖူးတယ်။
https://www.facebook.com/thet.khine.587/posts/10207756987122197
Client Code ကနေ database ကို connection ချိတ်တဲ့အခါ ဒါတွေလုပ်ရတယ်။
TCP connection ချိတ်ရတယ်် TCP connection ကိုယ်တိုင်က costly ဖြစ်တယ်။
နောက် Secure communication ဖြစ်ဖို့ User ပေးလိုက်တဲ့ DB username, password ကို encrypt လုပ်ပြီး Database ဆီလှမ်းပို့ authentication process လုပ်ရတယ်။
ပြီးတော့ data read/write လုပ်တယ်ပေါ့။
အဲ့တော့ အဲ့ process သည် memory, CPU အစရှိတဲ့ resources ကုန်တယ်။ ဒီတော့ ခုနက Connection တွေကို ခနခန ဆောက်လိုက် ဖျက်လိုက် လုပ်နေမဲ့အစား reuse ပြန်လုပ်မယ်ဆိုရင် performance ကောင်းလာမယ်ပေါ့။
Connection object တွေကို cache အနေနဲ့သုံးတာပေါ့။ Connection Poll ဆိုတာ Connection တွေစုထားတာကိုဆိုလိုတာ။ Client code ကနေ လိုချင်ရင် ခုနက Connection poll ထဲကနေ ယူသုံးမယ်။ သူသုံးလို့ပြီးသွားရင် poll ထဲကိုပြန်ထဲ့မယ်ပေါ့ release လုပ်တယ်ပေါ့။ အဲ့တော့ connection object တွေ ခနခန မဆောက်ရတော့ performance အရ ပိုကောင်းလာတယ်ပေါ့။
Client က Connection လိုရင် poll ထဲကရှိပြီးသားချိတ်ပြီးသားကို ယူသုံးတော့ အချိန်လဲ မကုန်တော့ဘူး သက်သာတယ်ပေါ့ Object အသစ်ထပ်ဆောက်စရာမလိုတော့လို့ memory လဲ မကုန်တော့ဘူးပေါ့။
နောက် connection တွေမှာ အချိန်ကြာသွားလို့ timeout ဖြစ်တာမျိုးကို connection poll ကနေ ထိန်းပေးနိုင်တယ် retry mechanism ထဲ့ပေးနိုင်တော့ application က reliable ဖြစ်တယ်။
Original Post=>(https://m.facebook.com/story.php?story_fbid=pfbid02Y4iVybUMFqKjw8rB58izGLmA8JrmNCoXFLyexZX7eyUWqZ2msLot6DypUv7Fup9el&id=1819241055&mibextid=Nif5oz)