Ukusebenza kwebhasi ye-database ibhizinisi elikhulu, kodwa ngoko ke akufuneka ukufundisa iingxaki zayo kunye neengxaki zayo? 😉 Nazi ingxaki elifanelekileyo etholakalayo ekubeni kwi-Chapter 1 of . Database Performance at Scale, i-book ye-Open Access yamahhala Umgangatho we-database kwi-scale Umgangatho we-database kwi-scale Iimpawu zobuchwepheshe ezidlulileyo apha zithunyelwe kulo lonke le nqaku. Kodwa le nqaku olungapheliyo malunga nePatrick ebuthandayo. Ungayifumana izifundo zayo zithunyelwe izifundo ezininzi ezininzi ezininzi, ukhuseleko kwi-performance predicaments ye-database yakho ... kwaye mhlawumbi i-chocks ezininzi. * Iimveliso Emva kokubonakaliswa kwikhompyutha ye-FAANG MAANG (MANGA?) yaye uPatrick uye waqala i-niche online store ekhethekileyo yokuthengisa i-headset yayo ye-favourite, i-green fedoras. Ukubonisa ukuba i-database ye-NoSQL yaziwa kwakhona kwi-front page ye-Hacker News, uPatrick wafumana yayo ngenxa ye-backend ye-stack yayo. Emva kokuphumelela nge-free-tier ye-offering, uPatrick uye wafumana i-contract ye-1 yonyaka kunye nomthengisi we-cloud enkulu ukuze ufumane i-discount enkulu kwi-NoSQL database-as-a-service offer. Nge-provisioned throughput enokufumana kubathengi angama-1000 ngenyanga, i-tech stack yaye i-store yaye yaye yaye yaye yaye i-opened iintloko zayo ze-virtual kubathengi. Ngokuba i-disappointment yePatrick, engaphezulu kwizigidi kubathengi abalandeli kwisayithi ngosuku. Kwakhona, i-database cluster entsha ebuthakathwa, ebuthakathwa ngexesha elide ye-money evela kwi-credit card yayo kwaye Patrick’s Diary of Lessons Learned, Part I I-Patrick's Diary of Lessons Learned, I-Part I Iingcebiso ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye: Nangona iibhanki ze-databases zibonisa ukuba zibonise njengoko i-universal, amaninzi ze-databases zibonisa kakuhle kwiintlobo ezithile ze-workloads. I-analysis ngaphambi kokukhetha i-databases yeemfuno zakho zihlanganisa iimpawu ze-workload yakho: Ngaba kunokwenzeka ukuba i-flow ye-requirements iyafumaneka kwaye iyahlukileyo (isib. Ukuhlaziywa kwakhona kwiinkqubo ezininzi ngexesha elide)? I-DataBase-as-a-Service inikezela ukhethe phakathi kwe-provisioned throughput kunye ne-on-demand. Nangona le nkqubo ilungele ngexesha elide, kunye neengxaki ezininzi zokusebenza? I-DataBase-as-a-Service inikezela ukhethe phakathi kwe-provisioned throughput kunye ne-on-demand. Nangona i-first ye-cost-efficient kakhulu, kuxhomekeke i-cost efana ne-database efanelekileyo. Le nkqubo ye-DataBase-as-a-Service inikezela ukhethe phakathi kwe-provisioned throughput kunye ne-on-demand. Fumana ixesha ukucacisa ukhetho wakho kwaye ukunceda ukuxhaswa kwiinkontrakthi ezininzi (ngaphandle kwe-discount) ngaphambi kokuba ufumane ukuba le setup isebenza kuwe ngexesha elide. I-Spike yokuqala U-March 17 iye yenzelwe njengoko ngosuku elihle kakhulu. U-Patrick uyenza ukufumana iintlawulo ezininzi ezintsha ukusuka kwixesha elandelayo. Kodwa njengoko inani lwabathengi abasebenzayo lithunyelwe ngexesha elidlulileyo, i-mood yePatrick uqala ukuxhaswa. Oku lihlanganisa ngokugqithisileyo kunye ne-rate yeentlawulo eyenziwa kumakhasimende abalandeli abalandeli abalandeli abalandeli abalandeli abalandeli. Emva kwe-brainstorming esincinane kunye ne-web search engine, uPatrick wafumana, kuxhomekeke kwakhe, ukuba ungenza izixhobo ze-observability kwi-database ye-claster yayo enzima (okungapheliyo kakhulu). Kwixesha elide emva kokufaka i-Grafana kunye nokufundisa i-metric, uPatrick wafumana ukuba nangona inani le-requests ebandakanya ukwandisa, i-success rate yayo ilawulwa kwinqanaba elifanelekileyo, phantsi kwe-traffic ebandayo namhlanje. "I-provisioned output hits again," uPatrick waya kwakhona, xa uqhagamshelane kwiizigidi ze-"output exceeded" iingxelo zeengxelo ezidlulileyo ezidlulileyo malunga ne-11.00 pm. Patrick’s Diary of Lessons Learned, Part II I-Patrick's Diary of Lessons Learned, I-Part II Yinto yaye i-Patrick yaziwa: Ukuba ubunzima wakho lokusebenza, nceda uqhagamshelane nawe kwaye nceda uqhagamshelane i-cluster yakho ukuze uyakwazi ukufumana ubunzima obunzima. Izisombululo ze-database-as-a-service ziyafumaneka ukunceda ukuguqulwa kwe-provisioned throughput ngexesha elifanelekileyo, nto leyo kuthetha ukuba i-threshold yeemfuno eyenziwe ngexesha elidlulileyo kwinqanaba elidlulileyo okanye, ngexesha elidlulileyo, zithumela ukunciphisa ngexesha elidlulileyo ukuze yenza isisombululo olungaphambili. Nangona ubungakanani yakho yokusebenza ngokupheleleyo, isixeko se-hardware esizayo okanye isivakashi se-DDoS esizayo inokukhawuleza ukwandisa kakhulu iimfuno ze-incoming. I-Observability yinkcukacha kwiinkqubo ezidlulileyo. Kufuneka i-developer ukubuyekeza iingxaki ngokugqithisileyo. Kwakhona inikeza iingxaki ze-real-time xa i-scenario yeengxaki ye-probable ifumaneka, okuvumela abathengi ukuguqulwa ngokukhawuleza kunye nokuvimbela ukuba ingxaki ye-bigger ifumaneka, okanye ukunciphisa okungenani imiphumela emibi kwi-cluster. Iingubo yokuqala I-Patrick ayikwazi ukufumana ukusuka kwi-trauma yokuthintela iintlobo zayo ezininzi ngosuku olungaphakathi kwiminyaka eyodwa apho i-green fedoras ibonelela nayiphi na umnqweno, xa umbhali waya. Iquka kuquka umnqweno omnqweno we-customer ebonakalayo, owavela ngempumelelo kunye nenkqubo yayo kunye nentlawulo (kuquka i-check-in ye-payment processing operator njenge-proof), kodwa ngoku ayikwazi ukufumana nayiphi na iinkcukacha ze-order yayo - kwaye uyakwazi ukuhambisa! Ngaphandle kwexesha elandelayo, uPatrick uqhagamshelane kwi-database. Ngokungafani wayo, waye awukwazi ukufumana nayiphi na ingxaki ye-orders. Ngokungafuni, uPatrick uye wabelane imiqondiso yayo ngokucacileyo ngokucacisa kwi-backup snapshot directory. I-director yaba embalwa, njengoko enye yeentsebenziswano yokuqala yePatrick yaba ukunciphisa ixesha kunye namaxabiso ngokunciphisa iinkqubo ze-backup ezininzi. Ukusuka kwimveliso yobugcisa kwabasetyhini yayo, uPatrick wabhala ukuba kunokwenzeka ukufikelela phakathi kwimveliso yobugcisa, ukusebenza kunye nokufumaneka. Ngokufanisa iingxaki, umntu unokufuna i-linearizabilityFootnote7 ngexabiso lokunciphisa, okanye ukunciphisa iimveliso yobugcisa kunye nokwandisa ukusebenza ngokufanelekileyo. Amandla engaphezulu yobugcisa yaba i-no-brainer yePatrick iintsuku ezininzi ezidlulileyo, kodwa ekugqibeleni idatha yabasebenzisi zithunyelwa kwi-server eyodwa ngaphandle kwezinye i-replicas ezidibaniswe kwi-system. Emva kwe-server yaye isiphumo - nto leyo kuthatha Patrick’s Diary of Lessons Learned, Part III I-Patrick's Diary of Lessons Learned, I-Part III Izifundo ezininzi zihlanganisa: Ukuphepha kubalulekile kwi-environment e-distributed, kwaye akukho into efana nokufaka iintlobo ze-backup "kwixesha elide." Iinkqubo zixhaswa, kwaye i-backups ziyafumaneka ukuguqula iinkcukacha ezininzi ezibalulekileyo. Zonke iinkqubo ze-database zihlanganisa iimodeli ye-consistency, kwaye kubalulekile ukufikelela oku xa utyelela iiprojekthi yakho. Kukho iingxaki zokusetyenziswa. Kwiimeko ezithile zokusetyenziswa (ngathi iinkqubo ze-finance), ukuxhomekeka kubalulekile. Kwiimeko ezininzi, ukuxhomekeka kwakhona kunokufumaneka, nangona i-system iyafumaneka kakhulu kunye nokuphendula. I-Spike Yenza Yintoni Iinyanga ezidlulileyo kwaye i-schedule ye-sleep ye-Patrick yaba kufumaneka ukufumana iimpawu ze-stabilization. Nge-backups ezivamile, i-model ye-consistency eyenziwe kwakhona, kunye ne-reminiscent ebonakalayo kwi-kalendar yayo ye-16 March ukwandisa i-cluster ukulawula i-traffic ephakamileyo, ndiyifunyenwe ngokufanelekileyo. Ukuba ndiyazi ukuba ividiyo yeqhelekileyo yeqhelekileyo yeqhelekileyo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo ebandayo. Nangona kunjalo, i-observability suite yenza umsebenzi yayo kwaye iye yenza iingcebiso ngokukhawuleza, okuvumela ukusabela ngokukhawuleza. Ngoku, nangona i-Patrick agqiba ngexesha elide, iinkcukacha ze-databases ziyafumaneka ngokuthe ngexesha elifanayo, kwaye i-system yayo yokufuneka kwimeko. I-spike ye-concurrency yaba kakhulu kunye ne-concentrated, njengoko izigidi zeengcebisi ze-Malaysian ziye zithembisa ukuba bafumane i-green hats ngokuthe ngexesha elandelayo kwi-Internet. I-Patrick yaba kufumana i-instantiation ye-real-life ye-Internet. Ukusebenzisa isisombululo enhle, L = λW, isisombululo inokukwazi ukucaciswa ukuba i-concurrent equals yi-passput time latency. Umthetho we-Little Ukuba unayo iingxaki ukufumana i-formula, nqakraza iiyunithi. I-competition iyiphi inombolo, i-latency ingatholakala kwiisekundu, kwaye i-throughput iyatholakala kwi-1/s. Ngoko ke, kunokwenzeka ukuba ukuze iiyunithi ziyafumaneka, i-concurrency kufuneka ifumaneka ngokufanisa i-latency (iisekundu) yi-throughput (1/s). Uya kuthetha! Ukucinga: Ukucinga: Throughput kuxhomekeke kwi-hardware yaye ngokwemvelo iintlobo zayo (umzekelo, ungenza ukuba i-NVMe drive eyakhiwe ngo-2023 ukunika idatha yakho kwi-terabytes ye-second, nangona siphindezi iingcali zethu ukuba le ngxaki kufakwe ngexesha elidlulileyo!) Emva kokuphumelela i-limit, unako ukuchitha njenge-constante kwi-formula. Kule ngoko kucacisa ukuba xa i-concurrency ibandakanya, ngoko ke i-latency. Kuba abasebenzisi ekupheleni-umdlali we-Malaysian kwi-scenario yale - oku kuthetha ukuba i-latency iya kuxhomekeka kwi-barrier ye-magic ye-perception yabantu abadala kwiiveki ez Patrick’s Diary of Lessons Learned, Part IV I-Patrick's Diary of Lessons Learned, I-Part IV Ukufundwa kwakhona: I-spikes eyenziwe ngempumelelo, kwaye ukunciphisa i-cluster ingabikho ngokukhawuleza nokunciphisa imiphumo emibi ye-concurrency emibi. Ukukhangisa i-database ukuxhaswa ngokufanelekileyo ayinayo, kodwa akukho zonke i-database inokufanelekileyo. Ukuba kunokwenzeka, ukunciphisa i-concurrency kwi-system yakho ngokukhawuleza kunokuba. Umzekelo, ukuba i-database ayikwazi ukuxhaswa ngqo kumakhasimende (okungcono elungileyo ngenxa yeengxaki ezininzi) kodwa kunokufumaneka nge-set ye-microservices ebonakalayo, sicela ukuba i-microservices ziyafumaneka kunye neengxaki ze-concurrency. Qinisekisa ukuba I-Little's Law ikhona - yinto yenzululwazi esisiseko kumadoda oya kubafuneka kwiinkqubo ezidibanisiweyo. Ukukhuthaza oku ngokufanelekileyo kunceda ukhangela kakhulu phakathi kwabasetyhini. Ukukhuthaza Backup Emva kokuguqulwa kwiprojekthi yayo kwakhona ukuze zihlanganise izibambiso zangaphambili kunye nezifumanekanga, uPatrick wahlala ngempumelelo ukuba i-fedora yobugcisa ekugqibeleni i-ramen. Ngokuqhelekanga, i-17 March elandelayo ayikho ngexesha elifanelekileyo njengoko kufuneka. UPatrick wahlala iintsuku ezininzi ukufumana i-Grafana dashboards, leyo kwandisa ukuba i-traffic yaba phantsi kolawulo kunye nokufumana i-load yeengcali, kunye ne-safe margin. Kodwa ke i-dashboards zilungele, ngokucacisa ukuba i-disks ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye zibe... Patrick’s Diary of Lessons Learned, Part V I-Patrick's Diary of Lessons Learned, I-Part V Imibuzo lokugqibela: Iinkqubo ze-database ziyafumaneka ngokuqhelekileyo ngaphandle kwezicelo ze-username. Izixhobo ze-maintenance ziyafumaneka ngokuqhelekileyo kwaye kufuneka uqhagamshelane ngayo ngenxa yokuba zithunyelwa kwimali kunye ne-consumption yeentsimbi. Xa kunokwenzeka, uqhagamshelane iimfuno zokusebenza zokusebenza kwiintsuku zokusetyenziswa kwe-low pressure kwi-system. Ukuba inkqubo yakho yokulawula i-database inokuxhomekeke kwizinga lwezinsizakalo zokusebenza, kunokwenzeka ukucacisa iinkonzo zezi. Ngokwesibonelo, kunokwenzeka ukucacisa imiyalelo yabasebenzisi ngaphezu kwimveliso yobugcisa, ikakhulukazi ngexesha le-peak. Ngokutsho, iintsuku ezincinane zokusetyenziswa kwe-user-induced ingasetyenziswa ukucacisa iimveliso ze-background. Kwi-database, iinkqubo ezisetyenzise i-variant ye-LSM ye-storage ye-underlying kufuneka isebenze i-compressions ezininzi (iintlobo lwe-operation ye-maintenance kwi-data) ukuze kubuyele ukusebenza kwe-read/writing Ukuvula I-Piotr Sarna i-software engineer enomdla kwiiprojekthi ze-open-source kunye neengxaki ze-Rust kunye ne-C++. Uyaziwa kwakhona i-open-source distributed file system kunye nokufumana i-kernel ye-Linux ngexesha lokufunda kwiziko kwi-Samsung Electronics. Uyaziwa kwiminyaka emininzi kunye neengxaki ze-ScyllaDB kunye ne-libSQL. U-Piotr ufakwe kwi-University of Warsaw kunye ne-MSc kwi-Computer Science. Uyaziwa kwii-books "Database Performance at Scale" kunye ne-"Writing for Developers: Blogs that Get Read". Ukucinga