Rumah Kewangan Peribadi Pengendalian Partition dalam NoSQL - dummies

Pengendalian Partition dalam NoSQL - dummies

Isi kandungan:

Video: Transpolitika [3/10] - Yasraf Amir Piliang 2024

Video: Transpolitika [3/10] - Yasraf Amir Piliang 2024
Anonim

Partition perkataan digunakan untuk dua konsep yang berbeza di tanah NoSQL. Satu partition data adalah satu mekanisme untuk memastikan bahawa data diedarkan secara merata ke seluruh kelompok. Sebaliknya, partition network berlaku apabila dua bahagian cluster pangkalan data yang sama tidak dapat berkomunikasi.

Pada sistem perkumpulan yang sangat besar, semakin besar kemungkinan kegagalan satu peralatan akan terjadi. Sekiranya suis rangkaian di antara pelayan dalam gugusan gagal, fenomena yang dirujuk sebagai (dalam jargon komputer) otak berpecah berlaku. Dalam kes ini, pelayan individu masih menerima permintaan, tetapi mereka tidak dapat berkomunikasi dengan satu sama lain.

Senario ini boleh membawa kepada ketidakkonsistenan data atau hanya untuk mengurangkan kapasiti dalam storan data, kerana partition rangkaian dengan pelayan-kurangnya dihapuskan daripada cluster (atau "mengundi" dalam fesyen Big Brother).

Partition Tolerating

Anda mempunyai dua pilihan apabila sekatan rangkaian berlaku:

  • Teruskan, pada tahap tertentu, ke perkhidmatan membaca dan menulis operasi.

  • "Undi" satu bahagian partition dan memutuskan untuk menetapkan data kemudian apabila kedua-dua bahagian boleh berkomunikasi. Ini biasanya melibatkan pengumpulan cluster replika baca sebagai tuan baru bagi setiap nod partition master yang hilang.

Riak membolehkan anda menentukan berapa kali data direplikasi (tiga salinan, secara lalai - iaitu, n = 3) dan berapa banyak pelayan yang perlu dipertimbangkan supaya pembacaan berjaya. Ini bermakna, jika tuan utama utama berada di sebelah yang salah dari partition jaringan, operasi baca masih boleh berjaya jika dua pelayan lain tersedia (iaitu, r = 2 read availability).

Riak menangani menulis apabila pelayan partition utama turun dengan menggunakan sistem yang dipanggil handpi yang dibayangkan . Apabila data pada asalnya direplikasi, nod pertama untuk partition utama tertentu ditulis, bersama dengan (secara lalai) dua nod jiran berikut.

Jika primary tidak boleh ditulis, nod seterusnya dalam cincin ditulis. Penulisan ini secara efektif diserahkan kepada nod seterusnya. Apabila pelayan utama muncul semula, penulis akan dimainkan semula ke simpul itu sebelum mengambil alih operasi tulis utama sekali lagi.

Dalam kedua-dua operasi ini, ketidakstabilan versi boleh berlaku kerana replika berlainan mungkin dalam keadaan versi yang berbeza, walaupun hanya untuk beberapa milisaat.

Riak menggunakan sistem lain yang disebut anti - entropi aktif untuk mengatasi masalah ini. Sistem ini merangkak melalui nilai yang dikemaskini dan memastikan bahawa replika diperbaharui pada satu ketika, sebaiknya lebih cepat daripada kemudian.Ini membantu mengelakkan konflik pada bacaan sambil mengekalkan kelajuan pengingesan yang tinggi, yang mengelakkan komitmen dua fasa yang digunakan oleh pangkalan data NoSQL lain dengan master-hamba, sokongan clustering tidak dikongsi.

Jika konflik pada bacaan berlaku, Riak menggunakan pembacaan baca untuk cuba mengembalikan data terakhir sahaja. Akhirnya, dan bergantung pada tetapan konsistensi dan ketersediaan yang anda gunakan, permohonan klien mungkin akan dibentangkan dengan pelbagai versi dan diminta untuk memutuskan sendiri.

Dalam sesetengah keadaan, tradeoff ini adalah wajar, dan banyak aplikasi secara intuitif dapat diketahui, berdasarkan data yang dikemukakan, versi mana yang hendak digunakan dan versi mana yang hendak dibuang.

Pengindeksian sekunder

Indeks kedua adalah indeks pada data tertentu dalam nilai. Kebanyakan kedai nilai utama meninggalkan pengindeksan ini sehingga permohonan itu. Walau bagaimanapun, Riak adalah berbeza, menggunakan skim yang dipanggil dokumen - partitioning yang membolehkan pengindeksan sekunder.

Pembahagian berasaskan dokumen mengandaikan bahawa anda menulis struktur JSON ke pangkalan data Riak. Anda boleh menetapkan indeks mengenai sifat bernama tertentu dalam struktur JSON ini, seperti yang ditunjukkan:

{"order-id": 5001, "id-pelanggan": 1429857, "order-date": "2014-09-24 "," Jumlah ": 134. 24}

Jika anda mempunyai aplikasi yang menunjukkan pesanan pelanggan pada bulan sebelumnya, anda ingin menanyakan semua rekod, seperti yang ditunjukkan, di mana id pelanggan adalah nilai tetap (1429857) dan tarikh pesanan berada dalam julat tertentu (permulaan dan akhir bulan).

Di kebanyakan kedai nilai utama, anda membuat satu lagi baldi yang kekuncinya adalah nombor pelanggan gabungan dan bulan dan nilai itu adalah senarai id pesanan. Walau bagaimanapun, dalam Riak, anda hanya menambah indeks sekunder pada kedua-pelanggan id (integer) dan order-date (tarikh), yang mengambil ruang penyimpanan tambahan tetapi mempunyai kelebihan menjadi telus kepada pemaju aplikasi.

Indeks ini juga dikemas kini secara langsung - bermakna tiada lag antara mengemaskini nilai dokumen di Riak dan indeks yang terkini. Akses langsung kepada data ini lebih sukar untuk dilepaskan daripada nampaknya. Lagipun, jika indeks tidak konsisten, anda tidak akan dapat mencari data secara konsisten!

Mengevaluasi Riak

Basho, entiti komersil di sebalik Riak, mengatakan bahawa versi yang akan datang 2. 0 Pangkalan data NoSQL sentiasa mempunyai konsistensi yang kuat, tuntutan yang dibuat oleh vendor NoSQL lain. Tuntutan oleh vendor NoSQL untuk sentiasa konsisten kuat adalah seperti mendakwa sebagai vegetarian kuat … kecuali pada hari Ahad ketika anda memiliki daging panggang.

Riak bukan pangkalan data yang mematuhi ACID. Konfigurasinya tidak boleh diubah supaya ia berjalan dalam mod pematuhan ACID. Pelanggan boleh mendapatkan data yang tidak konsisten semasa operasi biasa atau semasa sekatan rangkaian. Riak memperkerjakan konsistensi mutlak untuk peningkatan ketersediaan dan toleransi partisan.

Run Riak dalam mod konsistensi yang kuat bermakna replika baca diperbaharui pada masa yang sama sebagai tuan utama. Ini melibatkan komitmen dua fasa - pada dasarnya, nod master menulis ke nod lain sebelum ia mengesahkan bahawa tulisan itu selesai.

Pada masa penulisan ini, mod konsistensi kuat Riak tidak menyokong indeks sekunder atau jenis data kompleks (contohnya, JSON). Mudah-mudahan, Basho akan menyelesaikan masalah ini dalam siaran yang akan datang dalam pangkalan data.

Riak Search (enjin carian Apache Solr yang dijenamakan semula dan terintegrasi menggunakan model kemas kini yang konsisten) boleh menghasilkan positif palsu apabila menggunakan konsistensi yang kuat. Keadaan ini berlaku kerana data mungkin ditulis dan kemudian urus niaga ditinggalkan, tetapi data masih digunakan untuk pengindeksan - meninggalkan hasil carian "palsu positif" - hasilnya sebenarnya tidak sah lagi untuk pertanyaan carian.

Riak juga menggunakan proses sentinel berasingan untuk menentukan nod yang mana menjadi master dalam keadaan failover. Proses ini, bagaimanapun, tidak tersedia, yang bermaksud bahawa selama beberapa saat, mungkin saja, sementara salinan baru proses sentinel dibawa dalam talian, nod baru tidak dapat ditambahkan atau baru tuan dipilih. Anda perlu menyedari kemungkinan ini dalam keadaan failover tekanan tinggi.

Riak mempunyai ciri-ciri yang baik untuk pemaju aplikasi, seperti pengindeksian sekunder dan sokongan nilai JSON terbina dalam. Replikasi pangkalan data bagi pemulihan bencana ke datacenters lain hanya tersedia dalam versi berbayar, yang harga boleh didapati di laman web mereka (harga sewa yang ditunjukkan, harga lesen kekal yang diberikan pada permohonan sahaja).

Alat pengawasan cluster Riak Control juga tidak dianggap sangat kerana masa lagnya ketika pemantauan cluster. Riak memegang banyak janji, dan jika Basho akan menambah lebih banyak perusahaan - tahap kemudahan pengelolaan kluster pada versi masa depan, ia akan menjadi produk terbaik dalam kelas.

Pengendalian Partition dalam NoSQL - dummies

Pilihan Editor

Melindungi Metrik Media Sosial anda dengan Alat Cadangan - dummies

Melindungi Metrik Media Sosial anda dengan Alat Cadangan - dummies

Jika anda telah memulakan jejak sosial metrik media dan menikmati kurniaan data yang kini dapat dilihat, dihidupkan, dan digunakan, anda mungkin tertanya-tanya apa yang mungkin menyebabkan kemurungan! Mudah: kehilangan data. Katakanlah bahawa anda mempunyai masalah tapak atau entah bagaimana kehilangan akses ke tapak atau data anda. Adakah anda mempunyai sandaran anda ...

Laman web baru? Menarik Tumpuan Media Sosial Lalu Lintas dan Meningkat - dummies

Laman web baru? Menarik Tumpuan Media Sosial Lalu Lintas dan Meningkat - dummies

Mana-mana kempen baru, laman web, akaun Twitter, halaman Facebook, atau item lain yang anda ingin ukur dengan metrik media sosial bermula pada sifar. Nombor ini boleh membuat anda merasa seperti anda bercakap dengan tidak sah, bercakap dengan diri anda atau anda tersembunyi dari pandangan. Perasaan ini boleh membawa kepada pengasingan secara keseluruhan ...

Meracuni Google Spider - dummies

Meracuni Google Spider - dummies

Anda sentiasa dapat mencari orang yang ingin menyimpang dari lurus dan sempit. Ya, mereka adalah orang bodoh yang terlibat dalam taktik pengoptimuman berisiko yang bertujuan untuk menggerakkan PageRank secara artifisial, memanipulasi pesanan halaman hasil carian di Google, dan mendapatkan kelebihan yang tidak adil dalam indeks. Google, dengan reputasi yang luar biasa untuk melindungi, ...

Pilihan Editor

Mengukur Pengunjung Lama Menginap di Laman Web Anda - dummies

Mengukur Pengunjung Lama Menginap di Laman Web Anda - dummies

Di laman web anda memberikan wawasan yang penting. Anda boleh memikirkan sama ada pengunjung sedang melihat cepat, kemudian pergi, atau sama ada mereka bertahan lebih lama dan sebenarnya membaca bahan dalam talian anda dengan tujuan untuk mengambil tindakan. Jika majoriti pelawat laman web anda tidak ...

Pemasaran web: Cara Menilai Layouts dengan Peta Haba - dummies

Pemasaran web: Cara Menilai Layouts dengan Peta Haba - dummies

Laman web perniagaan sangat mirip dengan merancang kedai dengan pemasaran produk dalam fikiran. Malah, laman web anda benar-benar adalah kedai - kedai maya di Internet. Rangkaian kedai runcit telah menghabiskan berjuta-juta dolar dalam penyelidikan pasaran, menonton dan mendokumentasikan bagaimana pembeli memasuki kedai, belok kanan atau kiri, dan ...

Analitik web Untuk Menipu Cheat Sheet - dummies

Analitik web Untuk Menipu Cheat Sheet - dummies

Melakukan analisis laman web tidak perlu meletihkan dan intensif masa. Anda boleh meringkaskan prestasi keseluruhan laman web anda dengan cepat - jika anda tahu apa yang perlu dicari. Alat analisis web percuma dan kos rendah boleh membantu anda mengukur kejayaan laman web anda, dan anda boleh menjana perujuk tapak dengan pelbagai cara yang tidak mungkin ...

Pilihan Editor

Cara Memaksimumkan Ruang pada Laman Web - dummies

Cara Memaksimumkan Ruang pada Laman Web - dummies

Terlalu terhad, anda boleh membuat penggunaan kreatif beberapa teknologi di luar sana untuk memaksimumkan antara muka anda. Untuk setiap teknik berikut yang diterangkan, terdapat banyak laman web yang menawarkan sampel kod, forum, dan sumber untuk membantu anda memulakan. Accordions. Antara muka akordion membolehkan ...

Cara Mendapatkan Corak CSS3 Online - dummies

Cara Mendapatkan Corak CSS3 Online - dummies

Mencipta kesan mudah untuk laman CSS3 menggunakan gradien mudah . Walau bagaimanapun, mewujudkan sesuatu yang benar-benar hebat memerlukan masa dan keupayaan artistik. Kebanyakan pemaju benar-benar tidak mempunyai masa atau kemahiran yang diperlukan untuk mencipta sesuatu yang mempesonakan menggunakan CSS3 sahaja (atau CSS3 digabungkan dengan grafik) - di sinilah pereka bermain. Ramai pereka yang membolehkan anda ...

Bagaimana Mengoptimumkan Aplikasi CSS3 dengan Modernizr - dummies

Bagaimana Mengoptimumkan Aplikasi CSS3 dengan Modernizr - dummies

Terdapat banyak pelayar dan versi pelayar yang berbeza gunakan hari ini. Tidak semua daripada mereka adalah optimum untuk CSS3. Inilah tempat Modernizr dimainkan. Pemajunya menyebutnya "perpustakaan JavaScript yang mengesan ciri HTML5 dan CSS3 dalam pelayar pengguna. "Anda menggunakan Modernizr untuk melaksanakan tugas secara pilihan dan memasukkan ciri aplikasi berdasarkan ...