{"id":97939,"date":"2020-10-23T08:42:49","date_gmt":"2020-10-23T06:42:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai"},"modified":"2020-10-23T08:42:49","modified_gmt":"2020-10-23T06:42:49","slug":"dba-bot-joe-anatolij-stansler-postgres-ai","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai","title":{"rendered":"DBA-boti Joe. Anatoli Stansler (Postgres.ai)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/3bb5cc6d6be1699fc72342a74aa4020a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si nj\u00eb zhvillues backend, si e kupton se nj\u00eb SQL k\u00ebrkes\u00eb do t\u00eb funksionoj\u00eb mir\u00eb n\u00eb \u00abprod\u00bb? N\u00eb kompanit\u00eb e m\u00ebdha ose ato q\u00eb rriten shpejt, aksesin n\u00eb \u00abprod\u00bb t\u00eb gjith\u00eb nuk e kan\u00eb. Po ashtu, me aksesin nuk \u00ebsht\u00eb e leht\u00eb t\u00eb verifikosh t\u00eb gjitha k\u00ebrkesat pa probleme, dhe krijimi i nj\u00eb kopjeje t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave shpesh merr or\u00eb. P\u00ebr t\u00eb zgjidhur k\u00ebto probleme, krijuam nj\u00eb DBA t\u00eb artificsh\u00ebm \u2013 Joe. Ai tashm\u00eb \u00ebsht\u00eb implementuar me sukses n\u00eb disa kompani dhe ndihmon shum\u00eb zhvillues. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Video:<\/p>\n<p>\n<center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/5f913081905dc4e15aeed783\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/48e63de499e46be4be19aa8c926e5716.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Quhem Anatolij Stansler. Punoj n\u00eb kompanin\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/postgres.ai\/\">Postgres.ai<\/a><\/noindex>. Ne merremi me p\u00ebrshpejtimin e procesit t\u00eb zhvillimit, duke hequr vonesat e lidhura me funksionimin e Postgres p\u00ebr zhvilluesit, DBA dhe QA.<\/p>\n<p><\/p>\n<p>Kemi klient\u00eb t\u00eb shk\u00eblqyer dhe sot nj\u00eb pjes\u00eb e prezantimit do t'i kushtohet rasteve q\u00eb kemi hasur gjat\u00eb pun\u00ebs me ta. Do t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn se si i ndihmuam ata t\u00eb zgjidhnin probleme mjaft serioze.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/5bd7d2538a4940afb28d6375a9516760.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kur jemi n\u00eb procesin e zhvillimit dhe b\u00ebjm\u00eb migrime t\u00eb komplikuara t\u00eb ngarkesave, e kemi pyetjen: \"A do t\u00eb p\u00ebrflaket kjo migrim?\" Ne p\u00ebrdorim review, e themi me njohurit\u00eb e koleg\u00ebve m\u00eb t\u00eb p\u00ebrvojsh\u00ebm dhe ekspert\u00ebve DBA. Dhe ata mund t\u00eb thon\u00eb \u2013 do t\u00eb p\u00ebrflaket apo jo. <\/p>\n<p><\/p>\n<p>Por\u00eb, ndoshta do t\u00eb ishte m\u00eb mir\u00eb n\u00ebse do t\u00eb mundnim ta testonim k\u00ebt\u00eb vet\u00eb n\u00eb kopjet e plota. Dhe sot pik\u00ebrisht do t\u00eb flasim p\u00ebr qasjet aktuale ndaj testimit dhe si mund ta b\u00ebjm\u00eb m\u00eb mir\u00eb dhe me cilat mjete. Gjithashtu do t\u00eb diskutojm\u00eb p\u00ebr avantazhet dhe disavantazhet e k\u00ebtyre qasjeve, si dhe se \u00e7far\u00eb mund t\u00eb korrigjojm\u00eb k\u00ebtu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/aca9f4c4fbbfc6db9c24f862216fb5d4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kush ndonj\u00ebher\u00eb ka krijuar indekse ose ka b\u00ebr\u00eb disa ndryshime direkt n\u00eb prodhim? Ka pasur mjaft. Dhe sa prej jush ka p\u00ebrjetuar humbje t\u00eb t\u00eb dh\u00ebnave ose nd\u00ebrprerje? At\u00ebher\u00eb ju e njihni k\u00ebt\u00eb dhimbje. Faleminderit Zotit, kemi kopje rezerv\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/7795bf3cb1f3f6f9919ca42758fa51e9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qasja e par\u00eb \u00ebsht\u00eb testimi n\u00eb prodhim. Ose, kur zhvilluesi \u00ebsht\u00eb me nj\u00eb makin\u00eb lokale, ka t\u00eb dh\u00ebna testuese, nj\u00eb most\u00ebr t\u00eb kufizuar. Dhe ne e hedhim n\u00eb prodhim dhe marrim k\u00ebt\u00eb situat\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/05b120bf57904f553422f419337d5220.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb e dhimbshme, \u00ebsht\u00eb e shtrenjt\u00eb. Ndoshta, nuk \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb b\u00ebhet k\u00ebshtu. <\/p>\n<p><\/p>\n<p>Si duhet b\u00ebr\u00eb m\u00eb mir\u00eb? <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/a8727bc2cd217d89edaf9df8588306d9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb marrim staging dhe t\u00eb ndalim nj\u00eb pjes\u00eb t\u00eb prodhimit. Ose, n\u00eb rastin m\u00eb t\u00eb mir\u00eb, t\u00eb marrim t\u00eb gjith\u00eb t\u00eb dh\u00ebnat reale nga prodhimi. Dhe pasi t\u00eb kemi zhvilluar lokal, do t\u00eb kontrollojm\u00eb gjithashtu n\u00eb staging. <\/p>\n<p><\/p>\n<p>Kjo do t\u00eb na lejoj\u00eb t\u00eb eliminojm\u00eb disa gabime, dmth. t\u00eb mos i lejojm\u00eb n\u00eb prodhim. <\/p>\n<p><\/p>\n<p>Cilat jan\u00eb problemet? <\/p>\n<p><\/p>\n<ul>\n<li>Problemi \u00ebsht\u00eb se k\u00ebt\u00eb staging e ndajem me koleg\u00ebt. Dhe shum\u00eb shpesh ndodh q\u00eb ti b\u00ebn nj\u00eb ndryshim, bam \u2013 dhe nuk ka asnj\u00eb t\u00eb dh\u00ebn\u00eb, puna shkon d\u00ebm. Staging ishte shum\u00eb-terabajt. Dhe duhet shum\u00eb koh\u00eb derisa t\u00eb ngrihet s\u00ebrish. Dhe ne vendosim ta p\u00ebrfundojm\u00eb k\u00ebt\u00eb nes\u00ebr. \u00c7do gj\u00eb, zhvillimi yn\u00eb \u00ebsht\u00eb ndalur. <\/li>\n<li>Dhe, sigurisht, atje punojn\u00eb shum\u00eb koleg\u00eb, shum\u00eb ekipe. Dhe \u00ebsht\u00eb e nevojshme t\u00eb koordinohen manualisht. Kjo \u00ebsht\u00eb e pap\u00ebrshtatshme. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/ad4612f2b06ac09e666e33196d898a79.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe duhet th\u00ebn\u00eb se kemi vet\u00ebm nj\u00eb p\u00ebrpjekje, nj\u00eb goditje, n\u00ebse duam t\u00eb japim disa ndryshime n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave, t\u00eb prek\u00ebm t\u00eb dh\u00ebnat, t\u00eb ndryshojm\u00eb struktur\u00ebn. Dhe n\u00ebse di\u00e7ka shkon keq, n\u00ebse kishte nj\u00eb gabim n\u00eb migrim, p\u00ebrfundimisht nuk do t\u00eb mund t\u00eb rikthehemi shpejt. <\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb m\u00eb mir\u00eb se qasja e m\u00ebparshme, por prap\u00eb ka nj\u00eb probabilitet t\u00eb madh q\u00eb ndonj\u00eb gabim t\u00eb kaloj\u00eb n\u00eb prodhim.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/73faffc3ef6e368a0901145c48b903b1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb na pengon t\u00eb gjith\u00ebve zhvilluesve t'u japim nj\u00eb ambjent testimi, nj\u00eb kopje p\u00ebrmasash t\u00eb plota? Mendoj se \u00ebsht\u00eb e qart\u00eb \u00e7far\u00eb na pengon. <\/p>\n<p><\/p>\n<p>Kush ka nj\u00eb baz\u00eb t\u00eb dh\u00ebnash m\u00eb t\u00eb madhe se nj\u00eb terabajt? M\u00eb shum\u00eb se gjysma e sall\u00ebs. <\/p>\n<p><\/p>\n<p>Dhe \u00ebsht\u00eb e qart\u00eb se t\u00eb mbash makina p\u00ebr \u00e7do zhvillues, kur ka nj\u00eb prodhim kaq t\u00eb madh, \u00ebsht\u00eb shum\u00eb e shtrenjt\u00eb, dhe gjithashtu merr shum\u00eb koh\u00eb. <\/p>\n<p><\/p>\n<p>Kemi klient\u00eb q\u00eb e kuptojn\u00eb r\u00ebnd\u00ebsin\u00eb e testimit t\u00eb t\u00eb gjitha ndryshimeve n\u00eb kopje t\u00eb plota, por ata kan\u00eb m\u00eb pak se nj\u00eb terabajt baz\u00eb dhe nuk kan\u00eb burime p\u00ebr t\u00eb mbajtur nj\u00eb q\u00ebnd\u00ebr testimi p\u00ebr \u00e7do zhvillues. Prandaj, ata duhet t\u00eb shkarkojn\u00eb dump-et lokal n\u00eb kompjuterin e tyre dhe t\u00eb testojn\u00eb n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb. Kjo merr shum\u00eb koh\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/8c1c804db71ffb5b79b5284670b3427b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Edhe n\u00ebse e b\u00ebni k\u00ebt\u00eb brenda infrastruktur\u00ebs, shkarkimi i nj\u00eb terabajti t\u00eb dh\u00ebnash p\u00ebr nj\u00eb or\u00eb \u2013 \u00ebsht\u00eb v\u00ebrtet shum\u00eb e mir\u00eb. Por ata p\u00ebrdorin dump-e logjike dhe i shkarkojn\u00eb lokal nga cloud. P\u00ebr ta, shpejt\u00ebsia \u00ebsht\u00eb rreth 200 gigabajt p\u00ebr or\u00eb. Dhe gjithashtu duhet koh\u00eb p\u00ebr t\u00eb rikuperuar nga dump-i logjik, p\u00ebr t\u00eb aplikuar indeks\u00ebt, etj.<\/p>\n<p><\/p>\n<p>Por ata e p\u00ebrdorin k\u00ebt\u00eb qasje sepse lejon q\u00eb prodhimi t\u00eb q\u00ebndroj\u00eb i besuesh\u00ebm. <\/p>\n<p><\/p>\n<p>\u00c7far\u00eb mund t\u00eb b\u00ebjm\u00eb k\u00ebtu? Le t\u00eb b\u00ebjm\u00eb q\u00eb qendrat testuese t\u00eb jen\u00eb t\u00eb lira dhe t'i japim \u00e7do zhvilluesi t\u00eb vetin qend\u00ebr testuese.<\/p>\n<p><\/p>\n<p>Dhe kjo \u00ebsht\u00eb e mundur. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/a763fc2677fe93df884b80561b5270a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe me k\u00ebt\u00eb qasje, kur krijojm\u00eb klone t\u00eb holl\u00eb p\u00ebr \u00e7do zhvillues, mund ta ndajm\u00eb k\u00ebt\u00eb n\u00eb nj\u00eb makin\u00eb. P\u00ebr shembull, n\u00ebse keni nj\u00eb baz\u00eb prej kat\u00ebr terabajt\u00ebsh dhe d\u00ebshironi t'i jepni at\u00eb 10 zhvilluesve, nuk keni nevoj\u00eb p\u00ebr 10 her\u00eb kat\u00ebr terabajt\u00eb baza. Ju mjafton nj\u00eb makin\u00eb p\u00ebr t\u00eb krijuar kopje t\u00eb izoluara t\u00eb holla p\u00ebr secilin zhvillues, duke p\u00ebrdorur nj\u00eb makin\u00eb. Si funksionon do ta tregoj pak m\u00eb von\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/e8e9df7effb0d0241d90315f92b994c6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nj\u00eb shembull real:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>BD \u2013 4.5 terabajt. <\/p>\n<p>\n<\/li>\n<li>\n<p>Mund t\u00eb marrim kopje t\u00eb pavarura p\u00ebr 30 sekonda. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Nuk keni nevoj\u00eb t\u00eb prisni p\u00ebr nj\u00eb testim t\u00eb q\u00ebndruesh\u00ebm dhe t\u00eb vareni nga madh\u00ebsia e tij. Mund ta merrni at\u00eb brenda sekondash. K\u00ebto do t\u00eb jen\u00eb mjete t\u00eb plota izoluese, por q\u00eb ndajn\u00eb t\u00eb dh\u00ebnat mes vetes. <\/p>\n<p><\/p>\n<p>Kjo \u00ebsht\u00eb e shk\u00eblqyer. K\u00ebtu po flasim p\u00ebr magjin\u00eb dhe universin paralel. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/87e6a7e45548ed5dabd4fad01ea70616.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb rastin ton\u00eb, kjo funksionon me sistemin OpenZFS. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/e75fed43703e26152a5a85f807064cb4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>OpenZFS \u00ebsht\u00eb nj\u00eb sistem skedari copy-on-write, i cili p\u00ebrfshin natyrsh\u00ebm mb\u00ebshtetje p\u00ebr snapshote dhe klone. Ai \u00ebsht\u00eb i besuesh\u00ebm dhe i shkall\u00ebzuesh\u00ebm. E menaxhohet shum\u00eb leht\u00eb. Mund t\u00eb vendoset me vet\u00ebm dy komanda. <\/p>\n<p><\/p>\n<p>Ka mund\u00ebsi t\u00eb tjera:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>LVM,<\/p>\n<p>\n<\/li>\n<li>\n<p>Sistemet e ruajtjes (p.sh., Pure Storage).<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Laboratori i bazave, p\u00ebr t\u00eb cilin po flas, \u00ebsht\u00eb modular. Mund t\u00eb realizohet duke p\u00ebrdorur k\u00ebto mund\u00ebsi. Por p\u00ebr momentin jemi fokusuar te OpenZFS, sepse konkretisht pati probleme me LVM. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/41a49f6760ee96b55f49606f8e453992.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si funksionon? N\u00eb vend q\u00eb t\u00eb shkruajm\u00eb t\u00eb dh\u00ebnat \u00e7do her\u00eb kur i ndryshojm\u00eb, ne i ruajm\u00eb ato, thjesht duke i etiketuar se k\u00ebto t\u00eb dh\u00ebna t\u00eb reja i p\u00ebrkasin nj\u00eb momenti t\u00eb ri n\u00eb koh\u00eb, nj\u00eb snapshot t\u00eb ri. <\/p>\n<p><\/p>\n<p>Dhe m\u00eb tej, kur duam t\u00eb kthehemi prapa ose duam t\u00eb b\u00ebjm\u00eb nj\u00eb klon t\u00eb ri nga ndonj\u00eb version m\u00eb t\u00eb vjet\u00ebr, thjesht i themi: \"Ok, na jepni k\u00ebto blloqe t\u00eb dh\u00ebnash, t\u00eb cilat jan\u00eb etiketuar n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb.\" <\/p>\n<p><\/p>\n<p>Dhe ky p\u00ebrdorues do t\u00eb punoj\u00eb me k\u00ebt\u00eb grup t\u00eb dh\u00ebnash. Ai do t'i modifikoj\u00eb gradualisht, duke b\u00ebr\u00eb snapshotet e tij. <\/p>\n<p><\/p>\n<p>Dhe do t\u00eb kemi deg\u00ebzim. \u00c7do zhvillues n\u00eb rastin ton\u00eb do t\u00eb ket\u00eb mund\u00ebsin\u00eb t\u00eb ket\u00eb klonin e tij, t\u00eb cilin e redakton, nd\u00ebrsa t\u00eb dh\u00ebnat q\u00eb jan\u00eb t\u00eb p\u00ebrbashk\u00ebt do t\u00eb ndahen mes t\u00eb gjith\u00ebve. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/78efd8b87f6559839af20a939b7c89d7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb implementuar nj\u00eb sistem t\u00eb till\u00eb, duhet t\u00eb zgjidhni dy probleme: <\/p>\n<p><\/p>\n<ul>\n<li>\n<p>E para, ky \u00ebsht\u00eb burimi i t\u00eb dh\u00ebnave, nga i cili do t'i merrni ato. Mund t\u00eb konfigurohet replikimi me production. Mund t\u00eb p\u00ebrdorni backup-et q\u00eb keni t\u00eb vendosur, shpresoj. WAL-E, WAL-G ose Barman. Dhe madje, n\u00ebse po p\u00ebrdorni nj\u00eb zgjidhje Cloud, si RDS ose Cloud SQL, mund t\u00eb p\u00ebrdorni dumpe logjike. Megjithat\u00eb, ne ju rekomandojm\u00eb t\u00eb p\u00ebrdorni backup-et, sepse me k\u00ebt\u00eb qasje do t\u00eb ruani gjithashtu struktur\u00ebn fizike t\u00eb skedave, gj\u00eb q\u00eb do t\u00eb lejoj\u00eb t\u00eb jeni m\u00eb af\u00ebr metrikave q\u00eb do t\u00eb shihnit n\u00eb production, p\u00ebr t\u00eb kapur problemet q\u00eb ekzistojn\u00eb. <\/p>\n<p>\n<\/li>\n<li>\n<p>E dyta \u2013 \u00ebsht\u00eb vendi ku d\u00ebshironi t\u00eb hostoni Database Lab. Kjo mund t\u00eb jet\u00eb Cloud, mund t\u00eb jet\u00eb On-premise. K\u00ebtu \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb thuhet se ZFS mb\u00ebshtet kompresimin e t\u00eb dh\u00ebnave. Dhe e b\u00ebn k\u00ebt\u00eb mjaft mir\u00eb. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Imagjinoni q\u00eb \u00e7do klon i till\u00eb, n\u00eb var\u00ebsi t\u00eb operacioneve q\u00eb b\u00ebjm\u00eb me baz\u00ebn, do t\u00eb ket\u00eb nj\u00eb dev q\u00eb do t\u00eb rritet. P\u00ebr k\u00ebt\u00eb dev gjithashtu do t\u00eb nevojitet hap\u00ebsir\u00eb. Por p\u00ebr shkak se mor\u00ebm nj\u00eb baz\u00eb prej 4.5 terabajt\u00ebsh, ZFS do ta comprimoj\u00eb at\u00eb n\u00eb 3.5 terabajt\u00eb. N\u00eb var\u00ebsi t\u00eb konfigurimeve, kjo mund t\u00eb ndryshohet. Dhe do t\u00eb mbetet hap\u00ebsir\u00eb p\u00ebr dev-in. <\/p>\n<p><\/p>\n<p>Nj\u00eb sistem i till\u00eb mund t\u00eb p\u00ebrdoret p\u00ebr raste t\u00eb ndryshme. <\/p>\n<p><\/p>\n<ul>\n<li>\n<p>K\u00ebta jan\u00eb zhvilluesit, DBA p\u00ebr t\u00eb verifikuar k\u00ebrkesat, p\u00ebr optimizimin. <\/p>\n<p>\n<\/li>\n<li>\n<p>Kjo mund t\u00eb p\u00ebrdoret n\u00eb testimin QA p\u00ebr t\u00eb verifikuar migrimin specifik para se t\u00eb nxjerrim k\u00ebt\u00eb n\u00eb prodhim. Gjithashtu, mund t\u00eb ngrisim ambjente speciale p\u00ebr QA me t\u00eb dh\u00ebna reale, ku ata mund t\u00eb testojn\u00eb funksionalitetin e ri. Dhe kjo do t\u00eb marr\u00eb sekonda n\u00eb vend q\u00eb t\u00eb presim or\u00eb, ndoshta edhe dit\u00eb n\u00eb disa raste t\u00eb tjera ku nuk p\u00ebrdoren kopje t\u00eb holl\u00eb. <\/p>\n<p>\n<\/li>\n<li>\n<p>Dhe nj\u00eb rast tjet\u00ebr t\u00eb ve\u00e7ant\u00eb. N\u00ebse n\u00eb kompani nuk \u00ebsht\u00eb vendosur nj\u00eb sistem analitik, mund t\u00eb nxjerrim nj\u00eb klon t\u00eb holl\u00eb t\u00eb baz\u00ebs produktive dhe ta japim p\u00ebr k\u00ebrkesa t\u00eb gjata ose p\u00ebr indekse speciale q\u00eb mund t\u00eb p\u00ebrdoren n\u00eb analitik\u00eb.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/5fb0944f063c981f27449d948a59b73b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me k\u00ebt\u00eb qasje:<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Probabilitet i ul\u00ebt p\u00ebr gabime n\u00eb \"prod\", sepse t\u00eb gjitha ndryshimet jan\u00eb testuar n\u00eb t\u00eb dh\u00ebna t\u00eb plota. <\/p>\n<p>\n<\/li>\n<li>\n<p>Ne krijojm\u00eb nj\u00eb kultur\u00eb testimi, pasi tani nuk \u00ebsht\u00eb e nevojshme t\u00eb presim or\u00eb p\u00ebr nj\u00eb platform\u00eb t\u00eb vetme. <\/p>\n<p>\n<\/li>\n<li>\n<p>Dhe nuk ka pengesa, nuk ka pritje mes testimeve. N\u00eb t\u00eb v\u00ebrtet\u00eb mund t\u00eb shkosh dhe ta verifikosh. Dhe k\u00ebshtu do t\u00eb jet\u00eb m\u00eb mir\u00eb, pasi do t\u00eb p\u00ebrshpejtojm\u00eb zhvillimin. <\/p>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<ul>\n<li>\n<p>Do t\u00eb ket\u00eb m\u00eb pak refaktorizim. Do t\u00eb ket\u00eb m\u00eb pak bug-e q\u00eb do t\u00eb kalojn\u00eb n\u00eb prodhim. Ne do t'i refaktorizojm\u00eb m\u00eb pak m\u00eb von\u00eb. <\/p>\n<p>\n<\/li>\n<li>\n<p>Ne mund t\u00eb b\u00ebjm\u00eb ndryshime irr\u00ebversibile. Kjo nuk ekziston n\u00eb qasjet standarde. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<ol>\n<li>Kjo \u00ebsht\u00eb e dobishme, sepse ne ndajm\u00eb burimet e mjediseve teste. <\/li>\n<\/ol>\n<p><\/p>\n<p>Tani \u00ebsht\u00eb mir\u00eb, por \u00e7far\u00eb tjet\u00ebr mund t\u00eb shpejtohet?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/d692f76b865c18ed4c178d1a1440774b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Fal\u00eb k\u00ebsaj sistemi, ne mund t\u00eb ulim ndjesh\u00ebm pragun e hyrjes n\u00eb k\u00ebt\u00eb testim. <\/p>\n<p><\/p>\n<p>Aktualisht kemi nj\u00eb cik\u00ebl t\u00eb mbyllur, ku zhvilluesi, p\u00ebr t\u00eb marr\u00eb akses tek t\u00eb dh\u00ebnat reale n\u00eb p\u00ebrmas\u00eb t\u00eb plot\u00eb, duhet t\u00eb b\u00ebhet ekspert. Ai duhet t\u00eb besoh\u00ebt me k\u00ebt\u00eb akses. <\/p>\n<p><\/p>\n<p>Por si t\u00eb rritesh, n\u00ebse nuk e ke. \u00c7far\u00eb ndodh n\u00ebse keni vet\u00ebm nj\u00eb grup shum\u00eb t\u00eb vog\u00ebl t\u00eb dh\u00ebnash p\u00ebr testa? At\u00ebher\u00eb nuk mund t\u00eb marr\u00ebsh p\u00ebrvoj\u00eb reale. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/221f7b02294878aea1d0ebe6df5d9717.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si t\u00eb dalim nga ky cik\u00ebl? Si interfejsin e par\u00eb, t\u00eb p\u00ebrshtatsh\u00ebm p\u00ebr zhvilluesit e \u00e7do niveli, ne zgjodh\u00ebm nj\u00eb bot Slack. Por kjo mund t\u00eb jet\u00eb \u00e7do interfejs tjet\u00ebr. <\/p>\n<p><\/p>\n<p>\u00c7far\u00eb lejon t\u00eb b\u00ebj\u00eb? Mund t\u00eb marr\u00ebsh nj\u00eb k\u00ebrkes\u00eb specifike dhe ta d\u00ebrgosh n\u00eb nj\u00eb kanal t\u00eb ve\u00e7ant\u00eb p\u00ebr baz\u00ebn e t\u00eb dh\u00ebnave. Ne automatikisht do t\u00eb krijojm\u00eb nj\u00eb klon t\u00eb holl\u00eb brenda sekondash. Do ta ekzekutojm\u00eb k\u00ebt\u00eb k\u00ebrkes\u00eb. Do t\u00eb grumbullojm\u00eb metrika dhe rekomandime. Do t\u00eb shfaqim vizualizimin. M\u00eb pas, ky klon do t\u00eb mbetet n\u00eb dispozicion p\u00ebr t\u00eb optimizuar k\u00ebt\u00eb k\u00ebrkes\u00eb, p\u00ebr t\u00eb shtuar indekse etj. <\/p>\n<p><\/p>\n<p>Dhe gjithashtu, Slack na ofron mund\u00ebsi p\u00ebr bashk\u00ebpunim nga fillimi. Duke qen\u00eb se \u00ebsht\u00eb thjesht nj\u00eb kanal, mund t\u00eb fillosh diskutimin p\u00ebr k\u00ebt\u00eb k\u00ebrkes\u00eb direkt n\u00eb thread, duke p\u00ebrmendur koleg\u00ebt e tu, DBA-t\u00eb q\u00eb jan\u00eb brenda kompanis\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/b4a6410b625107c5bbbf57c021159914.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por, sigurisht, ka dhe probleme. Duke qen\u00eb se \u00ebsht\u00eb nj\u00eb bot\u00eb reale, dhe ne p\u00ebrdorim nj\u00eb server ku hostojm\u00eb shum\u00eb klon\u00eb, na duhet t\u00eb pak\u00ebsojm\u00eb sasin\u00eb e memories dhe fuqis\u00eb procesorike q\u00eb klon\u00ebt kan\u00eb n\u00eb dispozicion. <\/p>\n<p><\/p>\n<p>Por p\u00ebr t\u00eb pasur testet q\u00eb jan\u00eb t\u00eb besueshme, \u00ebsht\u00eb e nevojshme t\u00eb zgjidhet ndonj\u00ebher\u00eb ky problem. <\/p>\n<p><\/p>\n<p>E qart\u00eb \u00ebsht\u00eb se nj\u00eb moment i r\u00ebnd\u00ebsish\u00ebm jan\u00eb t\u00eb dh\u00ebnat e nj\u00ebjta. Por ne tashm\u00eb i kemi k\u00ebto. Dhe d\u00ebshirojm\u00eb t\u00eb arrijm\u00eb nj\u00eb konfigurim t\u00eb nj\u00ebjt\u00eb. Dhe ne mund t'i ofrojm\u00eb nj\u00eb konfigurim praktikisht t\u00eb nj\u00ebjt\u00eb. <\/p>\n<p><\/p>\n<p>Do t'kishte nj\u00eb t\u00eb till\u00eb harduer si n\u00eb production, por ai mund t\u00eb ndryshoj\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/5efae55189175262d56a33b89c55ed29.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb kujtojm\u00eb se si Postgres punon me memorien. Ne kemi dy cache. Nj\u00eb nga sistemi i skedar\u00ebve dhe nj\u00eb tjet\u00ebr nga Postgres vet\u00eb, dmth. Shared Buffer Cache. <\/p>\n<p><\/p>\n<p>\u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet se Shared Buffer Cache alokohet kur Postgres fillon n\u00eb var\u00ebsi t\u00eb madh\u00ebsis\u00eb q\u00eb do t\u00eb p\u00ebrcaktoni n\u00eb konfigurim. <\/p>\n<p><\/p>\n<p>Dhe cache i dyt\u00eb p\u00ebrdor t\u00eb gjith\u00eb hap\u00ebsir\u00ebn e disponueshme. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/f1f3c85e786649f83d5c17e6724086a9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe kur krijojm\u00eb disa klone n\u00eb nj\u00eb makin\u00eb, rezulton se ne gradualisht po e mbushim memorien. Dhe n\u00eb m\u00ebnyr\u00eb t\u00eb p\u00ebrshtatshme, Shared Buffer Cache \u00ebsht\u00eb 25% e gjith\u00eb kapacitetit t\u00eb memories q\u00eb \u00ebsht\u00eb e disponueshme n\u00eb makin\u00eb. <\/p>\n<p><\/p>\n<p>Dhe k\u00ebshtu, n\u00ebse ne nuk e ndryshojm\u00eb k\u00ebt\u00eb paramet\u00ebr, do t\u00eb mund t\u00eb fillojm\u00eb vet\u00ebm 4 instance n\u00eb nj\u00eb makin\u00eb, dmth. vet\u00ebm 4 t\u00eb tilla klone t\u00eb holla. Kjo natyrisht \u00ebsht\u00eb e keqe, sepse duam t\u00eb kemi shum\u00eb m\u00eb tep\u00ebr. <\/p>\n<p><\/p>\n<p>Por nga ana tjet\u00ebr, Buffer Cache p\u00ebrdoret p\u00ebr ekzekutimin e pyetjeve, p\u00ebr indeksat, dmth. plani varet nga madh\u00ebsia e cache-eve tona. Dhe n\u00ebse e marrim k\u00ebt\u00eb paramet\u00ebr dhe e zvog\u00eblojm\u00eb, planet tona mund t\u00eb ndryshojn\u00eb ndjesh\u00ebm.<\/p>\n<p><\/p>\n<p>P\u00ebr shembull, n\u00ebse kemi nj\u00eb cache t\u00eb madhe n\u00eb prodhimin ton\u00eb, Postgres do t\u00eb preferonte t\u00eb p\u00ebrdorte indeksin. Por n\u00ebse jo, at\u00ebher\u00eb do t\u00eb ket\u00eb SeqScan. \u00c7far\u00eb kuptimi ka n\u00ebse planet tona nuk do t\u00eb p\u00ebrputheshin? <\/p>\n<p><\/p>\n<p>Por k\u00ebtu arrijm\u00eb n\u00eb nj\u00eb zgjidhje q\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb plani n\u00eb Postgres nuk varet nga madh\u00ebsia e caktuar n\u00eb Shared Buffer, por varet nga effective_cache_size.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/1457fd7b65c342f64733b952130125cf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Effective_cache_size \u00ebsht\u00eb v\u00ebllimi i supozuar i cache-it q\u00eb na \u00ebsht\u00eb i aksesuesh\u00ebm, pra n\u00eb p\u00ebrmbledhje Buffer Cache dhe cache e sistemit t\u00eb skedar\u00ebve. Kjo p\u00ebrcaktohet nga konfigurimi. Dhe kjo memorie nuk alokohen. <\/p>\n<p><\/p>\n<p>Dhe p\u00ebrmes k\u00ebtij parametri mund t\u00eb mashtrojm\u00eb n\u00eb nj\u00ebfar\u00eb forme Postgres, duke th\u00ebn\u00eb se n\u00eb t\u00eb v\u00ebrtet\u00eb na jan\u00eb t\u00eb accesueshme shum\u00eb t\u00eb dh\u00ebna, edhe n\u00ebse nuk i kemi ato t\u00eb dh\u00ebna. Dhe k\u00ebshtu, planet do t\u00eb p\u00ebrputhen plot\u00ebsisht me prodhimin. <\/p>\n<p><\/p>\n<p>Por kjo mund t\u00eb ndiej\u00eb mbi koh\u00ebn e ekzekutimit. Ne optimizojm\u00eb k\u00ebrkesat sipas koh\u00ebs, por e r\u00ebnd\u00ebsishme \u00ebsht\u00eb se koha varet nga shum\u00eb faktor\u00eb: <\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Varet nga ngarkesa q\u00eb aktualisht ka n\u00eb prodhim. <\/p>\n<p>\n<\/li>\n<li>\n<p>Varet nga karakteristikat e vet\u00eb makin\u00ebs. <\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Dhe ky \u00ebsht\u00eb nj\u00eb parameter indirekt, por n\u00eb t\u00eb v\u00ebrtet\u00eb mund t\u00eb optimizojm\u00eb sipas sasis\u00eb s\u00eb t\u00eb dh\u00ebnave q\u00eb ky k\u00ebrkes\u00eb do t\u00eb lexoj\u00eb p\u00ebr t\u00eb marr\u00eb rezultatin. <\/p>\n<p><\/p>\n<p>Dhe n\u00ebse d\u00ebshirojm\u00eb q\u00eb koha t\u00eb jet\u00eb sa m\u00eb e af\u00ebrt me at\u00eb q\u00eb do t\u00eb shohim n\u00eb prodhim, at\u00ebher\u00eb na nevojitet t\u00eb marrim harduer sa m\u00eb t\u00eb ngjash\u00ebm, dhe ndoshta edhe m\u00eb shum\u00eb, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb gjith\u00eb klon\u00ebt t\u00eb ken\u00eb vend. Por kjo \u00ebsht\u00eb nj\u00eb kompromis, pra do t\u00eb merrni plane t\u00eb ngjashme, do t\u00eb shihni se sa t\u00eb dh\u00ebna lexon nj\u00eb k\u00ebrkes\u00eb e caktuar dhe do t\u00eb jeni n\u00eb gjendje t\u00eb p\u00ebrfundoni \u2013 a \u00ebsht\u00eb kjo k\u00ebrkes\u00eb e mir\u00eb (ose migrim) apo e keqe, duhet ende t\u00eb optimizohet. <\/p>\n<p><\/p>\n<p>Le t'i hedhim nj\u00eb v\u00ebshtrim se si kalon optimizimi me Joe. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/26c892a0b2d417f9806cfb77d2ea47f6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb marrim nj\u00eb k\u00ebrkes\u00eb nga nj\u00eb sistem real. N\u00eb k\u00ebt\u00eb rast, baza e t\u00eb dh\u00ebnave \u00ebsht\u00eb 1 terabyte. Dhe ne duam t\u00eb numurojm\u00eb sa jan\u00eb postimet e reja, t\u00eb cilat kan\u00eb m\u00eb shum\u00eb se 10 p\u00eblqime. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/befd651abed6688127f52db39138a4be.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne shkruajm\u00eb nj\u00eb mesazh n\u00eb kanal, u zhvillua p\u00ebr ne nj\u00eb klon. Dhe ne do t\u00eb shohim se nj\u00eb k\u00ebrkes\u00eb e till\u00eb do t\u00eb p\u00ebrfundoj\u00eb brenda 2.5 minutash. Kjo \u00ebsht\u00eb e para q\u00eb do t\u00eb v\u00ebm\u00eb re.<\/p>\n<p><\/p>\n<p>B Joe do t\u00eb tregoj\u00eb rekomandime automatike, t\u00eb bazuara n\u00eb planin dhe metrikat. <\/p>\n<p><\/p>\n<p>Ne do t\u00eb shohim se k\u00ebrkesa po p\u00ebrpunon shum\u00eb t\u00eb dh\u00ebna, p\u00ebr t\u00eb marr\u00eb nj\u00eb num\u00ebr relativisht t\u00eb vog\u00ebl rreshtash. Dhe na nevojitet nj\u00eb indeks i specializuar, pasi v\u00ebrejt\u00ebm se n\u00eb k\u00ebrkes\u00eb ka shum\u00eb rreshta t\u00eb filtruar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/7f40e41314ebc682a1a64a2958dec16c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb shohim m\u00eb n\u00eb detaje se \u00e7far\u00eb ndodhi. N\u00eb t\u00eb v\u00ebrtet\u00eb, shohim se kemi lexuar gati nj\u00eb e gjysm\u00eb gigabajt t\u00eb dh\u00ebnash nga cache-i i skedar\u00ebve ose madje nga disku. Dhe kjo nuk \u00ebsht\u00eb e mir\u00eb, pasi kemi marr\u00eb vet\u00ebm 142 rreshta. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/30aaff5da2536fa27efc6591f645d6f9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe, si\u00e7 duket, kemi k\u00ebtu nj\u00eb skanim indeksi dhe duhej t\u00eb kishte funksionuar shpejt, por, pasi kemi filtruar shum\u00eb rreshta (na u desh t'i num\u00ebronim), k\u00ebrkesa punoi ngadal\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/40958fbc04d4eb738f6a16488647bd8c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe kjo ndodhi n\u00eb plan p\u00ebr shkak se kushtet n\u00eb k\u00ebrkes\u00eb dhe kushtet n\u00eb indeks nuk p\u00ebrputhen plot\u00ebsisht. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/196ca5116e641c72bc1009e97c390bc7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb provojm\u00eb t\u00eb b\u00ebjm\u00eb indeksin m\u00eb t\u00eb sakt\u00eb dhe t\u00eb shohim si do t\u00eb ndryshoj\u00eb ekzekutimi i k\u00ebrkes\u00ebs pas k\u00ebsaj. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/646a73964f0b6d3615eedb8acb3aa216.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Krijimi i indeksit mori mjaft koh\u00eb, por tani po kontrollojm\u00eb k\u00ebrkes\u00ebn dhe shohim se koha nga 2,5 minuta ra n\u00eb vet\u00ebm 156 milisekonda, q\u00eb \u00ebsht\u00eb mjaft mir\u00eb. Dhe po lexojm\u00eb vet\u00ebm 6 megabajt t\u00eb dh\u00ebnash.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/5cce2d6ecf2314c0575c0fed107f6d5a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe tani po p\u00ebrdorim skanimin vet\u00ebm t\u00eb indeksit.<\/p>\n<p><\/p>\n<p>Nj\u00eb histori tjet\u00ebr e r\u00ebnd\u00ebsishme \u00ebsht\u00eb se d\u00ebshirojm\u00eb ta prezantojm\u00eb planin n\u00eb nj\u00eb m\u00ebnyr\u00eb m\u00eb t\u00eb kuptueshme. Ne kemi implementuar vizualizimin p\u00ebrmes Flame Graphs. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/f4f545bfbf52fd66b6cbe45e1d6d0b6c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb nj\u00eb k\u00ebrkes\u00eb tjet\u00ebr, m\u00eb e pasur. Ne krijojm\u00eb Flame Graphs bazuar n\u00eb dy parametra: sasia e t\u00eb dh\u00ebnave q\u00eb nj\u00eb nod konkret ka lexuar dhe koh\u00ebn, dmth, koh\u00ebn e ekzekutimit t\u00eb nodit. <\/p>\n<p><\/p>\n<p>K\u00ebtu mund t\u00eb krahasojm\u00eb konkretisht nodet midis tyre. Dhe do t\u00eb jet\u00eb e qart\u00eb se cila prej tyre merr m\u00eb shum\u00eb ose m\u00eb pak, e cila zakonisht \u00ebsht\u00eb e v\u00ebshtir\u00eb t\u00eb b\u00ebhet n\u00eb metoda t\u00eb tjera vizualizimi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/c477d2f32241c69eb0b38ef45ff4708b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sigurisht, t\u00eb gjith\u00eb e din\u00eb explain.depesz.com. Nj\u00eb karakteristik\u00eb e shk\u00eblqyer e k\u00ebsaj vizualizimi \u00ebsht\u00eb se ne ruajm\u00eb planin tekstual dhe gjithashtu nxjerrim disa parametra kryesor\u00eb n\u00eb nj\u00eb tabel\u00eb, p\u00ebr t\u00eb mund\u00ebsuar renditjen. <\/p>\n<p><\/p>\n<p>Dhe zhvilluesit q\u00eb ende nuk jan\u00eb thelluar n\u00eb k\u00ebt\u00eb tem\u00eb, gjithashtu p\u00ebrdorin explain.depesz.com, sepse \u00ebsht\u00eb m\u00eb e leht\u00eb p\u00ebr ta t\u00eb kuptojn\u00eb cilat metrika jan\u00eb t\u00eb r\u00ebnd\u00ebsishme dhe cilat jo. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/a7352b5b9abf27294375c78bec69d4d4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ka nj\u00eb qasje t\u00eb re p\u00ebr vizualizimin \u2013 kjo \u00ebsht\u00eb explain.dalibo.com. Ata b\u00ebjn\u00eb nj\u00eb vizualizim n\u00eb form\u00eb peme, por k\u00ebtu \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb krahasosh nodet midis tyre. K\u00ebtu \u00ebsht\u00eb e leht\u00eb t\u00eb kuptohet struktura, megjithat\u00eb, n\u00ebse do t\u00eb ket\u00eb nj\u00eb k\u00ebrkes\u00eb t\u00eb madhe, do t\u00eb duhet t\u00eb skrollosh k\u00ebtu e atje, por \u00ebsht\u00eb gjithashtu nj\u00eb mund\u00ebsi. <\/p>\n<p><\/p>\n<h2 id=\"kollaboraciya\">Kolaborimi<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/7101c0b95eafed8fd9305a4630399e3b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe, si\u00e7 e thash\u00eb m\u00eb par\u00eb, Slack na ofron mund\u00ebsin\u00eb p\u00ebr bashk\u00ebpunim. P\u00ebr shembull, n\u00ebse hasim nj\u00eb k\u00ebrkes\u00eb t\u00eb ngat\u00ebrruar q\u00eb nuk dihet si ta optimizojm\u00eb, mund ta sqarojm\u00eb k\u00ebt\u00eb \u00e7\u00ebshtje me koleg\u00ebt tan\u00eb n\u00eb thread n\u00eb Slack. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"DBA-boti Joe. Anatoli Stansler (Postgres.ai)\" src=\"\/wp-content\/uploads\/2020\/10\/14b8f9c3401ecb68ac1ef56bc0cb0fa5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na duket se \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb testojm\u00eb me t\u00eb dh\u00ebna n\u00eb shkall\u00eb t\u00eb plot\u00eb. P\u00ebr k\u00ebt\u00eb, kemi krijuar mjetin Update Database Lab, i cili \u00ebsht\u00eb n\u00eb open source. Ju gjithashtu mund t\u00eb p\u00ebrdorni botin Joe. Mund ta merrni at\u00eb tani dhe ta p\u00ebrdorni te ju. T\u00eb gjitha udh\u00ebzimet jan\u00eb aty. <\/p>\n<p><\/p>\n<p>\u00cbsht\u00eb gjithashtu e r\u00ebnd\u00ebsishme t\u00eb theksohet se zgjidhja vet\u00eb nuk \u00ebsht\u00eb ndonj\u00eb gj\u00eb revolucionare, sepse ekziston Delphix, por kjo \u00ebsht\u00eb nj\u00eb zgjidhje enterprise. Ajo \u00ebsht\u00eb plot\u00ebsisht e mbyllur dhe kushton shum\u00eb. Ne specializohemi pik\u00ebrisht n\u00eb Postgres. T\u00eb gjitha k\u00ebto produkte jan\u00eb open source. Bashkohuni me ne! <\/p>\n<p><\/p>\n<p>Me k\u00ebt\u00eb p\u00ebrfundoj. Faleminderit!<\/p>\n<p><\/p>\n<h2 id=\"voprosy\">Pyetje<\/h2>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr prezantimin! Jasht\u00ebzakonisht interesant, sidomos p\u00ebr mua, sepse kam trajtuar nj\u00eb detyr\u00eb t\u00eb ngjashme pak koh\u00eb m\u00eb par\u00eb. Prandaj kam nj\u00eb s\u00ebr\u00eb pyetjesh. Shpresoj se do t\u00eb arrij t\u00eb b\u00ebj t\u00eb pakt\u00ebn disa prej tyre.<\/em><\/p>\n<p><\/p>\n<p><em>Interessant, sih do llogaritni hap\u00ebsir\u00ebn p\u00ebr k\u00ebt\u00eb mjedis? Technologjia n\u00ebnkupton se n\u00eb kushte t\u00eb caktuara, klon\u00ebt tuaj mund t\u00eb rriten deri n\u00eb madh\u00ebsin\u00eb maksimale. N\u00eb terma t\u00eb thjesht\u00eb, n\u00ebse keni nj\u00eb baz\u00eb dhjet\u00eb terabajt dhe 10 klon\u00eb, leht\u00ebsisht mund t\u00eb modeloni nj\u00eb situat\u00eb ku \u00e7do klon peshoj me 10 t\u00eb dh\u00ebna unike. Si e llogaritni at\u00eb hap\u00ebsir\u00eb, pra at\u00eb diferenc\u00eb, p\u00ebr t\u00eb cil\u00ebn flisnit, ku do t\u00eb jetojn\u00eb k\u00ebta klon\u00eb?<\/em><\/p>\n<p><\/p>\n<p>Pyetje e mir\u00eb. K\u00ebtu \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kuptoni klon\u00ebt specifik\u00eb. N\u00ebse ndodh nj\u00eb ndryshim shum\u00eb i madh te ndonj\u00eb klon dhe ai fillon t\u00eb rritet, mund t\u00eb l\u00ebshojm\u00eb fillimisht nj\u00eb paralajm\u00ebrim p\u00ebr k\u00ebt\u00eb p\u00ebrdoruesin, ose ta ndalojm\u00eb menj\u00ebher\u00eb at\u00eb klon, p\u00ebr t\u00eb parandaluar nj\u00eb situat\u00eb d\u00ebshtimi. <\/p>\n<p><\/p>\n<p><em>Po, kam nj\u00eb pyetje t\u00eb brendshme. Dometh\u00ebn\u00eb, si e siguroni ciklin e jet\u00ebs s\u00eb k\u00ebtyre moduleve? Ne e kemi k\u00ebt\u00eb si nj\u00eb problem dhe nj\u00eb histori t\u00eb ve\u00e7ant\u00eb. Si ndodh kjo?<\/em><\/p>\n<p><\/p>\n<p>Ka nj\u00eb ttl p\u00ebr \u00e7do klon. N\u00eb parim, ne kemi nj\u00eb ttl t\u00eb fiksuar. <\/p>\n<p><\/p>\n<p><em>Cili \u00ebsht\u00eb, n\u00ebse nuk keni ndonj\u00eb sekret?<\/em><\/p>\n<p><\/p>\n<p>1 or\u00eb, pra idle \u2013 1 or\u00eb. N\u00ebse nuk p\u00ebrdoret, at\u00ebher\u00eb ne e shuajm\u00eb. Por k\u00ebtu nuk ka asnj\u00eb surpriz\u00eb, pasi mund t\u00eb ngrem\u00eb nj\u00eb klon p\u00ebr sekonda. Dhe n\u00ebse p\u00ebrs\u00ebri nevojitet, at\u00ebher\u00eb \u2013 s'ka problem. <\/p>\n<p><\/p>\n<p><em>M\u00eb intereson gjithashtu zgjedhja e teknologjive, sepse ne, p\u00ebr shembull, p\u00ebrdorim disa metoda paralelisht p\u00ebr arsye t\u00eb ndryshme. Pse pik\u00ebrisht ZFS? Pse nuk keni p\u00ebrdorur LVM? Ju e p\u00ebrmend\u00ebt se keni pasur probleme me LVM. Cilat ishin k\u00ebto probleme? Sipas mendimit tim, opsioni m\u00eb optimal \u00ebsht\u00eb ai me SCSI, sa i p\u00ebrket performanc\u00ebs.<\/em> <\/p>\n<p><\/p>\n<p><em>Cila \u00ebsht\u00eb problemi kryesor me ZFS? Ai \u00ebsht\u00eb se duhet t\u00eb funksionoj\u00eb n\u00eb nj\u00eb host, pra t\u00eb gjith\u00eb instancat do t\u00eb jetojn\u00eb brenda nj\u00eb operacioni. Nd\u00ebrsa n\u00eb rastin me SCSI, mund t\u00eb lidhni pajisje t\u00eb ndryshme. Dhe pika e ngusht\u00eb jan\u00eb vet\u00ebm ato blloqe, t\u00eb cilat jan\u00eb n\u00eb SCSI. Dhe pyetje interesante \u00ebsht\u00eb p\u00ebr zgjedhjen e teknologjive. Pse jo LVM?<\/em><\/p>\n<p><\/p>\n<p>Mund t\u00eb flasim p\u00ebr LVM n\u00eb meetup. Rreth storjeve t\u00eb dh\u00ebnash \u2013 \u00ebsht\u00eb thjesht e kushtueshme. Ne mund ta implementojm\u00eb sistemin ZFS kudo. Mund ta vendosni n\u00eb makinat tuaja. Thjesht mund t\u00eb shkarkoni depozitat dhe ta vendosni. ZFS instalohet pothuajse kudo, n\u00ebse flasim p\u00ebr Linux. Pra, kemi nj\u00eb zgjidhje shum\u00eb fleksibile. Vet\u00eb ZFS ofron shum\u00eb nga paketa. Mund t\u00eb ngarkoni sasi t\u00eb pakufizuara t\u00eb t\u00eb dh\u00ebnave, lidhni shum\u00eb disqe, jan\u00eb t\u00eb disponueshme snapshot-et. Dhe, si\u00e7 e thash\u00eb, \u00ebsht\u00eb shum\u00eb e leht\u00eb p\u00ebr ta administruar. Pra, duket shum\u00eb e k\u00ebndshme p\u00ebr t'u p\u00ebrdorur. Ka shum\u00eb vite q\u00eb ekziston dhe \u00ebsht\u00eb testuar. Ka nj\u00eb komunitet shum\u00eb t\u00eb madh, q\u00eb vazhdon t\u00eb rritet. ZFS \u00ebsht\u00eb nj\u00eb zgjidhje shum\u00eb e besueshme. <\/p>\n<p><\/p>\n<p>Nikola Samohvalov: A mund t\u00eb komentoj edhe un\u00eb? M\u00eb quajn\u00eb Nikola, punoj me Anatonin. Jam dakord q\u00eb storjet e dh\u00ebnash jan\u00eb t\u00eb shk\u00eblqyera. Disa klient\u00eb tan\u00eb kan\u00eb Pure Storage dhe t\u00eb tjera. <\/p>\n<p><\/p>\n<p>Anatoli e theksoi sakt\u00ebsisht se ne jemi t\u00eb fokusuar n\u00eb modularitet. N\u00eb t\u00eb ardhmen, mund t\u00eb implementojm\u00eb nj\u00eb nd\u00ebrfaqe \u2013 krijo snapshot, krijo klon, shkat\u00ebrro klonin. E gjitha \u00ebsht\u00eb e leht\u00eb. Dhe storjet e dh\u00ebnash jan\u00eb t\u00eb shk\u00eblqyera, n\u00ebse ekzistojn\u00eb.<\/p>\n<p><\/p>\n<p>Por ZFS \u00ebsht\u00eb i accessible p\u00ebr t\u00eb gjith\u00eb. Mjaft me DelPhix, ata kan\u00eb 300 klient\u00eb. Prej tyre n\u00eb fortune 100 \u2014 50 klient\u00eb, dometh\u00ebn\u00eb atall\u00eb ndihmojn\u00eb NASA-n e k\u00ebshtu me radh\u00eb. \u00cbsht\u00eb koha p\u00ebr t\u00eb b\u00ebr\u00eb k\u00ebt\u00eb teknologji t\u00eb disponueshme p\u00ebr t\u00eb gjith\u00eb. Prandaj kemi Core-n\u00eb open source. Ne kemi nj\u00eb pjes\u00eb t\u00eb nd\u00ebrfaqes q\u00eb nuk \u00ebsht\u00eb open source. Kjo \u00ebsht\u00eb platforma q\u00eb do t\u00eb tregojm\u00eb. Por ne duam q\u00eb kjo t\u00eb jet\u00eb e aksesueshme p\u00ebr \u00e7do njeri. Ne duam t\u00eb b\u00ebjm\u00eb nj\u00eb revolucion, q\u00eb t\u00eb gjith\u00eb testuesit t\u00eb ndalen s\u00eb parashikuari n\u00eb laptop\u00eb. Duhet t\u00eb shkruajm\u00eb SELECT dhe t\u00eb shohim menj\u00ebher\u00eb n\u00ebse \u00ebsht\u00eb i ngadalt\u00eb. Mjaft m\u00eb me pritjen p\u00ebr t'u treguar nga DBA. Kjo \u00ebsht\u00eb synimi kryesor. Dhe mendoj se do ta arrijm\u00eb k\u00ebt\u00eb t\u00eb gjith\u00eb ne. Dhe k\u00ebt\u00eb gj\u00eb e b\u00ebjm\u00eb q\u00eb t\u00eb jet\u00eb e gjith\u00ebsecilit. Prandaj ZFS, sepse do t\u00eb jet\u00eb i gjith\u00ebp\u00ebrhapur. Faleminderit komunitetit p\u00ebr zgjidhjen e problemeve dhe p\u00ebr licenc\u00ebn open source etj.* <\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr prezantimin! M\u00eb quajn\u00eb Maksim. Ne kemi p\u00ebrballuar probleme t\u00eb ngjashme. I kemi zgjidhur atje. Si ndani burimet midis k\u00ebtyre klon\u00ebve? \u00c7do klon n\u00eb \u00e7do moment mund t\u00eb merret me gj\u00ebn\u00eb e vet: nj\u00eb teston di\u00e7ka, tjetri di\u00e7ka tjet\u00ebr, nj\u00eb nd\u00ebrtim indeksi, ndonj\u00eb tjet\u00ebr ka nj\u00eb pun\u00eb t\u00eb r\u00ebnd\u00eb. N\u00ebse p\u00ebr CPU ka mund\u00ebsi t\u00eb ndajm\u00eb, si e ndan p\u00ebr IO? Ky \u00ebsht\u00eb pyetja e par\u00eb.<\/em><\/p>\n<p><\/p>\n<p><em>Dhe pyetje e dyt\u00eb ka t\u00eb b\u00ebj\u00eb me mosp\u00ebrputhjen e standeve. Supozoni, kam k\u00ebtu ZFS dhe gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull, nd\u00ebrsa klienti n\u00eb prodhimin e tij ka ext4, p\u00ebr shembull. Si e zgjidhim k\u00ebt\u00eb rast?<\/em><\/p>\n<p><\/p>\n<p>Pyetjet jan\u00eb shum\u00eb t\u00eb mira. Pak e p\u00ebrmenda k\u00ebt\u00eb problem lidhur me ndarjen e burimeve. Zgjidhja \u00ebsht\u00eb si m\u00eb posht\u00eb. Mendoni se keni nj\u00eb testim n\u00eb staging. Edhe aty mund t\u00eb ndodhi q\u00eb dikush t\u00eb jap\u00eb nj\u00eb ngarkes\u00eb, ndonj\u00eb tjet\u00ebr nj\u00eb tjet\u00ebr. N\u00eb fund, shihni metrika t\u00eb paqarta. Edhe nj\u00eb problem i till\u00eb mund t\u00eb ndodh\u00eb n\u00eb prodhim. Kur d\u00ebshironi t\u00eb kontrolloni nj\u00eb k\u00ebrkes\u00eb dhe shihni se ka ndonj\u00eb problem \u2013 ajo po p\u00ebrfundon ngadal\u00eb, n\u00eb t\u00eb v\u00ebrtet\u00eb problemi nuk ka qen\u00eb n\u00eb k\u00ebrkes\u00eb, por n\u00eb ngarkes\u00ebn paralele. <\/p>\n<p><\/p>\n<p>Pra, k\u00ebtu \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb p\u00ebrqendrohemi n\u00eb at\u00eb se \u00e7far\u00eb plani do t\u00eb kemi, cilat hapa do t\u00eb ndjekim dhe sa t\u00eb dh\u00ebna do t\u00eb ngrem\u00eb p\u00ebr k\u00ebt\u00eb. Ajo q\u00eb ka t\u00eb b\u00ebj\u00eb me diskun, p\u00ebr shembull, q\u00eb do t\u00eb ngarkohet me di\u00e7ka, do t\u00eb ndikoj\u00eb konkretisht n\u00eb koh\u00ebn e p\u00ebrgjigjes. Por mund t\u00eb vler\u00ebsojm\u00eb sasin\u00eb e t\u00eb dh\u00ebnave p\u00ebr t\u00eb par\u00eb se sa e ngarkuar \u00ebsht\u00eb kjo k\u00ebrkes\u00eb. Nuk ka shum\u00eb r\u00ebnd\u00ebsi n\u00ebse ka nj\u00eb ekzekutim tjet\u00ebr n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb. <\/p>\n<p><\/p>\n<p><em>Kam dy pyetje. Kjo \u00ebsht\u00eb di\u00e7ka shum\u00eb e bukur. A ka pasur raste kur t\u00eb dh\u00ebnat n\u00eb production jan\u00eb tep\u00ebr t\u00eb r\u00ebnd\u00ebsishme, si\u00e7 jan\u00eb numrat e kartave t\u00eb kreditit? A \u00ebsht\u00eb ndonj\u00eb gj\u00eb e gatshme tashm\u00eb apo \u00ebsht\u00eb nj\u00eb detyr\u00eb e ve\u00e7ant\u00eb? Pyetja e dyt\u00eb \u2013 a ka di\u00e7ka t\u00eb till\u00eb p\u00ebr MySQL?<\/em><\/p>\n<p><\/p>\n<p>P\u00ebr sa i p\u00ebrket t\u00eb dh\u00ebnave. Ne do t\u00eb b\u00ebjm\u00eb obfuscim, derisa ta b\u00ebjm\u00eb k\u00ebt\u00eb. Por n\u00ebse ju implementoni pik\u00ebrisht Joe, n\u00ebse nuk i jepni qasje zhvilluesve, at\u00ebher\u00eb nuk ka qasje n\u00eb t\u00eb dh\u00ebna. Pse? Sepse Joe nuk tregon t\u00eb dh\u00ebnat. Ai tregon vet\u00ebm metrikat, planet dhe gjith\u00e7ka tjet\u00ebr. Kjo \u00ebsht\u00eb b\u00ebr\u00eb q\u00ebllimisht, sepse \u00ebsht\u00eb nj\u00eb nga k\u00ebrkesat e klientit ton\u00eb. Ata d\u00ebshironin t\u00eb kishin mund\u00ebsin\u00eb t\u00eb optimizojn\u00eb, por pa i dh\u00ebn\u00eb qasje t\u00eb gjith\u00ebve. <\/p>\n<p><\/p>\n<p>P\u00ebr sa i p\u00ebrket MySQL. Ky sistem mund t\u00eb p\u00ebrdoret p\u00ebr \u00e7do gj\u00eb q\u00eb ruan gjendjen n\u00eb disk. Dhe pasi ne merremi me Postgres, aktualisht po b\u00ebjm\u00eb automatin e plot\u00eb p\u00ebr Postgres. Ne duam t\u00eb automatizojm\u00eb marrjen e t\u00eb dh\u00ebnave nga backup. Ne e konfigurojm\u00eb Postgres si\u00e7 duhet. Ne e dim\u00eb se si mund t\u00eb b\u00ebjm\u00eb q\u00eb planet t\u00eb p\u00ebrputhen, etj. <\/p>\n<p><\/p>\n<p>Por shkak se sistemi \u00ebsht\u00eb i zgjeruesh\u00ebm, ai gjithashtu mund t\u00eb p\u00ebrdoret p\u00ebr MySQL. Ka disa shembuj t\u00eb till\u00eb. Nj\u00eb skem\u00eb e ngjashme ka Yandex, por ata nuk e publikojn\u00eb asnj\u00ebher\u00eb. Ata e p\u00ebrdorin brenda Yandex.Metrica. Dhe aty sakt\u00ebsisht ka histori p\u00ebr MySQL. Por teknologjit\u00eb jan\u00eb t\u00eb nj\u00ebjta, ZFS. <\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr prezantimin! Kam edhe disa pyetje. Ju p\u00ebrmend\u00ebt se klonimi mund t\u00eb p\u00ebrdoret p\u00ebr analitik\u00eb, p\u00ebr shembull, p\u00ebr t\u00eb nd\u00ebrtuar indekse shtes\u00eb atje. Mund t\u00eb na tregoni pak m\u00eb shum\u00eb se si funksionon kjo?<\/em><\/p>\n<p><\/p>\n<p><em>Dhe menj\u00ebher\u00eb po b\u00ebj pyetjen e dyt\u00eb n\u00eb lidhje me uniformitetin e standeve, uniformitetin e planeve. Plani varet, p\u00ebrfshir\u00eb statistik\u00ebn e mbledhur nga Postgres. Si e zgjidhni k\u00ebt\u00eb problem?<\/em><\/p>\n<p><\/p>\n<p>P\u00ebr analitik\u00ebn nuk kemi raste t\u00eb ve\u00e7anta, sepse nuk e kemi p\u00ebrdorur k\u00ebshtu deri tani, por ka nj\u00eb mund\u00ebsi t\u00eb till\u00eb. N\u00ebse flasim p\u00ebr indekset, imagjinoni q\u00eb nj\u00eb k\u00ebrkes\u00eb ekzekutohet n\u00eb nj\u00eb tabel\u00eb me qindra milion\u00eb t\u00eb dh\u00ebna dhe n\u00eb nj\u00eb kolon\u00eb q\u00eb zakonisht nuk \u00ebsht\u00eb indeksuar n\u00eb prodhim. Dhe ne duam t\u00eb llogarisim disa t\u00eb dh\u00ebna aty. N\u00ebse e ekzekutojm\u00eb k\u00ebt\u00eb k\u00ebrkes\u00eb n\u00eb prodhim, ka mund\u00ebsi q\u00eb prodhimi t\u00eb ndalet, sepse k\u00ebrkesa do t\u00eb zgjat p\u00ebr nj\u00eb minut\u00eb. <\/p>\n<p><\/p>\n<p>Ok, le t\u00eb b\u00ebjm\u00eb nj\u00eb klon t\u00eb holl\u00eb, i cili nuk \u00ebsht\u00eb problem t\u00eb ndalet p\u00ebr disa minuta. Dhe p\u00ebr ta b\u00ebr\u00eb m\u00eb t\u00eb leht\u00eb llogaritjen e statistikave, do t\u00eb shtojm\u00eb indekse p\u00ebr ato kolona q\u00eb na interesojn\u00eb. <\/p>\n<p><\/p>\n<p><em>Indeksi do t\u00eb krijohet \u00e7do her\u00eb?<\/em><\/p>\n<p><\/p>\n<p>Mund t\u00eb b\u00ebjm\u00eb q\u00eb t\u00eb prekim t\u00eb dh\u00ebnat, t\u00eb krijojm\u00eb snapshot-e, pastaj nga ky snapshot do t\u00eb rikthehemi dhe t\u00eb ekzekutojm\u00eb k\u00ebrkesa t\u00eb reja. Dometh\u00ebn\u00eb, mund t\u00eb b\u00ebjm\u00eb q\u00eb t\u00eb mund t\u00eb ndajm\u00eb klon\u00eb t\u00eb rinj me indekse t\u00eb vendosura tashm\u00eb.<\/p>\n<p><\/p>\n<p>Sa i p\u00ebrket pyetjes n\u00eb lidhje me statistikat, n\u00ebse ne rikthehemi nga nj\u00eb backup, n\u00ebse ne b\u00ebjm\u00eb replikim, at\u00ebher\u00eb statistikat tona do t\u00eb jen\u00eb sakt\u00ebsisht t\u00eb nj\u00ebjta. Sepse struktura fizike e t\u00eb dh\u00ebnave do t\u00eb jet\u00eb plot\u00ebsisht identike, dmth. t\u00eb dh\u00ebnat si\u00e7 jan\u00eb me t\u00eb gjitha metrikat e statistik\u00ebs do t'i sjellim gjithashtu. <\/p>\n<p><\/p>\n<p>K\u00ebtu ka nj\u00eb problem tjet\u00ebr. N\u00ebse p\u00ebrdoret nj\u00eb zgjidhje cloud, at\u00ebher\u00eb aty jan\u00eb t\u00eb disponueshme vet\u00ebm dump-et logjike, sepse Google, Amazon nuk japin kopje fizike. Do t\u00eb ket\u00eb nj\u00eb problem t\u00eb till\u00eb. <\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr raportin. K\u00ebtu u shfaq\u00ebn dy pyetje t\u00eb mira p\u00ebr MySQL dhe p\u00ebr ndarjen e burimeve. Megjithat\u00eb, thelb\u00ebsisht, gjith\u00e7ka reduktohet n\u00eb faktin se kjo \u00ebsht\u00eb nj\u00eb tem\u00eb jo specifike p\u00ebr SGBD-t\u00eb, por p\u00ebr sistemin e skedar\u00ebve n\u00eb p\u00ebrgjith\u00ebsi. Prandaj, pyetjet p\u00ebr ndarjen e burimeve gjithashtu duhet t\u00eb zgjidhen nga aty, dhe jo n\u00eb fund, duke th\u00ebn\u00eb se \u00ebsht\u00eb Postgres, por n\u00eb sistemin e skedar\u00ebve, n\u00eb <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/dts-dronten\/\"   title=\"serveri\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2602\">serveri<\/a>, n\u00eb instance.<\/em> <\/p>\n<p><\/p>\n<p><em>Pyetja ime \u00ebsht\u00eb pak m\u00eb ndryshe. Ajo \u00ebsht\u00eb m\u00eb af\u00ebr shum\u00eb-shtresimit t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave, ku ka disa shtresa. P\u00ebr shembull, ne kemi konfigurur azhurnimin e nj\u00eb imazhi dhjet\u00eb terabajt\u00ebsh, kemi replikimin n\u00eb zhvillim. Dhe ne konkretisht p\u00ebrdorim k\u00ebt\u00eb zgjidhje p\u00ebr bazat e t\u00eb dh\u00ebnave. Po zhvillohet replikimi, ndodhin azhurnime t\u00eb t\u00eb dh\u00ebnave. N\u00eb k\u00ebt\u00eb rast, punojn\u00eb paralelisht 100 punonj\u00ebs, t\u00eb cil\u00ebt vazhdimisht fillojn\u00eb k\u00ebto imazhe t\u00eb ndryshme. \u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb? Si mund t\u00eb b\u00ebjm\u00eb q\u00eb t\u00eb mos ket\u00eb konflikte, q\u00eb ata t\u00eb fillojn\u00eb nj\u00eb t\u00eb till\u00eb, pastaj sistemi i skedar\u00ebve t\u00eb ndryshoj\u00eb, dhe k\u00ebto imazhe t\u00eb shkelen?<\/em> <\/p>\n<p><\/p>\n<p>Ato nuk do t\u00eb \u00e7ojn\u00eb, sepse k\u00ebshtu funksionon ZFS. Mund t\u00eb mbajm\u00eb ndar\u00eb n\u00eb nj\u00eb rrjedh\u00eb ndryshimet e sistemit t\u00eb skedar\u00ebve, t\u00eb cilat vijn\u00eb p\u00ebrmes replikimit. Dhe t\u00eb mbajm\u00eb klon\u00ebt n\u00eb versionet e vjetra t\u00eb t\u00eb dh\u00ebnave, t\u00eb cilat zhvilluesit i p\u00ebrdorin. Dhe kjo na funksionon, me k\u00ebt\u00eb gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull.<\/p>\n<p><\/p>\n<p><em>K\u00ebshtu q\u00eb p\u00ebrdit\u00ebsimi do t\u00eb ndodh\u00eb si nj\u00eb shtres\u00eb shtes\u00eb, dhe t\u00eb gjitha imazhet e reja do t\u00eb shkojn\u00eb duke u bazuar n\u00eb k\u00ebt\u00eb shtres\u00eb, apo jo?<\/em> <\/p>\n<p><\/p>\n<p>Nga shtresat e m\u00ebparshme, q\u00eb kan\u00eb qen\u00eb nga replikimet e m\u00ebparshme. <\/p>\n<p><\/p>\n<p><em>Shtresat e m\u00ebparshme do t\u00eb largohen, por ato do t\u00eb referohen n\u00eb shtres\u00ebn e vjet\u00ebr, dhe imazhet e reja do t'i marrin nga shtresa e fundit q\u00eb \u00ebsht\u00eb marr\u00eb n\u00eb p\u00ebrdit\u00ebsim?<\/em><\/p>\n<p><\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, po. <\/p>\n<p><\/p>\n<p><em>At\u00ebher\u00eb si pasoj\u00eb do t\u00eb kemi shum\u00eb shtresa. Dhe me kalimin e koh\u00ebs do t\u00eb duhet t'i kompresojm\u00eb?<\/em><\/p>\n<p><\/p>\n<p>Po, sakt\u00ebsisht. Ka nj\u00eb dritare. Ruajm\u00eb snapshot-e javore. Kjo varet nga sa burime keni. N\u00ebse keni mund\u00ebsin\u00eb t\u00eb ruani shum\u00eb t\u00eb dh\u00ebna, mund t\u00eb mbani snapshot-e p\u00ebr nj\u00eb periudh\u00eb t\u00eb gjat\u00eb. Ato nuk do t\u00eb fshihen vet\u00eb. Nuk do t\u00eb ket\u00eb ndonj\u00eb korruptim t\u00eb t\u00eb dh\u00ebnave. N\u00ebse snapshot-et jan\u00eb t\u00eb vjetra, si\u00e7 na duket, dmth kjo varet nga politika n\u00eb kompani, at\u00ebher\u00eb mund t\u2019i fshijm\u00eb ato dhe t\u00eb \u00e7lirojm\u00eb hap\u00ebsir\u00eb. <\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje, faleminderit p\u00ebr prezentimin! N\u00eb lidhje me pyetjen e Joe. Ju that\u00eb se klienti nuk d\u00ebshironte t\u2019i jepte qasje askujt p\u00ebr t\u00eb dh\u00ebnat. Rrept\u00ebsisht, n\u00ebse nj\u00eb person ka rezultatet e Explain Analyze, ai mund t'i shikoj\u00eb t\u00eb dh\u00ebnat.<\/em> <\/p>\n<p><\/p>\n<p>E gjitha \u00ebsht\u00eb e v\u00ebrtet\u00eb. P\u00ebr shembull, ne mund t\u00eb shkruajm\u00eb: \u00abSELECT FROM WHERE email = dikush\u00bb. K\u00ebshtu, ne nuk do t\u00eb shohim t\u00eb dh\u00ebnat vet\u00eb, por mund t\u00eb shikojm\u00eb disa tregues indirekt. Kjo \u00ebsht\u00eb di\u00e7ka q\u00eb duhet ta kuptojm\u00eb. Megjithat\u00eb, nga ana tjet\u00ebr, kjo \u00ebsht\u00eb gjithashtu evidente. Ne kemi log\u00ebt e auditurit, kemi kontrollin e koleg\u00ebve t\u00eb tjer\u00eb q\u00eb gjithashtu shohin se me \u00e7far\u00eb po merren zhvilluesit. Dhe n\u00ebse dikush p\u00ebrpiqet t\u00eb b\u00ebj\u00eb k\u00ebshtu, sh\u00ebrbimi i siguris\u00eb do t\u00eb shkoj\u00eb tek ata dhe do t\u00eb punoj\u00eb mbi k\u00ebt\u00eb \u00e7\u00ebshtje. <\/p>\n<p><\/p>\n<p><em>P\u00ebrsh\u00ebndetje! Faleminderit p\u00ebr prezantimin! Kam nj\u00eb pyetje t\u00eb shkurt\u00ebr. N\u00ebse Slack nuk p\u00ebrdoret n\u00eb kompani, a ka ndonj\u00eb lidhje me t\u00eb tani ose a mund t\u00eb krijojm\u00eb instanca p\u00ebr zhvilluesit, p\u00ebr t\u00eb lidhur aplikacionin testues me bazat?<\/em><\/p>\n<p><\/p>\n<p>Aktualisht ka nj\u00eb lidhje me Slack, dometh\u00ebn\u00eb nuk ka ndonj\u00eb mesazh tjet\u00ebr, por \u00ebsht\u00eb shum\u00eb e d\u00ebshirueshme t\u00eb b\u00ebjm\u00eb mb\u00ebshtetje p\u00ebr mesazhe t\u00eb tjera gjithashtu. \u00c7far\u00eb mund t\u00eb b\u00ebni? Mund t\u00eb vendosni DB Lab pa Joe, t\u00eb p\u00ebrdorni REST API ose platform\u00ebn ton\u00eb p\u00ebr t\u00eb krijuar klon\u00eb dhe p\u00ebr t'u lidhur me PSQL. Por kjo mund t\u00eb b\u00ebhet n\u00ebse jeni t\u00eb gatsh\u00ebm t\u00eb jepni zhvilluesve tuaj qasje n\u00eb t\u00eb dh\u00ebna, sepse k\u00ebtu nuk do t\u00eb ket\u00eb asnj\u00eb ekran. <\/p>\n<p><\/p>\n<p><em>Mua m\u00eb nevojitet kjo nd\u00ebrfaqe, por m\u00eb nevojitet nj\u00eb mund\u00ebsi e till\u00eb.<\/em><\/p>\n<p><\/p>\n<p>At\u00ebher\u00eb \u2013 po, kjo mund t\u00eb b\u00ebhet.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/524542\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u043a backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u00ab\u043f\u0440\u043e\u0434\u0435\u00bb? \u0412 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u043f\u0440\u043e\u0434\u0443\u00bb \u0435\u0441\u0442\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445. \u0414\u0430 \u0438 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0411\u0414 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0430\u0441\u044b. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e DBA \u2014 Joe. \u041e\u043d \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97940,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u043a backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u00ab\u043f\u0440\u043e\u0434\u0435\u00bb? \u0412 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u043f\u0440\u043e\u0434\u0443\u00bb \u0435\u0441\u0442\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445. \u0414\u0430 \u0438 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0411\u0414 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0430\u0441\u044b. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e DBA \u2014 Joe. \u041e\u043d \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47DBA-\u0431\u043e\u0442 Joe. \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0421\u0442\u0430\u043d\u0441\u043b\u0435\u0440 (Postgres.ai) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u043a backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u00ab\u043f\u0440\u043e\u0434\u0435\u00bb? \u0412 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u043f\u0440\u043e\u0434\u0443\u00bb \u0435\u0441\u0442\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445. \u0414\u0430 \u0438 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0411\u0414 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0430\u0441\u044b. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e DBA \u2014 Joe. \u041e\u043d \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-23T06:42:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-23T06:42:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47DBA-boti Joe. Anatolij Stansler (Postgres.ai) | ProHoster","description":"Si e kupton nj\u00eb zhvillues backend se nj\u00eb SQL k\u00ebrkes\u00eb do t\u00eb punoj\u00eb mir\u00eb n\u00eb 'prod'? N\u00eb kompanit\u00eb e m\u00ebdha ose me rritje t\u00eb shpejt\u00eb, akses n\u00eb 'prod' nuk kan\u00eb t\u00eb gjith\u00eb. Po ashtu, edhe me akses, jo t\u00eb gjitha k\u00ebrkesat mund t\u00eb kontrollohen pa dhimbje, dhe krijimi i nj\u00eb kopjeje t\u00eb DB shpesh merr or\u00eb. P\u00ebr t\u00eb zgjidhur k\u00ebto probleme, ne krijuam nj\u00eb DBA t\u00eb artificialisht \u2013 Joe. Ai tashm\u00eb ka pasur sukses","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47DBA-\u0431\u043e\u0442 Joe. \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0421\u0442\u0430\u043d\u0441\u043b\u0435\u0440 (Postgres.ai) | ProHoster","og:description":"\u041a\u0430\u043a backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u00ab\u043f\u0440\u043e\u0434\u0435\u00bb? \u0412 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u00ab\u043f\u0440\u043e\u0434\u0443\u00bb \u0435\u0441\u0442\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445. \u0414\u0430 \u0438 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0411\u0414 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0430\u0441\u044b. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e DBA \u2014 Joe. \u041e\u043d \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/dba-bot-joe-anatolij-stansler-postgres-ai","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-23T06:42:49+00:00","article:modified_time":"2020-10-23T06:42:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97939","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:09:26","updated":"2026-02-09 21:38:06"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/97939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=97939"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/97939\/revisions"}],"predecessor-version":[{"id":159884,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/97939\/revisions\/159884"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/97940"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=97939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=97939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=97939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}