ხელახლა იყენებს მცირე რაოდენობის ბაზის კავშირებს მრავალი კლიენტის მოთხოვნებში, ახალი კავშირის გახსნის ნაცვლად თითოეული მოთხოვნისთვის. PostgreSQL-ის კავშირები აქვთ (თითოეული ცალკე პროცესია, რომელიც მნიშვნელოვან მეხსიერებას იყენებს), ამიტომ პულინგი არსებითი ხელსაწყოა ფუნქციონირებისა და მასშტაბურობისთვის დატვირთვის პირობებში. არის სტანდარტული პულერი.%% ## პრობლემა: PostgreSQL კავშირები ძვირი აქვთ%% %% ## გამოსავალი: კავშირის პული%% %% ## PgBouncer — სტანდარტული გარე პულერი%% %% ## სადაც პულინგი ხდება%% %% ## რატომ მნიშვნელოვანია%% კავშირის პულინგი არსებითი ცოდნაა PostgreSQL-ის გაშვებისთვის , რადგან PostgreSQL კავშირები უნიკალურად ძვირი აქვთ (თითოეული ცალკე OS პროცესია, რომელიც მნიშვნელოვან მეხსიერებას იყენებს), ამიტომ იმის გაგება, თუ რატომ გჭირდება პულინგი და როგორ მუშაობს, მნიშვნელოვანი უფროსი დონის ცოდნაა დადებითი შეწყობილობის, მასშტაბური დანერგვებისთვის.%% ძირითადი პრობლემა ისაა, რომ ნაივური მიდგომა — კავშირის გახსნა თითოეული მოთხოვნის მიხედვით, ან ათასობით კავშირის ღია რჩენა ხელმოწერილი აპლიკაციის მხრიდან — Postgres-ით არ მასშტაბირდება: კავშირები ძვირი აქვთ (მეხსიერება პროცესის მიხედვით, შექმნის ოვერჰედი), და Postgres-ს აქვს ლიმიტი (ხშირად ~100), რომელიც ადვილად გადაიხრება, რის გამოც წარმოიქმნება შეცდომები და რესურსების ამოწურვა. მოგვარებს ამას გაუმართლებელი რაოდენობის კავშირების შენარჩუნებით, რომელსაც მრავალი აპლიკაციის მოთხოვნა ზიარობს (აიღებს და აბრუნებს მათ) — ამდენად ათასობით კლიენტი შეიძლება მომსახურდეს რამდენიმე ათეულ ბაზის კავშირით, რაც აღმოფხვრის თითოეული მოთხოვნის ოვერჰედს და ლიმიტებში რჩება.%% იმის გაგება -ის (სტანდარტული გარე პულერი) და მისი შესახებ — განსაკუთრებით (კავშირის შენახვა მხოლოდ ტრანზაქციის ხანგრძლივობის განმავლობაში, მაქსიმალური ხელახალი გამოყენება, ჩვეულებრივი არჩევანი ვებ აპლიკაციებისთვის) — არის მნიშვნელოვანი პრაქტიკული ცოდნა.%% იმის ცოდნა (აპლიკაციის დონის პულები თითოეული ინსტანციისთვის, ვერსუს გარე პულერი როგორც PgBouncer მრავალი ინსტანციის ან serverless-ის მიერ) — არის ძირითადი არქიტექტურული პუნქტი — , რადგან მრავალი ხანმოკლე ინსტანცია სხვაგვარად PostgreSQL-ს დაემუქრებოდა კავშირებით (ჩვეულებრივი, რეალური პრობლემა).%% რადგან კავშირის მართვა პირდაპირ გავლენას ახდენს მასშტაბურობაზე და სტაბილურობაზე დატვირთვის პირობებში (და Postgres-ის პროცესი-თითო-კავშირის მოდელი ამას მწვავე ხდის), და რადგან პულინგი (განსაკუთრებით PgBouncer ტრანზაქციის პულინგით) სტანდარტული, არსებითი გამოსავალი, კავშირის პულინგის გაგება — რატომ სჭირდება მას Postgres, როგორ მუშაობს, PgBouncer და მისი რეჟიმები, და serverless განხილვა — არის მნიშვნელოვანი უფროსი დონის ცოდნა PostgreSQL-ის მასშტაბით გაშვებისთვის, ხშირად კრიტიკული განცდა საწარმოო სისტემებისთვის, რომელიც განასხვავებს მათ, ვინც შეძლენ Postgres-ის მასშტაბირებას მათ, ვინც კავშირის ლიმიტის წარუმატებლობას აყენებთ.
