DBMS disebarkeun pikeun Perusahaan

Téoréma CAP nyaéta landasan téori sistem terdistribusi. Tangtosna, kontrovérsi anu aya di sabudeureun éta henteu turun: definisi di dinya henteu kanonik, sareng teu aya buktina anu ketat... Tapi, pageuh nangtung dina posisi akal sehat sapopoé, urang sacara intuitif ngartos yén teorema éta leres.

DBMS disebarkeun pikeun Perusahaan

Anu henteu écés nyaéta harti hurup "P". Nalika kluster dibagi, mutuskeun teu ngabales dugi quorum a, atawa masihan deui data anu sadia. Gumantung kana hasil pilihan ieu, sistem digolongkeun boh mangrupa CP atawa AP. Cassandra, contona, bisa kalakuanana boh cara, gumantung teu sanajan dina setélan klaster, tapi dina parameter unggal pamundut husus. Tapi lamun sistem teu "P" na splits, lajeng naon?

Jawaban kana patarosan ieu rada teu kaduga: klaster CA teu tiasa dibeulah.
Klaster naon ieu anu teu tiasa dibeulah?

Hiji atribut indispensable tina klaster misalna hiji sistem gudang data dibagikeun. Dina seuseueurna kasus, ieu hartosna nyambungkeun kana SAN, anu ngabatesan panggunaan solusi CA pikeun perusahaan ageung anu sanggup ngajaga infrastruktur SAN. Supados sababaraha server tiasa dianggo sareng data anu sami, peryogi sistem file clustered. Sistem file sapertos ieu sayogi dina portofolio HPE (CFS), Veritas (VxCFS) sareng IBM (GPFS).

Oracle RAC

Pilihan Real Application Cluster mimiti muncul dina 2001 kalayan sékrési Oracle 9i. Dina klaster sapertos kitu, sababaraha instansi server dianggo sareng database anu sami.
Oracle tiasa dianggo sareng sistem file clustered sareng solusi sorangan - ASM, Manajemén Panyimpenan Otomatis.

Unggal salinan nyimpen jurnal sorangan. Transaksi dieksekusi sareng dilakukeun ku hiji conto. Upami hiji conto gagal, salah sahiji titik kluster anu salamet (instansi) maca log na sareng mulangkeun data anu leungit - ku kituna mastikeun kasadiaan.

Sadaya instansi ngajaga cache sorangan, sareng halaman anu sami (blok) tiasa aya dina cache sababaraha instansi dina waktos anu sami. Sumawona, upami hiji conto peryogi halaman sareng éta aya dina cache tina conto anu sanés, éta tiasa kéngingkeun ti tatanggana nganggo mékanisme fusi cache tinimbang maca tina disk.

DBMS disebarkeun pikeun Perusahaan

Tapi kumaha upami salah sahiji instansi kedah ngarobih data?

The peculiarity of Oracle nyaéta yén éta henteu ngagaduhan jasa ngonci khusus: upami server hoyong ngonci barisan, teras catetan konci disimpen langsung dina halaman mémori dimana barisan dikonci aya. Hatur nuhun kana pendekatan ieu, Oracle mangrupikeun juara kinerja diantara database monolitik: jasa ngonci henteu kantos janten bottleneck. Tapi dina konfigurasi klaster, arsitéktur sapertos kitu tiasa nyababkeun lalu lintas jaringan sareng deadlocks.

Sakali rékaman dikonci, hiji instansi ngabéjaan ka sadaya instansi séjén yén kaca nu nyimpen rékaman éta boga ditahan ekslusif. Upami instansi anu sanés kedah ngarobih catetan dina halaman anu sami, éta kedah ngantosan dugi parobihan kana halaman éta komitmen, nyaéta, inpormasi parobihan ditulis dina jurnal dina disk (sareng transaksi tiasa diteruskeun). Éta ogé tiasa kajadian yén halaman bakal dirobih sacara berurutan ku sababaraha salinan, teras nalika nyerat halaman kana disk anjeun kedah terang saha anu nyimpen versi halaman ieu ayeuna.

Ngamutahirkeun sacara acak halaman anu sami dina titik-titik RAC anu béda-béda nyababkeun kinerja database turun drastis, dugi ka kinerja klaster tiasa langkung handap tina hiji conto.

Pamakéan Oracle RAC anu leres nyaéta ngabagi data sacara fisik (contona, ngagunakeun mékanisme tabel anu dipisahkeun) sareng ngaksés unggal set partisi ngalangkungan titik khusus. Tujuan utama RAC sanes skala horizontal, tapi mastikeun kasabaran sesar.

Upami titik lirén ngaréspon kana keteg jajantung, teras titik anu ngadeteksi éta mimiti ngamimitian prosedur voting dina disk. Upami titik anu leungit henteu kacatet di dieu, maka salah sahiji titik nanggung tanggung jawab pikeun pamulihan data:

  • "freezes" sadaya kaca nu aya dina cache tina titik leungit;
  • maca log (redo) tina titik nu leungit tur nerapkeun deui parobahan nu kacatet dina log ieu, sakaligus mariksa naha titik séjén boga versi panganyarna tina kaca nu dirobah;
  • ngagulung deui transaksi pending.

Pikeun nyederhanakeun pindah antara titik, Oracle ngagaduhan konsép jasa - conto virtual. Hiji conto tiasa ngalayanan sababaraha jasa, sareng jasa tiasa ngalih antara titik. Hiji conto aplikasi ngalayanan bagian nu tangtu database (Contona, grup klien) jalan kalawan hiji layanan, sarta jasa jawab ieu bagian tina database ngalir ka titik sejen lamun titik gagal.

Sistem Data Murni IBM pikeun Transaksi

Solusi klaster pikeun DBMS muncul dina portopolio Blue Giant di 2009. Sacara ideologis, éta mangrupikeun panerus tina klaster Parallel Sysplex, diwangun dina alat "biasa". Taun 2009, DB2 pureScale, suite parangkat lunak, dileupaskeun, sareng di 2012, IBM nawiskeun alat anu disebut Sistem Data Murni pikeun Transaksi. Teu matak bingung jeung Sistem Data Murni pikeun Analytics, nu teu leuwih ti hiji diganti Netezza.

Dina glance kahiji, arsitéktur pureScale sarupa Oracle RAC: dina cara nu sami, sababaraha titik disambungkeun ka sistem gudang data umum, sarta unggal titik ngajalankeun conto DBMS sorangan kalawan wewengkon memori sorangan jeung log transaksi. Tapi, teu saperti Oracle, DB2 boga layanan ngonci dedicated digambarkeun ku susunan db2LLM * prosés. Dina konfigurasi klaster, jasa ieu disimpen dina titik misah, nu disebut fasilitas gandeng (CF) dina Parallel Sysplex, sarta PowerHA dina Data murni.

PowerHA nyayogikeun jasa ieu:

  • manajer konci;
  • cache panyangga global;
  • wewengkon komunikasi antarprosés.

Pikeun mindahkeun data ti PowerHA ka titik database na deui, aksés memori jauh dipaké, jadi interkonéksi klaster kudu ngarojong protokol RDMA. PureScale tiasa nganggo Infiniband sareng RDMA dina Ethernet.

DBMS disebarkeun pikeun Perusahaan

Upami titik peryogi halaman, sareng halaman ieu henteu aya dina cache, teras simpul naroskeun halaman dina cache global, sareng ngan upami teu aya, macana tina disk. Beda sareng Oracle, pamenta ngan ukur ka PowerHA, sanés ka titik tatangga.

Lamun hiji instansi bade ngarobah hiji baris, eta ngonci eta dina modeu ekslusif, sarta kaca dimana baris aya dina mode dibagikeun. Sadaya konci didaptarkeun dina manajer konci global. Nalika urus réngsé, titik ngirim pesen ka manajer konci, anu nyalin halaman anu dirobih kana cache global, ngaleupaskeun konci, sareng ngabatalkeun halaman anu dirobih dina cache tina titik anu sanés.

Upami halaman dimana barisan anu dirobih aya parantos dikonci, maka manajer konci bakal maca halaman anu dirobih tina mémori titik anu ngarobih, ngaleupaskeun konci, ngabatalkeun halaman anu dirobih dina cache titik anu sanés, sareng masihan konci kaca ka titik nu dipénta eta.

"Kotor", nyaeta, robah, kaca bisa ditulis kana disk duanana ti titik biasa na ti PowerHA (castout).

Upami salah sahiji titik pureScale gagal, pamulihan dugi ka ngan ukur transaksi anu henteu acan réngsé dina waktos gagal: halaman anu dirobih ku titik éta dina transaksi réngsé aya dina cache global dina PowerHA. Titik balikan deui dina konfigurasi anu dikirangan dina salah sahiji server dina kluster, ngagulung deui transaksi anu ditangguhkeun sareng ngaleupaskeun konci.

PowerHA dijalankeun dina dua server sareng master node ngulang kaayaanana sacara sinkron. Lamun titik PowerHA primér gagal, klaster terus beroperasi kalawan titik cadangan.
Tangtosna, upami anjeun ngaksés set data ngalangkungan hiji titik, kinerja kluster sadayana bakal langkung luhur. PureScale malah tiasa perhatikeun yén daérah data anu tangtu diolah ku hiji titik, teras sadaya konci anu aya hubunganana sareng daérah éta bakal diolah sacara lokal ku titik tanpa komunikasi sareng PowerHA. Tapi pas aplikasi nyoba ngakses data ieu ngaliwatan titik sejen, processing konci terpusat bakal neruskeun.

Tes internal IBM dina beban kerja 90% maca sareng 10% nyerat, anu sami pisan sareng beban kerja produksi dunya nyata, nunjukkeun skala linier dugi ka 128 titik. Kaayaan tés, hanjakalna, henteu diungkabkeun.

HPE NonStop SQL

Portopolio Hewlett-Packard Enterprise ogé gaduh platform sorangan anu sayogi. Ieu mangrupikeun platform NonStop, dileupaskeun ka pasar taun 1976 ku Tandem Computers. Dina 1997, pausahaan ieu kaala ku Compaq, anu dina gilirannana ngagabung jeung Hewlett-Packard di 2002.

NonStop dianggo pikeun ngawangun aplikasi kritis - contona, HLR atanapi pamrosésan kartu bank. Platformna dikirimkeun dina bentuk kompleks parangkat lunak sareng hardware (alat), anu kalebet titik komputasi, sistem panyimpen data sareng alat komunikasi. Jaringan ServerNet (dina sistem modern - Infiniband) ngalayanan duanana pikeun tukeur antara titik sareng pikeun aksés kana sistem panyimpen data.

Versi awal sistem ngagunakeun prosésor proprietary anu disingkronkeun ku silih: sadaya operasi dilaksanakeun sacara sinkron ku sababaraha prosesor, sareng pas salah sahiji prosésor kasalahan, éta dipareuman, sareng anu kadua teras jalan. Salajengna, sistem ngalih ka prosesor konvensional (mimiti MIPS, teras Itanium sareng tungtungna x86), sareng mékanisme sanésna mimiti dianggo pikeun sinkronisasi:

  • pesen: unggal prosés sistem boga "kalangkang" kembar, nu prosés aktip périodik ngirim pesen ngeunaan status na; lamun prosés utama gagal, prosés kalangkang dimimitian gawé ti momen ditangtukeun ku pesen panungtungan;
  • voting: sistem gudang boga komponén hardware husus nu narima sababaraha aksés idéntik sarta executes aranjeunna ngan lamun aksés cocog; Gantina sinkronisasi fisik, prosesor beroperasi asynchronously, sarta hasil karya maranéhanana dibandingkeun ngan dina I / O moments.

Kusabab 1987, DBMS relasional parantos dijalankeun dina platform NonStop - mimitina SQL/MP, teras SQL/MX.

Sakabéh databés dibagi kana sababaraha bagian, sareng masing-masing bagian tanggung jawab kana prosés Manajer Aksés Data (DAM) sorangan. Éta nyayogikeun rékaman data, cache, sareng mékanisme ngonci. Ngolah data dilumangsungkeun ku Executor Server Prosés ngajalankeun on titik sarua salaku manajer data pakait. Penjadwal SQL/MX ngabagi tugas diantara pelaksana sareng ngahijikeun hasil. Lamun perlu nyieun parobahan sapuk, protokol komitmen dua-fase disadiakeun ku perpustakaan TMF (Fasilitas Manajemén Transaksi).

DBMS disebarkeun pikeun Perusahaan

NonStop SQL tiasa ngutamakeun prosés supados patarosan analitik anu panjang henteu ngaganggu palaksanaan transaksi. Nanging, tujuanana nyaéta pikeun ngolah transaksi pondok, sanés analitik. Pamekar ngajamin kasadiaan klaster NonStop dina tingkat lima "salapan", nyaeta, downtime ngan 5 menit per taun.

SAP-HANA

Pelepasan stabil munggaran HANA DBMS (1.0) lumangsung dina bulan Nopémber 2010, sareng pakét SAP ERP ngalih ka HANA dina Méi 2013. Platformna dumasar kana téknologi anu dipésér: TREX Search Engine (pilarian dina toko kolom), P * TIME DBMS sareng MAX DB.

Kecap "HANA" sorangan mangrupa akronim, kinerja tinggi ANalytical Appliance. DBMS ieu disayogikeun dina bentuk kode anu tiasa dijalankeun dina server x86, kumaha oge, pamasangan industri ngan ukur diidinan dina alat anu disertipikasi. Solusi sadia tina HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC. Sababaraha konfigurasi Lenovo malah ngidinan operasi tanpa SAN - peran sistem gudang umum dicoo ku klaster GPFS on disk lokal.

Beda sareng platform anu didaptarkeun di luhur, HANA mangrupikeun DBMS dina mémori, nyaéta gambar data primér disimpen dina RAM, sareng ngan ukur log sareng snapshot périodik anu ditulis kana disk pikeun pamulihan upami aya musibah.

DBMS disebarkeun pikeun Perusahaan

Unggal titik klaster HANA tanggung jawab bagian sorangan tina data, sarta peta data disimpen dina komponén husus - Ngaran Server, ayana dina titik koordinator. Data henteu duplikat antara titik. Inpo ngonci ogé disimpen dina unggal titik, tapi sistem ngabogaan detektor deadlock global.

Nalika klien HANA nyambung ka klaster, éta ngaunduh topologina teras tiasa ngaksés titik mana waé langsung, gumantung kana data anu diperyogikeun. Upami transaksi mangaruhan data tina hiji titik, maka éta tiasa dieksekusi sacara lokal ku titik éta, tapi upami data sababaraha titik parobihan, titik awal ngahubungi titik koordinator, anu muka sareng koordinat transaksi anu disebarkeun, ngalakukeunana nganggo dioptimalkeun dua-fase commit protokol.

Titik koordinator diduplikasi, janten upami koordinator gagal, titik cadangan langsung nyandak alih. Tapi lamun titik kalawan data gagal, mangka hiji-hijina jalan pikeun ngakses data na téh balikan deui titik. Sakumaha aturan, klaster HANA ngajaga server cadang pikeun ngamimitian deui titik anu leungit dina éta gancang-gancang.

sumber: www.habr.com

Tambahkeun komentar