ขณะนี้ เรากำลังพิจารณาว่าจะปรับขนาดระบบที่เรามีผู้ใช้จำนวนมากได้อย่างไร โดยแต่ละคนมีสคีมา postgres ของตนเอง และข้อมูลรับรองผู้ใช้ DB ของตนเองเพื่อให้แน่ใจว่าแยกออกจากกัน อย่างไรก็ตาม นี่หมายความว่าผู้ใช้แต่ละรายจะต้องมีการเชื่อมต่อกับฐานข้อมูลของตนเองอย่างมีประสิทธิภาพ และเนื่องจากจำนวนการเชื่อมต่อแบบเปิดพร้อมกันกับเซิร์ฟเวอร์ postgres ค่อนข้างจำกัด เนื่องจากหน่วยความจำโอเวอร์เฮดสำหรับการเชื่อมต่อแต่ละครั้งบนเซิร์ฟเวอร์ เราจึงกำลังมองหาวิธีแก้ปัญหาที่เป็นไปได้ pgBouncer
น่าจะเป็นการดีที่จะใช้และทวีคูณการเชื่อมต่อขาเข้าหลายรายการไปยังพูลการเชื่อมต่อแบบคงที่กับฐานข้อมูลจริง อย่างไรก็ตาม เราไม่สามารถยืนยันได้ว่าการแยกผู้ใช้ตามข้อมูลรับรองผู้ใช้และสคีมาฐานข้อมูลสามารถแมปกับสถานการณ์นั้นได้
เซสชันผู้ใช้และอายุการใช้งานการเชื่อมต่อมีระยะเวลาสองสามนาที แต่ไม่มีการใช้งานหนัก (ธุรกรรม DB เดียวที่มีการสืบค้นที่เกี่ยวข้องทุกๆ สองสามวินาที) และการสืบค้นนั้น ไม่ มีความอ่อนไหวต่อเวลาแฝง ดังนั้นเราจึงสามารถตัดการเชื่อมต่อระหว่างธุรกรรมทางเทคนิคและเชื่อมต่อใหม่ได้ตามต้องการด้วยพร็อกซีเช่น pgBouncer
รักษาสถานะการเชื่อมต่อ เมื่อพูดถึงสถานะ แอปพลิเคชันไม่ได้ใช้คำสั่งที่เตรียมไว้ที่มีชื่อ ดังนั้นสถานะฝั่งเซิร์ฟเวอร์จึงมีแนวโน้มไม่ใหญ่นัก แต่เนื่องจากเป็นฐานข้อมูลที่โฮสต์บนคลาวด์ เราจึงไม่สามารถแก้ไขได้อย่างง่ายดาย max_connections
คอนฟิกบนเซิร์ฟเวอร์
มีวิธีการแมปสถานการณ์นี้กับ pgBouncer
หรือผู้รับมอบฉันทะที่คล้ายกัน?