Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Hauv nws daim ntawv tshaj tawm, Andrey Borodin yuav qhia koj li cas lawv tau coj mus rau hauv tus account qhov kev paub ntawm scaling PgBouncer thaum tsim kev sib txuas pooler Odyssey, raws li lawv dov nws tawm mus rau hauv ntau lawm. Tsis tas li ntawd, peb yuav sib tham txog dab tsi lub luag haujlwm ntawm ruber peb xav pom hauv cov qauv tshiab: nws yog ib qho tseem ceeb rau peb tsis tsuas yog ua kom tau raws li peb cov kev xav tau, tab sis los txhim kho cov neeg siv khoom. Odyssey.

Yees duab:

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Nyob zoo sawv daws! Kuv lub npe yog Andrew.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Ntawm Yandex, Kuv tsim cov ntaub ntawv qhib qhov chaw. Thiab hnub no peb muaj ib lub ntsiab lus hais txog kev sib txuas pooler kev sib txuas.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Yog tias koj paub yuav ua li cas hu rau kev sib txuas pooler hauv Lavxias, qhia rau kuv. Kuv yeej xav nrhiav ib lo lus zoo uas yuav tsum tau tsim nyob rau hauv cov ntaub ntawv technical.

Lub ntsiab lus yog qhov nyuaj heev, vim hais tias nyob rau hauv ntau lub databases kev twb kev txuas pooler yog built-in thiab koj tsis txawm xav paub txog nws. Tau kawg, muaj qee qhov chaw nyob txhua qhov chaw, tab sis hauv Postgres nws tsis ua haujlwm li ntawd. Thiab nyob rau tib lub sijhawm (ntawm HighLoad ++ 2019) muaj ib tsab ntawv ceeb toom los ntawm Nikolai Samokhvalov txog kev teeb tsa cov lus nug hauv Postgres. Thiab raws li kuv nkag siab nws, cov neeg tuaj ntawm no uas twb tau teeb tsa lawv cov lus nug zoo kawg nkaus, thiab cov no yog cov neeg uas tau ntsib nrog cov teeb meem tsis tshua muaj feem cuam tshuam nrog lub network thiab kev siv peev txheej. Thiab hauv qee qhov chaw nws tuaj yeem nyuaj heev hauv kev nkag siab tias cov teeb meem tsis pom tseeb.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Yandex muaj Postgres. Ntau yam kev pabcuam Yandex nyob hauv Yandex.Cloud. Thiab peb muaj ob peb petabytes ntawm cov ntaub ntawv uas tsim tsawg kawg ib lab thov ib ob hauv Postgres.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab peb muab cov txheej txheem ncaj ncees rau txhua qhov kev pabcuam - qhov no yog lub ntsiab lus tseem ceeb ntawm lub node, ob qho tib si replicas (synchronous thiab asynchronous), thaub qab, scaling ntawm kev thov nyeem ntawv ntawm lub replica.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Txhua pawg node yog Postgres, uas, ntxiv rau Postgres thiab kev saib xyuas cov tshuab, kuj tau teeb tsa kev sib txuas. Kev sib txuas pooler yog siv rau fencing thiab rau nws lub hom phiaj tseem ceeb.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Lub hom phiaj tseem ceeb ntawm kev sib txuas pooler yog dab tsi?

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Postgres siv tus qauv txheej txheem thaum ua haujlwm nrog cov ntaub ntawv. Qhov no txhais tau hais tias ib qho kev sib txuas yog ib qho txheej txheem, ib qho Postgres backend. Thiab nyob rau hauv no backend muaj ntau ntau sib txawv caches, uas yog kim heev los ua txawv rau txawv kev sib txuas.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tsis tas li ntawd, Postgres code muaj ib qho array hu ua procArray. Nws muaj cov ntaub ntawv yooj yim txog kev sib txuas hauv network. Thiab yuav luag tag nrho cov procArray ua algorithms muaj linear complexity; lawv khiav tag nrho cov array ntawm kev sib txuas network. Nws yog lub voj voog nrawm zoo nkauj, tab sis nrog kev sib txuas hauv network ntau yam tau txais me ntsis kim dua. Thiab thaum cov khoom tau txais me ntsis kim dua, koj tuaj yeem xaus them tus nqi siab heev rau ntau lub network sib txuas.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Muaj 3 txoj hauv kev ua tau:

  • Nyob rau ntawm daim ntawv thov.
  • Nyob rau sab database.
  • Thiab ntawm, uas yog, txhua yam kev sib txuas.

Hmoov tsis, lub built-in pooler yog tam sim no nyob rau hauv txoj kev loj hlob. Peb cov phooj ywg ntawm PostgreSQL Professional ua qhov no feem ntau. Thaum nws yuav tshwm sim yog qhov nyuaj rau kwv yees. Thiab qhov tseeb, peb muaj ob txoj kev daws teeb meem rau tus kws kos duab xaiv los ntawm. Cov no yog daim ntawv thov-sab pas dej ua ke thiab npe npe.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Daim ntawv thov-sab pas dej ua ke yog txoj kev yooj yim tshaj plaws. Thiab yuav luag txhua tus neeg tsav tsheb muab rau koj nrog txoj hauv kev: nthuav tawm ntau lab ntawm koj cov kev sib txuas hauv cov lej raws li ob peb lub kaum sib txuas rau cov ntaub ntawv.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Qhov teeb meem uas tshwm sim yog tias ntawm ib qho chaw koj xav ntsuas qhov backend, koj xav xa nws mus rau ntau lub tshuab virtual.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tom qab ntawd koj paub tias koj muaj ntau thaj chaw muaj nyob, ntau lub chaw khaws ntaub ntawv. Thiab cov neeg siv khoom sib koom ua ke mus kom ze ua rau cov lej loj dua. Cov loj yog hais txog 10 kev sib txuas. Qhov no yog ntug uas tuaj yeem ua haujlwm ib txwm.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Yog tias peb tham txog cov poolers npe, ces muaj ob lub poolers uas tuaj yeem ua tau ntau yam. Lawv tsis yog poolers xwb. Lawv yog cov poolers + kev ua haujlwm txias dua. Qhov no Pgpool ΠΈ Crunchy-Proxy.

Tab sis, hmoov tsis, tsis yog txhua tus xav tau qhov kev ua haujlwm ntxiv no. Thiab nws ua rau qhov tseeb tias poolers tsuas yog txhawb kev sib tham sib koom ua ke, piv txwv li ib tus neeg tuaj, ib tus neeg siv khoom tawm mus rau cov ntaub ntawv.

Qhov no tsis haum rau peb lub hom phiaj, yog li peb siv PgBouncer, uas siv cov kev sib pauv pauv, piv txwv li kev sib txuas ntawm cov neeg siv khoom sib txuas rau cov neeg siv khoom sib txuas nkaus xwb rau lub sijhawm ua haujlwm.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab hauv peb cov haujlwm, qhov no yog qhov tseeb. Tab sis muaj ob peb teeb meem.Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Cov teeb meem pib thaum koj xav kuaj xyuas ib qho kev sib kho, vim tias tag nrho koj cov kev sib txuas tuaj hauv zos. Txhua tus tuaj nrog lub voj voog rov qab thiab qee qhov nws nyuaj rau taug qab qhov kev sib kho.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tau kawg koj tuaj yeem siv application_name_add_host. Nov yog txoj hauv kev ntawm Bouncer sab ntxiv qhov chaw nyob IP rau application_name. Tab sis application_name yog teem los ntawm kev sib txuas ntxiv.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Ntawm daim duab no, qhov twg cov kab daj yog qhov kev thov tiag tiag, thiab qhov twg cov kab xiav yog thov uas ya mus rau hauv cov ntaub ntawv. Thiab qhov sib txawv no yog qhov tseeb ntawm kev teeb tsa ntawm application_name, uas tsuas yog xav tau rau kev taug qab, tab sis nws tsis yog dawb kiag li.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tsis tas li ntawd, hauv Bouncer koj tsis tuaj yeem txwv ib lub pas dej, piv txwv li tus naj npawb ntawm cov kev sib txuas ntawm cov ntaub ntawv rau ib tus neeg siv tshwj xeeb, rau cov ntaub ntawv tshwj xeeb.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Qhov no ua rau dab tsi? Koj muaj cov kev pabcuam thauj khoom sau hauv C ++ thiab qhov chaw nyob ze ntawm qhov kev pabcuam me me ntawm lub node uas tsis ua dab tsi txaus ntshai nrog cov ntaub ntawv, tab sis nws tus neeg tsav tsheb mus vwm. Nws qhib 20 kev sib txuas thiab txhua yam yuav tos. Txawm tias koj tus lej yog qhov qub.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb, tau kawg, tau sau ib thaj me me rau Bouncer uas ntxiv qhov teeb tsa no, piv txwv li txwv cov neeg siv khoom hauv pas dej.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Nws yuav ua tau qhov no ntawm Postgres sab, piv txwv li, txwv lub luag haujlwm hauv cov ntaub ntawv los ntawm cov xov tooj sib txuas.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tab sis tom qab ntawd koj poob lub peev xwm nkag siab vim li cas koj tsis muaj kev sib txuas rau lub server. PgBouncer tsis cuam tshuam kev sib txuas, nws ib txwm rov qab cov ntaub ntawv qub. Thiab koj tsis tuaj yeem nkag siab: tej zaum koj tus password tau hloov pauv, tej zaum cov ntaub ntawv cia li ploj lawm, tej zaum qee yam tsis raug. Tab sis tsis muaj kev kuaj mob. Yog tias qhov kev sib kho tsis tuaj yeem tsim tau, koj yuav tsis paub vim li cas nws thiaj li tsim tsis tau.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Ntawm qee qhov taw tes, koj saib daim ntawv thov daim duab thiab pom tias daim ntawv thov tsis ua haujlwm.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Saib rau sab saum toj thiab pom tias Bouncer yog ib txoj xov. Qhov no yog qhov hloov pauv hauv lub neej ntawm kev pabcuam. Koj paub tias koj tab tom npaj los ntsuas cov ntaub ntawv hauv ib xyoos thiab ib nrab, thiab koj yuav tsum ntsuas lub pooler.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb tau los xaus tias peb xav tau ntau PgBouncers.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

https://lwn.net/Articles/542629/

Bouncer tau patched me ntsis.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab lawv tau ua kom ntau tus Bouncers tuaj yeem raug tsa los ntawm kev rov siv qhov chaw nres nkoj TCP. Thiab lub operating system cia li hloov TCP kev sib txuas ntawm lawv siv round-robin.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Qhov no yog pob tshab rau cov neeg siv khoom, txhais tau tias nws zoo li koj muaj ib tus Bouncer, tab sis koj muaj kev sib cais ntawm kev sib txuas ntawm kev khiav Bouncers.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab nyob rau qee lub sijhawm koj tuaj yeem pom tias 3 Bouncers txhua tus noj lawv cov tub ntxhais los ntawm 100%. Koj xav tau ob peb Bouncers. Vim li cas?

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Vim koj muaj TLS. Koj muaj kev sib txuas encrypted. Thiab yog tias koj ntsuas Postgres nrog thiab tsis muaj TLS, koj yuav pom tias tus naj npawb ntawm cov kev sib txuas tsim tau poob los ntawm yuav luag ob qhov kev txiav txim loj nrog kev siv encryption, vim TLS tuav tes siv CPU cov peev txheej.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab nyob rau sab saum toj koj tuaj yeem pom ob peb txoj haujlwm cryptographic uas raug tua thaum muaj nthwv dej ntawm kev sib txuas tuaj. Txij li thaum peb lub hauv paus tuaj yeem hloov pauv ntawm thaj chaw muaj, nthwv dej ntawm kev sib txuas tuaj yog qhov xwm txheej zoo. Ntawd yog, rau qee qhov laj thawj qub qub tsis muaj, tag nrho cov khoom xa mus rau lwm qhov chaw khaws ntaub ntawv. Lawv txhua tus yuav tuaj hais nyob zoo rau TLS tib lub sijhawm.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab ntau tus TLS tuav tes yuav tsis hais nyob zoo rau Bouncer, tab sis yuav nyem nws caj pas. Vim lub sijhawm dhau mus, nthwv dej ntawm kev sib txuas tuaj yeem ua rau tsis muaj kev cuam tshuam. Yog hais tias koj rov qab mus rau lub hauv paus yam tsis muaj exponential backoff, lawv yuav tsis tuaj dua thiab dua nyob rau hauv ib coherent nthwv dej.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Nov yog ib qho piv txwv ntawm 16 PgBouncers uas thauj 16 cores ntawm 100%.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb tuaj rau lub cascade PgBouncer. Qhov no yog qhov kev teeb tsa zoo tshaj plaws uas tuaj yeem ua tiav ntawm peb lub nra nrog Bouncer. Peb cov Bouncers sab nraud yog siv rau TCP tuav tes, thiab sab hauv Bouncers yog siv rau kev sib koom ua ke tiag tiag, yog li tsis txhob cuam tshuam kev sib txuas sab nraud ntau dhau.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Hauv qhov kev teeb tsa no, kev rov pib dua yog ua tau. Koj tuaj yeem rov pib dua tag nrho cov 18 Bouncers ib qho los ntawm ib qho. Tab sis tuav xws li configuration yog heev nyuaj. Sysadmins, DevOps, thiab cov neeg uas muaj lub luag haujlwm tiag tiag rau lub server no yuav tsis zoo siab rau qhov kev npaj no.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Nws yuav zoo li tias tag nrho peb cov kev txhim kho tuaj yeem nce mus rau qhov qhib, tab sis Bouncer tsis tau txais kev txhawb nqa zoo heev. Piv txwv li, muaj peev xwm khiav ntau PgBouncers ntawm ib qhov chaw nres nkoj tau cog lus ib hlis dhau los. Muaj kev thov rub nrog qhov tshwj xeeb no ntau xyoo dhau los.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

https://www.postgresql.org/docs/current/libpq-cancel.html

https://github.com/pgbouncer/pgbouncer/pull/79

Los yog ib qho piv txwv ntxiv. Hauv Postgres, koj tuaj yeem tso tseg qhov kev thov ua tiav los ntawm kev xa cov ntaub ntawv zais cia rau qhov sib txuas sib txawv yam tsis muaj kev lees paub tseeb. Tab sis qee cov neeg siv tsuas yog xa TCP rov pib dua, piv txwv li lawv rhuav tshem kev sib txuas hauv network. Bouncer yuav ua li cas? Nws yuav tsis ua dab tsi. Nws tseem yuav ua raws li qhov kev thov. Yog tias koj tau txais ntau qhov kev sib txuas uas tau tsim cov ntaub ntawv nrog cov kev thov me me, ces tsuas yog qhov kev sib txuas ntawm Bouncer yuav tsis txaus; koj kuj yuav tsum ua kom tiav cov kev thov uas tau khiav hauv cov ntaub ntawv.

Qhov no tau raug patched thiab qhov teeb meem no tseem tsis tau muab tso rau hauv Bouncer tus dej ntws.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab yog li ntawd peb tuaj mus rau lub xaus hais tias peb xav tau peb tus kheej kev twb kev txuas pooler, uas yuav tsim, patched, nyob rau hauv uas cov teeb meem yuav tsum tau kho sai sai thiab uas, ntawm chav kawm, yuav tsum tau multi-threaded.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb teeb multithreading ua lub luag haujlwm tseem ceeb. Peb yuav tsum muaj peev xwm tswj tau cov nthwv dej ntawm kev sib txuas ntawm TLS tau zoo.

Txhawm rau ua qhov no, peb yuav tsum tsim ib lub tsev qiv ntawv cais hu ua Machinarium, uas yog tsim los piav qhia lub tshuab hais txog kev sib txuas hauv network raws li cov lej sib txuas. Yog tias koj saib ntawm libpq qhov chaws, koj yuav pom qee qhov kev hu xov tooj zoo nkauj uas tuaj yeem xa rov qab koj cov txiaj ntsig thiab hais tias, "Hu rau kuv tom qab. Tam sim no kuv muaj IO rau tam sim no, tab sis thaum IO ploj mus kuv yuav muaj lub nra ntawm lub processor. " Thiab qhov no yog ib qho txheej txheem ntau theem. Kev sib txuas lus network feem ntau piav qhia los ntawm lub xeev lub tshuab. Ntau txoj cai zoo li "Yog tias kuv tau txais ib pob ntawv header ntawm qhov loj N, tam sim no kuv tab tom tos N bytes," "Yog tias kuv xa ib pob ntawv SYNC, tam sim no kuv tab tom tos ib pob ntawv nrog cov txiaj ntsig metadata." Qhov tshwm sim yog ib qho nyuaj heev, counterintuitive code, zoo li yog cov maze tau hloov dua siab tshiab rau kab scan. Peb ua kom nws tsis yog lub xeev lub tshuab, tus programmer piav qhia txog txoj hauv kev tseem ceeb ntawm kev sib cuam tshuam hauv daim ntawv ntawm cov cai tseem ceeb. Nws tsuas yog hais tias hauv qhov tseem ceeb no koj yuav tsum tau ntxig rau qhov chaw uas qhov kev ua tiav yuav tsum tau cuam tshuam los ntawm kev tos cov ntaub ntawv los ntawm lub network, hla cov ntsiab lus ua tiav mus rau lwm qhov coroutine (ntsuab xov). Txoj hauv kev no zoo ib yam li qhov peb sau tseg txoj kev xav tau tshaj plaws hauv kev tshawb nrhiav hauv kab, thiab tom qab ntawd ntxiv cov ceg ntoo rau nws.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Yog li ntawd, peb muaj ib txoj xov uas TCP lees txais thiab round-robin hla TPC txuas rau ntau tus neeg ua haujlwm.

Hauv qhov no, txhua tus neeg siv kev sib txuas ib txwm khiav ntawm ib lub processor. Thiab qhov no tso cai rau koj ua kom nws cache-phooj ywg.

Thiab ntxiv rau, peb tau txhim kho me ntsis kev sau cov pob ntawv me me rau hauv ib pob ntawv loj txhawm rau txhawm rau txo cov kab ke TCP pawg.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tsis tas li ntawd, peb tau txhim kho kev lag luam sib koom ua ke hauv kev nkag siab tias Odyssey, thaum teeb tsa, tuaj yeem xa CANCEL thiab ROLLBACK thaum muaj kev sib txuas hauv network tsis ua haujlwm, piv txwv li yog tias tsis muaj leej twg tos qhov kev thov, Odyssey yuav qhia cov ntaub ntawv tsis txhob sim. ua kom tiav qhov kev thov uas yuav nkim cov khoom muaj nqis.

Thiab thaum twg ua tau, peb khaws kev sib txuas rau tib tus neeg siv khoom. Qhov no zam tsis tau rov nruab application_name_add_host. Yog tias qhov no ua tau, peb tsis tas yuav rov pib dua cov kev ntsuas uas xav tau rau kev kuaj mob.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb ua haujlwm hauv kev txaus siab ntawm Yandex.Cloud. Thiab yog tias koj siv cov kev tswj hwm PostgreSQL thiab muaj kev sib txuas pooler ntsia, koj tuaj yeem tsim cov ntaub ntawv rov ua dua sab nraud, piv txwv li, tawm ntawm peb, yog tias koj xav tau, siv cov ntaub ntawv rov ua dua. bouncer yuav tsis tso cov logical replication ntws tawm sab nraud.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Qhov no yog ib qho piv txwv ntawm kev teeb tsa kev rov ua dua tshiab.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tsis tas li ntawd, peb muaj kev txhawb nqa rau lub cev rov ua dua sab nraud. Hauv Huab, tau kawg, qhov no tsis yooj yim sua, vim tias tom qab ntawd pawg yuav muab cov ntaub ntawv ntau dhau ntawm nws tus kheej. Tab sis hauv koj qhov kev teeb tsa, yog tias koj xav tau lub cev rov ua dua los ntawm kev sib txuas pooler hauv Odyssey, qhov no yog qhov ua tau.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Odyssey muaj kev saib xyuas zoo nrog PgBouncer. Peb muaj tib lub console uas khiav yuav luag tag nrho tib cov lus txib. Yog tias muaj qee yam ploj lawm, xa daim ntawv thov rub, lossis tsawg kawg yog qhov teeb meem ntawm GitHub, thiab peb yuav ua tiav cov lus txib tsim nyog. Tab sis peb twb muaj lub luag haujlwm tseem ceeb ntawm PgBouncer console.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab, ntawm chav kawm, peb muaj yuam kev forwarding. Peb yuav rov qab qhov yuam kev qhia los ntawm cov ntaub ntawv. Koj yuav tau txais cov ntaub ntawv hais txog vim li cas koj tsis suav nrog hauv cov ntaub ntawv, thiab tsis yog tias koj tsis suav nrog nws.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Cov yam ntxwv no yog neeg xiam oob qhab yog tias koj xav tau 100% kev sib raug zoo nrog PgBouncer. Peb tuaj yeem coj tus cwj pwm zoo ib yam li Bouncer, tsuas yog nyob rau sab nyab xeeb.

Kev loj hlob

Ob peb lo lus hais txog Odyssey qhov chaws.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

https://github.com/yandex/odyssey/pull/66

Piv txwv li, muaj "Pause / Resume" cov lus txib. Lawv feem ntau yog siv los hloov kho cov ntaub ntawv. Yog tias koj xav tau hloov kho Postgres, tom qab ntawd koj tuaj yeem ncua nws hauv kev sib txuas pooler, ua pg_upgrade, tom qab ntawv rov pib dua. Thiab los ntawm tus neeg siv khoom sab nws yuav zoo li yog tias cov ntaub ntawv tsuas yog qeeb qeeb. Qhov kev ua haujlwm no tau coj los rau peb los ntawm cov neeg hauv zej zog. Nws tseem tsis tau khov, tab sis tsis ntev txhua yam yuav yog. (Twb khov)

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

https://github.com/yandex/odyssey/pull/73 - twb khov lawm

Tsis tas li ntawd, ib qho ntawm cov yam ntxwv tshiab hauv PgBouncer yog kev txhawb nqa rau SCRAM Authentication, uas kuj tau coj los rau peb los ntawm tus neeg tsis ua haujlwm hauv Yandex.Cloud. Ob leeg yog complex functionality thiab tseem ceeb.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Yog li ntawd, kuv xav qhia rau koj paub tias Odyssey yog ua los ntawm, yog tias koj tseem xav sau me ntsis code tam sim no.

Koj muaj lub hauv paus Odyssey, uas tso siab rau ob lub tsev qiv ntawv loj. Lub tsev qiv ntawv Kiwi yog qhov kev siv ntawm Postgres lus raws tu qauv. Ntawd yog, haiv neeg proto 3 ntawm Postgres yog cov qauv lus uas pem hauv ntej thiab sab nraub qaum tuaj yeem pauv. Lawv tau siv nyob rau hauv lub tsev qiv ntawv Kiwi.

Lub tsev qiv ntawv Machinarium yog lub tsev qiv ntawv siv xov. Ib qho me me ntawm Machinarium no yog sau ua lus sib dhos. Tab sis tsis txhob ntshai, tsuas muaj 15 kab xwb.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Odyssey architecture. Muaj lub tshuab tseem ceeb uas cov coroutines khiav. Lub tshuab no siv los lees txais TCP kev sib txuas thiab faib rau cov neeg ua haujlwm.

Ib tus neeg tuav haujlwm rau ntau tus neeg siv khoom tuaj yeem ua haujlwm hauv ib tus neeg ua haujlwm. Cov xov tseem ceeb tseem khiav lub console thiab ua cov haujlwm crone kom tshem tawm cov kev sib txuas uas tsis xav tau hauv pas dej ua ke.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Odyssey raug sim siv tus qauv Postgres xeem suite. Peb tsuas yog khiav nruab-xyuas los ntawm Bouncer thiab dhau ntawm Odyssey, peb tau txais ib qho null div. Muaj ntau qhov kev ntsuam xyuas ntsig txog hnub formatting uas tsis dhau ib yam nkaus hauv Bouncer thiab hauv Odyssey.

Tsis tas li ntawd, muaj ntau tus neeg tsav tsheb uas muaj lawv tus kheej kev sim. Thiab peb siv lawv cov kev xeem los sim Odyssey.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tsis tas li ntawd, vim peb qhov kev teeb tsa cascade, peb yuav tsum sim ntau cov pob khoom: Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey txhawm rau kom paub tseeb tias yog Odyssey xaus rau hauv ib qho ntawm cov ntu hauv cascade, nws tseem ua haujlwm. raws li peb xav.

Lub ncuav

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Peb siv Odyssey hauv kev tsim khoom. Thiab nws yuav tsis ncaj ncees yog tias kuv hais tias txhua yam ua haujlwm xwb. Tsis yog, uas yog, yog, tab sis tsis tas li. Piv txwv li, hauv kev tsim khoom txhua yam tsuas yog ua haujlwm, ces peb cov phooj ywg los ntawm PostgreSQL Professional tuaj thiab hais tias peb muaj lub cim xeeb xau. Lawv yeej yog, peb kho lawv. Tab sis nws yog qhov yooj yim.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tom qab ntawd peb pom tias qhov kev sib txuas pooler muaj cov kev sib txuas TLS tuaj thiab cov kev sib txuas TLS tawm. Thiab kev sib txuas yuav tsum tau daim ntawv pov thawj tus neeg siv khoom thiab daim ntawv pov thawj server.

Bouncer thiab Odyssey server daim ntawv pov thawj tau rov qab los ntawm lawv cov pcache, tab sis cov neeg siv daim ntawv pov thawj tsis tas yuav tsum tau rov qab los ntawm pcache, vim tias peb qhov Odyssey scalable thaum kawg khiav mus rau hauv kev ua haujlwm ntawm kev nyeem daim ntawv pov thawj no. Qhov no tau ua rau peb xav tsis thoob, vim nws tsis siv sijhawm ntev los tawm tsam. Thaum xub thawj nws scaled linearly, tab sis tom qab 20 tuaj ib txhij sib txuas qhov teeb meem no tshwm sim nws tus kheej.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Pluggable Authentication Method yog lub peev xwm los lees paub siv cov cuab yeej ua hauv Lunux. Hauv PgBouncer nws tau ua raws li txoj hauv kev uas muaj cov xov sib cais los tos cov lus teb los ntawm PAM thiab muaj cov xov tseem ceeb PgBouncer uas pabcuam kev sib txuas tam sim no thiab tuaj yeem hais kom lawv nyob hauv PAM xov.

Peb tsis tau siv qhov no rau ib qho laj thawj yooj yim. Peb muaj ntau cov xov. Vim li cas peb thiaj xav tau qhov no?

Qhov no tuaj yeem tsim teeb meem thaum kawg yog tias koj muaj PAM authentication thiab tsis yog-PAM authentication, ces lub nthwv dej loj ntawm PAM authentication tuaj yeem ncua qhov tsis yog PAM authentication. Nov yog ib qho ntawm cov uas peb tsis tau kho. Tab sis yog tias koj xav kho nws, koj tuaj yeem ua qhov no.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Lwm rake yog tias peb muaj ib txoj xov uas lees txais txhua qhov kev sib txuas tuaj. Thiab tom qab ntawd lawv raug xa mus rau lub pas dej ua haujlwm, qhov twg TLS tuav tes yuav tshwm sim.

Hauv qab kab, yog tias koj muaj kev sib koom ua ke ntawm 20 kev sib txuas hauv network, lawv txhua tus yuav raug lees txais. Thiab ntawm tus neeg siv khoom libpq yuav pib tshaj tawm lub sijhawm. Los ntawm lub neej ntawd nws zoo li yog 000 vib nas this.

Yog tias lawv txhua tus tsis tuaj yeem nkag mus rau hauv cov ntaub ntawv tib lub sijhawm, ces lawv tsis tuaj yeem nkag mus rau hauv cov ntaub ntawv, vim tias txhua qhov no tuaj yeem raug them los ntawm kev rov ua dua tshiab.

Peb tuaj txog qhov xaus tias peb tau theej cov tswv yim los ntawm PgBouncer ntawm no nrog qhov tseeb tias peb tau cuam tshuam tus naj npawb ntawm TCP kev sib txuas uas peb txais.

Yog tias peb pom tias peb lees txais kev sib txuas, tab sis thaum kawg lawv tsis muaj sijhawm los tuav tes, peb muab lawv tso rau hauv kab kom lawv tsis txhob nkim CPU cov peev txheej. Qhov no ua rau qhov tseeb tias kev sib tuav tes ib txhij yuav tsis ua rau txhua qhov kev sib txuas uas tau tuaj txog. Tab sis tsawg kawg ib tus neeg yuav nkag mus rau hauv cov ntaub ntawv, txawm tias lub nra hnyav heev.

roadmap

Koj xav pom dab tsi yav tom ntej hauv Odyssey? Peb npaj tau dab tsi los txhim kho peb tus kheej thiab peb xav tau dab tsi los ntawm zej zog?

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Raws li lub Yim Hli 2019.

Nov yog qhov Odyssey roadmap zoo li thaum Lub Yim Hli:

  • Peb xav tau SCRAM thiab PAM authentication.
  • Peb xav xa cov ntawv thov rau kev tos txais.
  • Kuv xav rov pib dua online.
  • Thiab lub peev xwm los nres ntawm lub server.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Ib nrab ntawm daim ntawv qhia no tau ua tiav, thiab tsis yog los ntawm peb. Thiab qhov no yog qhov zoo. Yog li cia peb tham txog dab tsi tseem tshuav thiab ntxiv ntxiv.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Hais txog kev nyeem ntawv nkaus xwb rau cov lus nug rau standby? Peb muaj replicas uas yuav cias cua sov cua tsis muaj executing thov. Peb xav tau lawv los muab kev poob qis thiab hloov pauv. Nyob rau hauv cov ntaub ntawv ntawm cov teeb meem nyob rau hauv ib tug ntawm cov ntaub ntawv chaw zov me nyuam, kuv xav nyob rau hauv lawv nrog ib co pab tau hauj lwm. Vim tias peb tsis tuaj yeem teeb tsa tib lub hauv paus processors, tib lub cim xeeb sib txawv, vim tias lwm yam kev rov ua dua yuav tsis ua haujlwm.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Hauv txoj cai, hauv Postgres, pib ntawm 10, nws muaj peev xwm hais meej session_attrs thaum txuas. Koj tuaj yeem sau tag nrho cov database hosts hauv kev sib txuas thiab hais tias yog vim li cas koj thiaj li mus rau database: sau lossis nyeem nkaus xwb. Thiab tus neeg tsav tsheb nws tus kheej yuav xaiv thawj tus tswv hauv cov npe uas nws nyiam tshaj plaws, uas ua tiav cov cai ntawm session_attrs.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Tab sis qhov teeb meem nrog txoj hauv kev no yog tias nws tsis tswj qhov kev rov ua dua lag luam. Tej zaum koj yuav muaj qee qhov kev hloov pauv uas tau poob qis rau lub sijhawm tsis txaus siab rau koj qhov kev pabcuam. Txhawm rau ua kom muaj kev ua tiav tag nrho ntawm kev nyeem cov lus nug ntawm tus qauv, peb tseem ceeb yuav tsum tau txhawb Odyssey lub peev xwm tsis khiav thaum nws nyeem tsis tau.

Odyssey yuav tsum mus rau hauv cov ntaub ntawv ib ntus thiab thov kom rov ua qhov nrug deb ntawm thawj. Thiab yog tias nws tau mus txog tus nqi txwv, tsis txhob tso cai tshiab rau hauv cov ntaub ntawv, qhia tus neeg siv khoom tias nws yuav tsum tau rov pib kev sib txuas thiab, tejzaum nws, xaiv lwm tus tswv tsev los ua cov lus thov. Qhov no yuav tso cai rau cov ntaub ntawv rov qab sai sai thiab rov qab rov qab los teb nrog kev thov.

Nws yog ib qho nyuaj rau muab lub sijhawm rau kev siv, vim nws yog qhov qhib. Tab sis, kuv vam tias, tsis yog 2,5 xyoo zoo li kuv cov npoj yaig los ntawm PgBouncer. Nov yog qhov tshwj xeeb uas kuv xav pom hauv Odyssey.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Hauv zej zog, tib neeg nug txog kev txhawb nqa rau cov lus npaj. Tam sim no koj tuaj yeem tsim cov lus npaj ua ob txoj hauv kev. Ua ntej, koj tuaj yeem ua tiav cov lus txib SQL, uas yog "npaj". Yuav kom nkag siab txog SQL cov lus txib no, peb yuav tsum kawm kom nkag siab SQL ntawm Bouncer sab. Qhov no yuav yog ib qho overkill, vim nws yog overkill, vim peb xav tau tag nrho cov parser. Peb tsis tuaj yeem txheeb xyuas txhua SQL hais kom ua.

Tab sis muaj ib nqe lus npaj nyob rau hauv cov lus raws tu qauv ntawm proto3. Thiab qhov no yog qhov chaw thaum cov ntaub ntawv uas cov lus npaj tau raug tsim los hauv cov qauv tsim. Thiab peb tuaj yeem txhawb kev nkag siab tias ntawm qee qhov kev sib txuas ntawm server tus neeg thov kom tsim cov lus npaj. Thiab txawm tias qhov kev lag luam raug kaw, peb tseem yuav tsum muaj kev sib txuas ntawm cov neeg rau zaub mov thiab cov neeg siv khoom.

Tab sis ntawm no muaj qhov tsis sib xws hauv kev sib tham tshwm sim, vim tias ib tus neeg hais tias koj yuav tsum nkag siab tias cov lus npaj tau zoo li cas tus neeg siv tau tsim thiab qhia txog kev sib txuas ntawm server ntawm txhua tus neeg siv khoom uas tsim qhov kev sib txuas ntawm server, piv txwv li, leej twg tsim cov lus npaj no.

Andres Freund tau hais tias yog tias tus neeg siv khoom tuaj rau koj uas twb tau tsim cov lus qhia zoo li no hauv lwm qhov kev sib txuas ntawm server, ces tsim nws rau nws. Tab sis nws zoo li tsis raug me ntsis los ua cov lus nug hauv cov ntaub ntawv es tsis txhob siv tus neeg siv khoom, tab sis los ntawm qhov pom ntawm tus tsim tawm uas sau cov txheej txheem rau kev cuam tshuam nrog cov ntaub ntawv, nws yuav yooj yim yog tias nws tsuas yog muab kev sib txuas hauv network uas. muaj xws li cov lus nug npaj.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Thiab ib qho ntxiv uas peb xav tau los siv. Peb tam sim no muaj kev saib xyuas tau zoo nrog PgBouncer. Peb tuaj yeem xa rov qab cov lus nug nruab nrab lub sijhawm ua tiav. Tab sis lub sij hawm nruab nrab yog qhov nruab nrab kub hauv tsev kho mob: qee qhov txias, qee qhov sov - qhov nruab nrab, txhua tus neeg noj qab haus huv. Tsis muaj tseeb.

Peb yuav tsum tau siv kev txhawb nqa rau feem pua ​​​​uas yuav qhia tau tias muaj cov lus nug qeeb uas ua rau cov khoom siv tsis zoo thiab ua rau kev soj ntsuam ntau dua.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Qhov tseem ceeb tshaj plaws yog qhov kuv xav tau version 1.0 (Version 1.1 twb tau tso lawm). Qhov tseeb yog tias Odyssey tam sim no nyob rau hauv version 1.0rc, piv txwv li tso tus neeg sib tw. Thiab tag nrho cov teeb meem uas kuv teev tau kho nrog raws nraim tib version, tshwj tsis yog rau lub cim xeeb xau.

Dab tsi yuav version 1.0 txhais tau rau peb? Peb tab tom dov tawm Odyssey rau peb lub hauv paus. Nws twb tau khiav ntawm peb cov databases, tab sis thaum nws ncav cuag 1 thov ib ob, peb tuaj yeem hais tias qhov no yog qhov tso tawm version thiab qhov no yog ib qho version uas tuaj yeem hu ua 000.

Ntau tus neeg hauv zej zog tau nug tias version 1.0 suav nrog ncua thiab SCRAM. Tab sis qhov no yuav txhais tau tias peb yuav tsum tau dov tawm cov ntawv txuas ntxiv mus rau kev tsim khoom, vim tias tsis muaj SCRAM lossis ncua tsis tau raug tua. Tab sis, feem ntau yuav, qhov teeb meem no yuav daws tau sai heev.

Odyssey roadmap: dab tsi ntxiv peb xav tau los ntawm kev sib txuas pooler. Andrey Borodin (2019)

Kuv tab tom tos koj daim ntawv thov rub. Kuv kuj xav hnov ​​tias koj muaj teeb meem dab tsi nrog Bouncer. Wb tham txog lawv. Tej zaum peb tuaj yeem siv qee yam haujlwm uas koj xav tau.

Qhov no yog qhov kawg ntawm kuv, Kuv xav mloog koj. Ua tsaug!

Lus nug

Yog tias kuv teeb kuv tus kheej application_name, nws puas yuav raug xa mus kom raug, suav nrog hauv kev sib pauv pauv hauv Odyssey?

Odyssey los yog Bouncer?

Hauv Odyssey. Hauv Bouncer nws raug pov tseg.

Peb mam li ua ib txheej.

Thiab yog tias kuv qhov kev sib txuas tiag tiag dhia mus rau lwm qhov kev sib txuas, puas yuav kis tau?

Peb yuav ua ib txheej ntawm tag nrho cov tsis muaj nyob rau hauv daim ntawv teev npe. Kuv tsis tuaj yeem qhia yog tias application_name nyob hauv daim ntawv teev npe no. Kuv xav tias kuv pom nws nyob ntawd. Peb yuav teeb tag nrho cov kev txwv tib yam. Nrog ib qho kev thov, lub teeb yuav ua txhua yam uas tau teeb tsa los ntawm tus neeg siv khoom thaum lub sijhawm pib.

Ua tsaug, Andrey, rau daim ntawv qhia! Daim ntawv qhia zoo! Kuv zoo siab tias Odyssey tab tom txhim kho sai thiab nrawm dua txhua feeb. Kuv xav mus ntxiv li no. Peb twb tau hais kom koj muaj ntau cov ntaub ntawv-qhov kev sib txuas kom Odyssey tuaj yeem txuas rau cov ntaub ntawv sib txawv ib txhij, piv txwv li tus qhev tus tswv, thiab tom qab ntawd txuas mus rau tus tswv tshiab tom qab ua tsis tiav.

Yog lawm, kuv zoo li nco ntsoov qhov kev sib tham no. Tam sim no muaj ntau qhov chaw khaws cia. Tab sis tsis muaj kev hloov ntawm lawv. Ntawm peb sab, peb yuav tsum soj ntsuam cov neeg rau zaub mov tias nws tseem muaj sia nyob thiab nkag siab tias qhov ua tsis tiav tau tshwm sim, leej twg yuav hu rau pg_recovery. Kuv muaj txuj kev nkag siab tias peb tsis tau tuaj cuag tus tswv. Thiab peb yuav tsum to taub qee yam los ntawm qhov yuam kev lossis dab tsi? Ntawd yog, lub tswv yim yog nthuav, nws tab tom tham. Sau cov lus qhia ntxiv. Yog tias koj muaj cov neeg ua haujlwm paub C, ces qhov ntawd zoo heev.

Qhov teeb meem ntawm kev scaling hla replicas kuj yog qhov txaus siab rau peb, vim hais tias peb xav ua kom kev saws me nyuam ntawm replicated pawg kom yooj yim li sai tau rau daim ntawv thov developers. Tab sis ntawm no kuv xav paub ntau ntxiv, piv txwv li, yuav ua li cas nws thiaj li ua tau zoo.

Cov lus nug kuj yog hais txog cov replicas. Nws hloov tawm hais tias koj muaj ib tug tswv thiab ob peb replicas. Thiab nws yog qhov tseeb tias lawv mus rau qhov hloov pauv tsawg dua rau tus tswv rau kev sib txuas, vim tias lawv yuav muaj qhov sib txawv. Koj tau hais tias qhov sib txawv ntawm cov ntaub ntawv yuav yog qhov uas nws yuav tsis txaus siab rau koj txoj kev lag luam thiab koj yuav tsis mus txog rau thaum nws rov ua dua. Nyob rau tib lub sijhawm, yog tias koj tsis mus rau qhov ntawd ntev, thiab pib mus, ces cov ntaub ntawv uas xav tau yuav tsis muaj tam sim ntawd. Ntawd yog, yog tias peb pheej mus rau tus tswv, ces lub cache muaj warmed, tab sis nyob rau hauv lub replica lub cache lags me ntsis.

Yog nws muaj tseeb. Lub pcache yuav tsis muaj cov ntaub ntawv thaiv koj xav tau, lub cache tiag tiag yuav tsis muaj cov ntaub ntawv hais txog cov ntxhuav koj xav tau, cov phiaj xwm yuav tsis muaj cov lus nug parsed, yuav tsis muaj dab tsi hlo li.

Thiab thaum koj muaj qee yam pawg, thiab koj ntxiv ib qho tshiab replica nyob rau ntawd, ces thaum nws pib, txhua yam yog phem nyob rau hauv nws, piv txwv li nws nce nws cache.

Kuv tau txais lub tswv yim. Txoj hauv kev kom raug yuav yog los khiav ib feem me me ntawm cov lus nug ntawm tus qauv ua ntej, uas yuav ua kom sov lub cache. Hais lus kwv yees, peb muaj ib qho xwm txheej uas peb yuav tsum lag qab tus tswv tsis pub dhau 10 vib nas this. Thiab qhov xwm txheej no tsis suav nrog hauv ib nthwv dej, tab sis ua haujlwm zoo rau qee tus neeg siv khoom.

Yog, nce hnyav.

Qhov no yog ib lub tswv yim zoo. Tab sis ua ntej peb yuav tsum siv qhov kev kaw no. Ua ntej peb yuav tsum tau tua, thiab tom qab ntawd peb mam li xav txog yuav ua li cas qhib. Qhov no yog ib tug zoo feature los pab smoothly.

Nginx muaj qhov kev xaiv no slowly start nyob rau hauv ib pawg rau lub server. Thiab nws maj mam nce lub load.

Yog, lub tswv yim zoo, peb yuav sim nws thaum peb mus txog nws.

Tau qhov twg los: www.hab.com

Ntxiv ib saib