Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I lana lipoti, Andrey Borodin o le a taʻu atu ia te oe le auala na latou amanaia ai le poto masani o le faʻaogaina o le PgBouncer pe a mamanuina le pooler fesoʻotaʻiga. Odyssey, a o latou faʻataʻavaleina i fafo i le gaosiga. E le gata i lea, o le a tatou talanoaina pe o le a le galuega a le puller tatou te fia vaʻai i ai i ni faʻamatalaga fou: e taua mo i tatou e le gata ina faʻafetaui o tatou manaʻoga, ae ia atiaʻe le faʻalapotopotoga faʻaoga. Odyssey.

Vitio:

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Talofa uma! O lo'u igoa o Andrew.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I Yandex, ou te atiaʻe faʻamaumauga o punaoa tatala. Ma o aso nei ua i ai se tatou autu e uiga i sootaga pooler sootaga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Afai e te iloa pe faʻafefea ona valaʻau le pooler sootaga i le gagana Rusia, ona taʻu mai lea ia te aʻu. Ou te matua manaʻo lava e suʻe se faaupuga faʻapitoa lelei e tatau ona faʻavaeina i tusitusiga faʻapitoa.

O le autu e fai si faigata, aua i le tele o faʻamaumauga o loʻo faʻapipiʻiina le pooler fesoʻotaʻiga ma e te le manaʻomia foi ona e iloa. Ioe, o loʻo i ai nisi tulaga i soʻo se mea, ae i Postgres e le aoga i lena auala. Ma i le tutusa (i HighLoad ++ 2019) o loʻo i ai se lipoti a Nikolai Samokhvalov e uiga i le faʻatulagaina o fesili i Postgres. Ma e pei ona ou malamalama i ai, o tagata na o mai iinei ua uma ona faʻatulagaina lelei a latou fesili, ma o tagata ia o loʻo feagai ma faʻafitauli e seasea faʻaogaina e fesoʻotaʻi ma le fesoʻotaʻiga ma le faʻaogaina o punaoa. Ma i nisi nofoaga e mafai ona fai si faigata i le uiga o faafitauli e le o iloagofie.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Yandex ei ai Postgres. Tele auaunaga Yandex e nonofo i Yandex.Cloud. Ma e tele a matou petabytes o faʻamaumauga e maua ai le itiiti ifo ma le miliona talosaga i le sekone i Postgres.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma matou te tuʻuina atu se faʻaputuga masani mo auʻaunaga uma - o le autu autu lea o le node, o faʻataʻitaʻiga masani e lua (synchronous ma asynchronous), faʻamaumauga, faʻavasegaina o talosaga faitau i luga o le kopi.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O node taʻitasi o le Postgres, lea, faʻaopoopo i le Postgres ma le mataʻituina o faiga, o loʻo faʻapipiʻiina ai foʻi se fesoʻotaʻiga pooler. E fa'aogaina le vaitu'elega mo pa ma lona fa'amoemoe autu.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le a le fa'amoemoe autu o le pooler so'oga?

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Postgres faʻaaogaina se faʻataʻitaʻiga faʻataʻitaʻiga pe a galue ma se faʻamaumauga. O lona uiga e tasi le feso'ota'iga e tasi le faagasologa, tasi le Postgres backend. Ma i totonu o lenei pito i tua o loʻo i ai le tele o faʻamaufaʻailoga eseese, e fai si taugata e fai ese mo fesoʻotaʻiga eseese.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E le gata i lea, o le Postgres code o loʻo i ai se laina e taʻua o le procArray. O lo'o i ai fa'amatalaga autu e uiga i feso'ota'iga feso'ota'iga. Ma e toetoe lava o faʻataʻitaʻiga faʻasologa uma o le procArray e iai le lavelave laina; latou te taʻavale i luga o le tele o fesoʻotaʻiga fesoʻotaʻiga. Ose ta'amilosaga vave tele, ae o le tele o feso'ota'iga feso'ota'iga o lo'o o'o mai e fai si taugata. Ma a oʻo ina fai si taugata, e mafai ona e faʻamutaina se tau maualuga tele mo le tele o fesoʻotaʻiga fesoʻotaʻiga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E 3 auala e mafai ai:

  • I le itu o le talosaga.
  • I le itu fa'amaumauga.
  • Ma i le va, o lona uiga, ituaiga uma o tuufaatasiga.

O le mea e leaga ai, o lo'o fa'ata'atia nei le vaita'ele ua fausia i totonu. O a matou uo i le PostgreSQL Professional latou te faia lenei mea. O afea e aliali mai ai e faigata ona valoia. Ma o le mea moni, e lua a matou fofo mo le tusiata e filifili mai ai. O vaita'ele i itu o talosaga ma vaita'i sui.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ole vaita'ele ile itu ole talosaga ole auala pito sili lea ona faigofie. Ma toetoe lava o aveta'avale uma a le au faipisinisi e tu'uina atu ia te oe se auala: tuʻuina atu le faitau miliona o au fesoʻotaʻiga i le code e pei o le tele o fesoʻotaʻiga i le database.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le faʻafitauli e tulaʻi mai o le i ai o se taimi e te manaʻo ai e fua le pito i tua, e te manaʻo e faʻapipiʻi i le tele o masini masini.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ona e iloa lea o loʻo i ai le tele o isi sone avanoa, tele nofoaga autu o faʻamatalaga. Ma o le auala o le tu'ufa'atasia o tagata o tausia e ta'ita'i atu i numera tetele. O mea tetele e tusa ma le 10 fesoʻotaʻiga. O le pito lea e mafai ona galue masani.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Afai tatou te talanoa e uiga i sui poolers, o lona uiga e lua poolers e mafai ona faia le tele o mea. E le na'o latou e fa'atūina vai. O i latou o poolers + sili atu galuega faʻalelei. Lenei pgpool и Crunchy-Proxy.

Ae, o le mea e leaga ai, e le o tagata uma e manaʻomia lenei faʻaopoopoga galuega. Ma e o'o atu ai i le mea moni e na'o le poolers e lagolagoina le tu'ufa'atasiga o sauniga, o lona uiga o le tasi tagata fa'atau mai, tasi le tagata o lo'o alu i fafo i le database.

E le fetaui lelei lenei mea mo a tatou faʻamoemoega, o lea matou te faʻaogaina ai le PgBouncer, lea e faʻaogaina ai le faʻaogaina o fefaʻatauaiga, o lona uiga o fesoʻotaʻiga server e fetaui ma fesoʻotaʻiga o tagata faʻatau mo naʻo le umi o le fefaʻatauaiga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma i la tatou galuega mamafa, e moni lenei mea. Ae e i ai nai faafitauli.Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O faʻafitauli e amata pe a e manaʻo e suʻesuʻe se vasega, aua o au fesoʻotaʻiga uma e faʻapitonuʻu. O tagata uma na o mai ma se fa'alavelave i tua ma i se auala e faigata ai ona su'eina le sauniga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ioe e mafai ona e faʻaogaina application_name_add_host. Ole auala lea ile itu Bouncer e fa'aopoopo ai se tuatusi IP ile application_name. Ae o le application_name ua setiina e se isi fesoʻotaʻiga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I luga o lenei kalafi, o le laina samasama o talosaga moni, ma le laina lanumoana o talosaga e lele i totonu o le database. Ma o lenei eseesega o le faʻapipiʻiina tonu lea o le application_name, lea e manaʻomia naʻo le suʻeina, ae e leʻo saoloto.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E le gata i lea, i Bouncer e le mafai ona e faʻatapulaʻaina le tasi vaitaele, o lona uiga o le numera o fesoʻotaʻiga faʻamaumauga mo le tagata faʻapitoa, mo faʻamaumauga patino.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le a le mea e tau atu i ai? O loʻo i ai sau auaunaga faʻapipiʻiina na tusia i le C ++ ma i se mea lata ane i se tamai auaunaga i luga o se node e le faia se mea leaga i le database, ae o lana avetaavale e valea. E tatalaina le 20 fesoʻotaʻiga ma o isi mea uma o le a faʻatali. E oo lava i lau code e masani lava.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le mea moni, na matou tusia se tamai patch mo Bouncer na faʻaopoopoina lenei faʻatulagaga, o lona uiga faʻatapulaʻaina tagata i le vaitaele.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E mafai ona faia lenei mea i le itu Postgres, o lona uiga, faʻatapulaʻa matafaioi i totonu o faʻamaumauga i le numera o fesoʻotaʻiga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ae e te leiloa le tomai e malamalama ai pe aisea e leai ai ni au fesoʻotaʻiga i le server. E le lafoina e le PgBouncer se fesoʻotaʻiga sese, e faʻafoʻi mai i taimi uma faʻamatalaga tutusa. Ma e le mafai ona e malamalama: masalo ua suia lau faʻaupuga, atonu na leiloa le faʻamaumauga, masalo o loʻo i ai se mea e sese. Ae leai se suʻesuʻega. Afai e le mafai ona faatuina se sauniga, e te le iloa pe aisea e le mafai ai ona faatuina.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I se taimi patino, e te vaʻavaʻai i kalafi talosaga ma vaʻai e le o galue le talosaga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Va'ai i le pito i luga ma va'ai o Bouncer e tasi le filo. O se suiga lea i le soifuaga o le tautua. E te iloa o loʻo e sauni e faʻavasega le faʻamaumauga i totonu o le tausaga ma le afa, ma e tatau ona e fuaina le pooler.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ua matou oʻo mai i le faaiuga matou te manaʻomia nisi PgBouncers.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

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

Bouncer ua fai sina patch.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma na latou faia ina ia mafai ona siitia nisi Bouncers e ala i le toe faʻaaogaina o le TCP port. Ma o le faiga faʻaogaina e otometi lava ona faʻafeiloaʻi fesoʻotaʻiga TCP o loʻo oʻo mai i le va oi latou e faʻaaoga ai le round-robin.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E manino lenei mea i tagata fa'atau, o lona uiga e foliga mai e tasi sau Bouncer, ae o lo'o i ai au vaevaega o feso'ota'iga i le va o Bouncers ta'avale.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma i se taimi patino e mafai ona e matauina o nei 3 Bouncers taʻitasi 'ai a latou 'autu e 100%. E mana'omia ni nai Bouncers. Aisea?

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Aua e iai lau TLS. E iai sau feso'ota'iga fa'ailoga. Ma afai e te faʻailogaina Postgres ma e aunoa ma le TLS, o le ae iloa ai o le numera o fesoʻotaʻiga faʻamautu e pa'ū i le toetoe lava lua faʻatonuga o le tele ma faʻamalamalamaga faʻamaonia, aua o le TLS limalima e faʻaaogaina punaoa CPU.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma i le pito i luga e mafai ona e vaʻaia ni nai galuega faʻataʻitaʻi e faʻatinoina pe a iai se galu o fesoʻotaʻiga o loʻo oʻo mai. Talu ai e mafai ona fesuia'i la tatou vaega muamua i le va o sone avanoa, o se galu o feso'ota'iga o lo'o o se tulaga masani lava. O lona uiga, mo nisi mafuaaga na le maua ai le matua tuai, o le uta atoa na lafoina i se isi nofoaga autu o faʻamatalaga. O le a latou o mai uma e faatalofa i le TLS i le taimi e tasi.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma o le tele o TLS lululima atonu e le toe faʻafeiloaʻi ia Bouncer, ae o le a oomi lona faai. Ona o le taimi e malolo ai, o le galu o fesoʻotaʻiga o loʻo oʻo mai e mafai ona le faʻafefe. Afai e te toe taumafai i le fa'avae e aunoa ma se fa'alavelave fa'afuase'i, o le a le toe o'o mai pea i se galu fa'atasi.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O se faʻataʻitaʻiga lea o le 16 PgBouncers o loʻo utaina 16 cores i le 100%.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Na matou o mai i le cascade PgBouncer. Ole fa'atonuga sili lea e mafai ona maua ile tatou uta ile Bouncer. O tatou Bouncers fafo e faʻaaogaina mo le TCP lululima, ma totonu Bouncers e faʻaaogaina mo le tuʻufaʻatasia moni, ina ia aua neʻi vaevae tele fesoʻotaʻiga fafo.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I lenei faʻatulagaga, e mafai ona toe faʻaleleia lelei. E mafai ona e toe amata uma nei 18 Bouncers ta'itasi. Ae o le faatumauina o sea faatulagaga e fai si faigata. Sysadmins, DevOps, ma tagata o loʻo nafa ma lenei 'auʻaunaga o le a le fiafia tele i lenei faʻatulagaga.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E foliga mai o a tatou faʻaleleia uma e mafai ona faʻalauiloaina i punaoa tatala, ae e le o lagolagoina lelei le Bouncer. Mo se faʻataʻitaʻiga, o le mafai ona faʻatautaia le tele o PgBouncers i luga o le tasi uafu na faia i le masina talu ai. Sa i ai se talosaga toso ma lenei vaega i nai tausaga ua mavae.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

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

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

Po o se isi faataitaiga. I Postgres, e mafai ona e faalēaogāina se talosaga o loʻo faʻagasolo e ala i le tuʻuina atu o le mealilo i se isi fesoʻotaʻiga e aunoa ma se faʻamaoniga le manaʻomia. Ae o nisi tagata faʻatau na o le lafoina o se TCP reset, o lona uiga latou te motusia le fesoʻotaʻiga fesoʻotaʻiga. O le a le mea e fai e Bouncer? Na te le faia se mea. O le a faʻaauau pea ona faʻatinoina le talosaga. Afai na e mauaina se numera tele o fesoʻotaʻiga na fatuina ai se faʻamaumauga ma ni talosaga laiti, ona na o le motusia o le fesoʻotaʻiga mai Bouncer o le a le lava; e te manaʻomia foʻi e faʻamaeʻaina na talosaga o loʻo tamoʻe i totonu o le database.

Ua uma ona fa'apipi'i ma o lenei fa'afitauli e le'i tu'ufa'atasia i luga ole alia ole Bouncer.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma o lea na matou oʻo mai ai i le faaiuga e manaʻomia a matou lava fesoʻotaʻiga pooler, lea o le a atiaʻe, faʻapipiʻi, lea e mafai ai ona vave faʻasaʻo faʻafitauli ma o le mea moni, e tatau ona faʻapipiʻi tele.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Matou te setiina le multithreading e fai ma galuega autu. E manaʻomia le mafai ona tatou taulimaina lelei le galu o fesoʻotaʻiga TLS o loʻo oʻo mai.

Ina ia faia lenei mea, e tatau ona matou atiaʻe se isi faletusi e taʻua o le Machinarium, lea ua mamanuina e faʻamatala ai tulaga o masini o se fesoʻotaʻiga fesoʻotaʻiga o se faʻasologa faʻasologa. Afai e te vaʻai i le libpq source code, o le a e vaʻai i ni telefoni lavelave e mafai ona toe faʻafoʻi atu ia te oe se iʻuga ma fai mai, "Valaau aʻu mulimuli ane. O le taimi nei o loʻo ia te aʻu le IO mo le taimi nei, ae a alu ese le IO o le ai ai sau uta i luga o le processor. Ma o se polokalame lea e tele-tulaga. Feso'ota'iga feso'ota'iga e masani ona fa'amatalaina e se masini a le setete. Le tele o tulafono e pei o le "Afai na ou mauaina muamua se ulutala paʻu o le tele N, o lea o loʻo ou faʻatali mo N bytes," "Afai ou te lafoina se SYNC packet, o lea o loʻo ou faʻatali mo se pepa o loʻo i ai metadata taunuuga." O le i'uga o se fa'ailoga faigata, fa'afeagai, peisea'i ua liua le paso ile fa'asologa o laina. Na matou faia ina ia le o se masini a le setete, e faʻamatalaina e le polokalame le ala autu o fegalegaleaiga i le tulaga o le tulafono masani masani. Pau lava le mea i lenei tulafono faʻapitoa e te manaʻomia e faʻapipiʻi ai nofoaga e manaʻomia ai le faʻalavelaveina o le faʻasologa o faʻasologa e ala i le faʻatali mo faʻamatalaga mai le fesoʻotaʻiga, pasi atu le faʻatinoga o le faʻatinoga i se isi coroutine (lanu lanumeamata). O lenei faiga e talitutusa ma le mea moni tatou te tusia i lalo le auala e sili ona faʻamoemoeina i le paso i se laina, ona faʻaopoopo lea o lala i ai.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le i'uga, e tasi le matou filo e talia e le TCP ma fa'asolo atu le feso'ota'iga TPC i le tele o tagata faigaluega.

I lenei tulaga, o feso'ota'iga ta'itasi o tagata o tausia e fa'aauau pea i luga o le masini e tasi. Ma o lenei mea e mafai ai ona e faia le cache-friendly.

Ma e le gata i lea, ua matou faʻaleleia teisi le aoina o tamaʻi pepa i totonu o le tasi pusa lapoa ina ia mafai ai ona faʻamalieina le TCP stack.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E le gata i lea, ua matou faʻaleleia atili le tuʻufaʻatasia o fefaʻatauaiga i le uiga o Odyssey, pe a faʻatulagaina, e mafai ona auina atu CANCEL ma ROLLBACK i le tulaga o se fesoʻotaʻiga fesoʻotaʻiga le manuia, o lona uiga afai e leai se tasi o loʻo faʻatali mo se talosaga, o le a taʻu atu e Odyssey le database e aua le taumafai e fai. faataunuuina le talosaga e ono faamaimauina punaoa taua.

Ma so'o se taimi e mafai ai, matou te fa'amauina so'otaga i le tagata lava e tasi. Ole mea lea e 'alofia ai le toe fa'apipi'i application_name_add_host. Afai e mafai lenei mea, ona tatou le toe faʻaopoopoina lea o mea e manaʻomia mo suʻesuʻega.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Matou te galulue i le manuia o Yandex.Cloud. Ma afai e te faʻaogaina le PostgreSQL faʻatonutonu ma faʻapipiʻi se pooler fesoʻotaʻiga, e mafai ona e faia se faʻataʻitaʻiga talafeagai i fafo, o lona uiga, tuʻu mai matou, pe a e manaʻo ai, faʻaaoga le faʻaoga talafeagai. O le a le fa'amatu'u atu e Bouncer le fa'asologa o fa'asologa talafeagai i fafo.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O se fa'ata'ita'iga lea o le fa'atulagaina o fa'asologa fa'atatau.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E le gata i lea, o loʻo i ai le matou lagolago mo le faʻaogaina o le tino i fafo. I totonu o le Ao, ioe, e le mafai, aua o le a tuʻuina atu e le fuifui ia te oe le tele o faʻamatalaga e uiga ia te ia lava. Ae i au faʻapipiʻi, afai e te manaʻomia le faʻaogaina o le tino e ala i le pooler sootaga i Odyssey, e mafai.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Odyssey o loʻo i ai le mataʻituina atoatoa ma le PgBouncer. O lo'o ia i matou le fa'amafanafanaga tutusa e fa'atino toetoe lava o fa'atonuga tutusa uma. Afai o loʻo misi se mea, lafo se talosaga toso, poʻo se faʻafitauli ile GitHub, ma o le a matou faʻamaeʻaina poloaiga talafeagai. Ae ua uma ona i ai a matou galuega autu a le PgBouncer console.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma, ioe, o loʻo i ai a matou mea sese e lafo atu. O le a matou toe faafoi le mea sese na lipotia mai e le database. O le ae mauaina faʻamatalaga e uiga i le mafuaʻaga e te le o aofia ai i totonu o le database, ae le na o oe e te le o aofia ai.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O lenei vaega e le atoatoa pe a e manaʻomia le 100% fetaui ma le PgBouncer. E mafai ona tatou amio tutusa e pei o Bouncer, na o le i ai i le itu saogalemu.

Atinaʻe

O nai upu e uiga i le Odyssey source code.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

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

Mo se faʻataʻitaʻiga, o loʻo i ai faʻatonuga "Taofi / Resume". E masani ona faʻaaogaina e faʻafou ai faʻamaumauga. Afai e te manaʻomia le faʻafouina o Postgres, ona mafai lea ona e taofi i le pooler fesoʻotaʻiga, fai pg_upgrade, ona toe amata lea. Ma mai le itu a le tagata o tausia o le a foliga mai o loʻo faʻagesegese le faʻamaumauga. O lenei fa'atinoga na aumai ia i matou e tagata mai le nu'u. E le'i aisa o ia, ae e le o toe umi ae uma mea uma. (Ua uma ona aisa)

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

https://github.com/yandex/odyssey/pull/73 - ua uma ona aisa

E le gata i lea, o se tasi o foliga fou i le PgBouncer o le lagolago mo le SCRAM Authentication, lea na aumai foi ia i matou e se tagata e le faigaluega i Yandex.Cloud. O mea uma e lua e lavelave ma taua.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le mea lea, ou te fia taʻu atu ia te oe le mea o loʻo faia ai Odyssey, pe afai e te manaʻo foi e tusi sina code i le taimi nei.

O lo'o ia te oe le Odyssey source base, lea e fa'alagolago i faletusi autu e lua. O le faletusi Kiwi o se faʻatinoga o le Postgres message protocol. O lona uiga, o le native proto 3 o Postgres o feʻau masani e mafai e pito i luma ma pito i tua ona fesuiaʻi. O lo'o fa'atinoina i le faletusi a le Kiwi.

O le faletusi Machinarium o se faletusi faʻatinoina filo. O se vaega itiiti o lenei Machinarium o loʻo tusia i le gagana faʻapotopotoga. Ae aua e te popole, e na o le 15 laina.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Odyssey fausaga. O lo'o i ai se masini autu o lo'o fa'agasolo ai coroutines. O lenei masini e faʻaaogaina le taliaina o fesoʻotaʻiga TCP ulufale ma tufatufa atu i tagata faigaluega.

E mafai e se tagata e taulimaina le tele o tagata faigaluega i totonu o le tagata faigaluega e tasi. O le filo autu o loʻo faʻatautaia foi le faʻamafanafanaga ma le gaioiga o galuega crone e tape ai fesoʻotaʻiga e le o toe manaʻomia i totonu o le vaitaele.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Odyssey e faʻataʻitaʻiina e faʻaaoga ai le suʻega masani a Postgres. Na'o le ta'avale fa'apipi'i-siaki e ala i le Bouncer ma ala atu i Odyssey, matou te maua ai se null div. E tele suʻega e fesoʻotaʻi ma le faʻatulagaina o aso e le tutusa lelei i Bouncer ma Odyssey.

E le gata i lea, e tele avetaavale e iai a latou lava suʻega. Ma matou faʻaaogaina a latou suʻega e suʻe ai le Odyssey.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E le gata i lea, ona o la matou faʻatulagaga faʻapipiʻi, e tatau ona matou suʻeina fusi eseese: Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey ina ia mautinoa pe afai o Odyssey na iʻu i soʻo se vaega o le cascade, o loʻo galue pea. e pei ona tatou faamoemoeina.

Salu

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Matou te faʻaaogaina Odyssey i le gaosiga. Ma e le fetaui pe a ou fai atu e aoga mea uma. Leai, o lona uiga, ioe, ae le o taimi uma. Mo se faʻataʻitaʻiga, i le gaosiga naʻo mea uma na galue, ona o mai ai lea a matou uo mai le PostgreSQL Professional ma fai mai o loʻo i ai se matou manatua. E moni lava, sa matou faasa'oina i latou. Ae sa faigofie.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ona matou iloa ai lea o lo'o i ai feso'ota'iga TLS ulufale mai feso'ota'iga TLS ma feso'ota'iga TLS fafo. Ma o feso'ota'iga e mana'omia ai tusipasi tagata o tausia ma tusi fa'aumau.

Bouncer ma Odyssey server tusipasi e toe faitau e latou pcache, ae o tusipasi tagata e le manaomia ona toe faitau mai le pcache, aua o le tatou Odyssey scalable e iu lava ina alu i le faiga o le faatinoga o le faitauina o lenei tusi faamaonia. Na faateʻia i matou i lenei mea, ona e leʻi umi se taimi na teteʻe ai. I le taimi muamua na faʻasolo i luga ole laina, ae ina ua maeʻa le 20 fesoʻotaʻiga o loʻo oʻo mai i le taimi e tasi na faʻaalia ai le faafitauli.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Pluggable Authentication Method o le mafai lea e faʻamaonia ai le faʻaaogaina o meafaigaluega Lunux. I le PgBouncer o loʻo faʻatinoina i se auala o loʻo i ai se filo eseese e faʻatali mo se tali mai le PAM ma o loʻo i ai se filo PgBouncer autu e tautuaina le fesoʻotaʻiga o loʻo iai nei ma e mafai ona fai atu ia i latou e nonofo i le filo PAM.

Matou te leʻi faʻatinoina lenei mea mo se mafuaaga faigofie e tasi. E tele a matou filo. Aisea tatou te manaomia ai lenei mea?

O lenei mea e mafai ona tupu ai ni faʻafitauli i lena mea pe a iai sau faʻamaoniga PAM ma le faʻamaonia e le o le PAM, ona mafai lea e se galu tele o le faʻamaoniga a le PAM ona faʻatuai tele le faʻamaonia e le o le PAM. O se tasi lea o mea tatou te leʻi faʻamautuina. Ae afai e te manaʻo e faʻaleleia, e mafai ona e faia lenei mea.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le isi rake o loʻo i ai le matou filo e talia uma fesoʻotaʻiga o loʻo oʻo mai. Ona siitia atu lea i le vaitaele a le aufaigaluega, lea o le a faia ai le faatalofa a le TLS.

Ole laina pito i lalo, afai e iai sau galu faʻatasi o le 20 fesoʻotaʻiga fesoʻotaʻiga, o le a talia uma. Ma i le itu o tagata o tausia le libpq o le a amata ona lipotia taimi fa'agata. I le fa'aletonu e foliga mai e 000 sekone.

Afai latou te le mafai uma ona ulufale i le database i le taimi e tasi, ona le mafai lea ona latou ulufale i totonu o le database, aua o nei mea uma e mafai ona ufiufi e le toe faʻaleleia.

Na matou oʻo mai i le faaiuga na matou kopiina le polokalame mai le PgBouncer iinei ma le mea moni o loʻo matou faʻaitiitia le numera o fesoʻotaʻiga TCP matou te talia.

Afai tatou te vaʻaia o loʻo tatou taliaina fesoʻotaʻiga, ae e leʻi maua se taimi e lululima ai, tatou te tuʻuina i latou i se laina ina ia latou le faʻaumatia punaoa CPU. E mafua ai le mea moni e le mafai ona faia se lululima faʻatasi mo soʻotaga uma ua taunuu. Ae o le mea sili o le a ulufale se tasi i le database, e tusa lava pe mamafa le uta.

Roadmap

O le a se mea e te manaʻo e vaʻaia i le lumanaʻi i Odyssey? O le a le mea ua tatou sauni e atiina ae i tatou lava ma o le a le mea tatou te faʻamoemoeina mai le nuʻu?

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

E oʻo mai ia Aokuso 2019.

O le fa'aaliga lea o le fa'afanua o le Odyssey ia Aukuso:

  • Matou te mananaʻo e faʻamaonia SCRAM ma PAM.
  • Sa matou manana'o e lafo atu talosaga faitau e tu'u.
  • Ou te mana'o e toe amata i luga ole laiga.
  • Ma le mafai ona taofi i luga o le server.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le afa o lenei auala ua maeʻa, ae le o matou. Ma e lelei lenei. Sei o tatou talanoaina mea o totoe ma faaopoopo atili.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Fa'atatau i luma fesili faitau na'o le tu'u? E iai a matou fa'atusa e na'o le vevela o le ea e aunoa ma le fa'atinoina o talosaga. Matou te manaʻomia i latou e tuʻuina atu failover ma sui. I le tulaga o faʻafitauli i se tasi o nofoaga autu o faʻamatalaga, ou te manaʻo e faʻaogaina i latou i ni galuega aoga. Talu ai e le mafai ona tatou faʻapipiʻi tutusa faʻagaioiga tutotonu, o le mafaufau tutusa e ese, aua a leai o le a le aoga le toe faia.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I le mataupu faavae, i Postgres, amata mai le 10, e mafai ona faʻamaonia session_attrs pe a faʻafesoʻotaʻi. E mafai ona e lisiina uma 'au'aunaga fa'amaumauga i totonu o le feso'ota'iga ma fai mai pe aisea e te alu ai i le database: tusi pe faitau na'o. Ma o le avetaavale lava ia o le a filifilia le talimalo muamua i le lisi e sili ona fiafia i ai, lea e faʻamalieina ai manaʻoga o session_attrs.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ae o le faʻafitauli i lenei auala e le mafai ona pulea le toe faʻasologa. Atonu o lo'o iai sau fa'ata'ita'iga ua tu'u i tua mo se taimi e le taliaina mo lau tautua. Ina ia mafai ona faʻatinoina atoatoa le faʻatinoina o fesili faitau i luga o se kopi, matou te manaʻomia le lagolagoina o le malosi o Odyssey e le tamoe pe a le mafai ona faitau.

Odyssey e tatau ona alu i le faʻamaumauga mai lea taimi i lea taimi ma fesili mo le toe kopi mamao mai le mea muamua. Ma afai ua oʻo i le tau faʻatapulaʻa, aua neʻi faʻatagaina ni talosaga fou i totonu o faʻamaumauga, taʻu i le kalani e manaʻomia le toe amataina o fesoʻotaʻiga ma, atonu, filifili se isi talimalo e faʻatino talosaga. Ole mea lea ole a fa'ataga ai le fa'amaumauga e toe fa'afo'i vave le toe fa'asologa ma toe fo'i mai e tali atu ile talosaga.

E faigata ona tuʻuina atu se taimi faʻatulagaina mo le faʻatinoga, aua e tatala le punaoa. Ae, ou te faʻamoemoe, e le o le 2,5 tausaga pei o aʻu uo mai le PgBouncer. Ole vaega lea ou te fia va'ai ile Odyssey.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

I totonu o le nuu, na fesili tagata e uiga i le lagolago mo le faʻamatalaga saunia. O lea e mafai ona e fatuina se faʻamatalaga saunia i ni auala se lua. Muamua, e mafai ona e faʻatinoina le faʻatonuga SQL, e taʻua o le "saunia". Ina ia malamalama i lenei tulafono SQL, e tatau ona tatou aʻoaʻo e malamalama i le SQL ile itu Bouncer. O le a sili atu lenei mea, aua e sili atu, talu ai tatou te manaʻomia le parser atoa. E le mafai ona matou fa'avasega uma fa'atonuga SQL.

Ae o loʻo i ai se faʻamatalaga saunia i le tulaga o feʻau i luga ole proto3. Ma o le nofoaga lea e sau ai le faʻamatalaga o loʻo faia se faʻamatalaga saunia i se faiga faʻatulagaina. Ma e mafai ona matou lagolagoina le malamalama e faapea i luga o nisi fesoʻotaʻiga server na talosaga le kalani e fai ni faʻamatalaga saunia. Ma e tusa lava pe tapunia le fefaʻatauaʻiga, e manaʻomia lava ona tatou faʻamautu le fesoʻotaʻiga i le va o le server ma le kalani.

Ae o iinei e tulaʻi mai ai se eseesega i le talanoaga, ona e fai mai se tasi e tatau ona e malamalama i le ituaiga o faʻamatalaga saunia na faia e le kalani ma faʻasoa le fesoʻotaʻiga server i le va o tagata faʻatau uma na faia lenei fesoʻotaʻiga server, o lona uiga, o le na faia se faʻamatalaga saunia.

Fai mai Andres Freund afai e sau se tagata o tausia ia te oe ua uma ona faia sea faʻamatalaga saunia i se isi fesoʻotaʻiga server, ona faia lea mo ia. Ae e foliga mai e fai si sese le faia o fesili i totonu o le database ae le o le tagata o tausia, ae mai le vaaiga a le tagata atiaeina na te tusia le maliega mo le fegalegaleai ma le database, o le a faigofie pe a na o le tuuina atu ia te ia o se fesoʻotaʻiga fesoʻotaʻiga lea. o loo i ai se fesili ua saunia faapena.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

Ma le isi vaega e tatau ona tatou faʻatinoina. Ua i ai nei le mata'ituina e fetaui ma le PgBouncer. E mafai ona matou toe fa'afo'i le taimi masani o fa'atinoga o fesili. Ae o le taimi masani o le averesi o le vevela i le falemaʻi: o nisi e malulu, o nisi e mafanafana - i le averesi, o loʻo soifua maloloina tagata uma. E le moni.

Matou te manaʻomia le faʻatinoina o le lagolago mo pasene, e faʻaalia ai o loʻo i ai le tele o fesili o loʻo faʻaumatia punaoa ma o le a sili atu ona talia le mataʻituina.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O le mea pito sili ona taua, ou te manaʻo i le version 1.0 (Version 1.1 ua uma ona faʻasaʻolotoina). O le mea moni o Odyssey o loʻo i ai nei i le version 1.0rc, o lona uiga o le faʻamalolo o le sui tauva. Ma o faʻafitauli uma na ou lisiina na faʻapipiʻiina i le tutusa lava, sei vagana ai le manatuaga.

O le a le uiga o le version 1.0 mo i tatou? O loʻo matou faʻasalalau atu Odyssey i a matou faʻavae. Ua uma ona tamoʻe i luga oa tatou faʻamaumauga, ae a oʻo i le tulaga o le 1 talosaga i le sekone, ona mafai lea ona tatou fai atu o le faʻasalalauga lea ma o le version lea e mafai ona taʻua o le 000.

E to'atele tagata i totonu o le nu'u na latou fesiligia le fa'amatalaga 1.0 e aofia ai le taofi ma le SCRAM. Ae o lona uiga o le a manaʻomia ona taʻavale le isi lomiga i le gaosiga, aua e leʻi faʻaumatia SCRAM poʻo se taofi. Ae, e foliga mai, o lenei mataupu o le a vave ona foia.

Odyssey roadmap: o le a se isi mea tatou te manaʻo ai mai se tagata faʻapipiʻi fesoʻotaʻiga. Andrey Borodin (2019)

O lo'o ou fa'atali mo lau talosaga toso. Ou te fia faʻalogo foʻi poʻo a ni faʻafitauli o loʻo ia te oe ma Bouncer. Sei o tatou talanoaina. Masalo e mafai ona matou faʻatinoina nisi o galuega e te manaʻomia.

O le iuga lea o la’u vaega, ou te fia faalogo atu ia te oe. Fa'afetai!

Au fesili

Afai ou te setiina la'u lava application_name, o le a sa'o ea ona lafo atu, e aofia ai le fa'aputuina o fefa'atauaiga i Odyssey?

Odyssey po'o Bouncer?

I Odyssey. I Bouncer e togi.

O le a matou faia se seti.

Ma afai o laʻu sootaga moni e oso i luga o isi fesoʻotaʻiga, o le a faʻasalalau atu?

O le a matou faia se seti o tapulaʻa uma o loʻo lisiina i le lisi. E le mafai ona ou iloa pe o iai le application_name i lenei lisi. Ou te manatu na ou vaai ia te ia iina. O le a matou setiina uma faʻamaufaʻailoga tutusa. Faatasi ai ma le tasi talosaga, o le seti o le a faia mea uma na faʻapipiʻiina e le kalani i le taimi o le amataga.

Faafetai, Andrey, mo le lipoti! Manaia lipoti! Ou te fiafia o Odyssey o loʻo tuputupu aʻe vave ma vave i minute uma. Ou te fia faaauau pea faapea. Ua uma ona matou fai atu ia te oe ia i ai se fesoʻotaʻiga tele faʻamaumauga ina ia mafai e Odyssey ona faʻafesoʻotaʻi i faʻamaumauga eseese i le taimi e tasi, o lona uiga o se pologa matai, ona faʻafesoʻotaʻi otometi lea i se matai fou pe a maeʻa.

Ioe, e foliga mai ou te manatua lenei talanoaga. O le taimi nei e tele mea e teu ai. Ae leai se suiga i le va oi latou. I la matou itu, e tatau ona matou suʻesuʻeina le 'auʻaunaga o loʻo ola pea ma malamalama ua tupu se faʻalavelave, o le a valaau pg_recovery. E i ai la'u auala masani o le malamalama tatou te le'i o mai i le matai. Ma e tatau ona tatou malamalama i se auala mai mea sese pe o le a? O lona uiga, e manaia le manatu, o loʻo talanoaina. Tusi nisi fa'amatalaga. Afai e iai sau tagata faigaluega e iloa C, e lelei tele.

O le mataupu o le faʻavasegaina i luga o faʻataʻitaʻiga e fiafia foi ia i matou, aua matou te mananaʻo e faʻafaigofie le faʻaaogaina o fuifui faʻapipiʻi e mafai ai mo tagata atiaeina talosaga. Ae o iinei ou te manaʻo ai i nisi faʻamatalaga, o lona uiga o le auala tonu e fai ai, faʻafefea ona fai lelei.

O le fesili foi e uiga i kopi. E aliali mai o lo'o iai sau matai ma le tele o fa'atusa. Ma e manino lava latou te alu i le kopi e itiiti ifo nai lo le matai mo fesoʻotaʻiga, aua atonu e iai a latou eseesega. Na e fai mai o le eseesega i faʻamatalaga atonu e le mafai ona faʻamalieina lau pisinisi ma e te le alu i ai seʻia oʻo ina toe faia. I le taimi lava e tasi, afai e te le alu i ai mo se taimi umi, ona amata loa lea ona e alu, o le a le maua vave faʻamatalaga e manaʻomia. O lona uiga, afai tatou te alu pea i le matai, ona faʻamafanafanaina lea o le cache iina, ae i totonu o le faʻataʻitaʻiga e laʻititi le cache.

Ioe e moni. O le a le maua e le pcache poloka faʻamaumauga e te manaʻo ai, o le cache moni o le a leai ni faʻamatalaga e uiga i laulau e te manaʻo ai, o fuafuaga o le a le maua ni fesili faʻasalalau, o le a leai se mea.

Ma a iai sau ituaiga fuifui, ma e te faʻaopoopoina se faʻataʻitaʻiga fou iina, aʻo amata, e leaga mea uma i totonu, o lona uiga e faʻateleina lona faʻaoga.

Na ou maua le manatu. O le auala sa'o o le fa'agasolo lea o se pasene la'ititi o fesili i luga o le kopi muamua, lea e fa'amafanafanaina ai le fa'aoga. I se tautalaga faʻapitoa, o loʻo i ai le tatou tulaga e tatau ona tatou tuai i tua o le matai e le sili atu i le 10 sekone. Ma o lenei tulaga e le o aofia ai i le tasi galu, ae sologa lelei mo nisi tagata faʻatau.

Ioe, faateleina le mamafa.

Ose manatu lelei lea. Ae muamua e tatau ona tatou faʻatinoina lenei tapuni. Muamua e tatau ona tatou tape, ona tatou mafaufau lea i le auala e ki ai. O se vaega sili lea e mafai ai ona sologa lelei.

Nginx ei ai lenei filifiliga slowly start i se fuifui mo le server. Ma e faasolosolo malie ona ia faateleina le avega.

Ioe, lelei le manatu, o le a tatou fa'ata'ita'iina pe a o'o i ai.

puna: www.habr.com

Faaopoopo i ai se faamatalaga