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

Cara RSVP ke Acara di Ning - patung

Cara RSVP ke Acara di Ning - patung

Di Ning, setelah anda menemukan persidangan itu mencari atau parti yang ingin anda hadiri, anda perlu RSVP untuk acara tersebut supaya pihak penganjur boleh mendapatkan jumlah minuman, makanan dan barang yang sesuai untuk semua peserta - dan juga rakan-rakan rangkaian anda yang tahu anda akan pergi . Untuk RSVP ...

Cara Menghantar Mesej Peribadi di Ning - dummies

Cara Menghantar Mesej Peribadi di Ning - dummies

Mesej hanya dengan dua kumpulan orang: rakan anda dan Pentadbir (termasuk Pencipta Rangkaian). Mesej peribadi Ning memberi anda cara yang ideal sebagai ahli untuk berkomunikasi dengan ahli-ahli lain dalam rangkaian tanpa semua orang mengetahui tentangnya:

Pilihan Editor

Dimensi web untuk Infographics anda - dummies

Dimensi web untuk Infographics anda - dummies

Cabaran untuk menilai infographic untuk web adalah saiz reka bentuk kini sangat berubah , tiada standard untuk bercakap. "Reka bentuk responsif" yang dibawa dengan kemunculan HTML5 mengubah landskap reka bentuk web secara kekal. Tidak seperti grafik yang dicetak, di mana setiap orang yang melihatnya mengalaminya dalam saiz yang sama, ...

Pilihan Editor

Bagaimana Menganalisis Sentimen dan Kesan Penglibatan Media Sosial Anda - pemahaman

Bagaimana Menganalisis Sentimen dan Kesan Penglibatan Media Sosial Anda - pemahaman

Komuniti mempunyai tindak balas yang positif, negatif, atau neutral kepada anda dan jenama anda boleh membantu anda menentukan bagaimana untuk terus mengendalikan pendekatan penglibatan media sosial anda. Bagaimana anda mengukur pesaing dalam minda penonton dalam talian anda adalah satu lagi faktor penting untuk dinilai. Anda juga boleh memanfaatkan ...

Cara Tanya Ahli Komuniti Dalam Talian untuk Ulasan - dummies

Cara Tanya Ahli Komuniti Dalam Talian untuk Ulasan - dummies

Tidak ada yang salah dengan menjangkau para blogger, penulis, dan ahli komuniti dalam talian lain dan bertanya kepada mereka jika mereka berminat untuk menyemak jenama atau komuniti anda. Perbezaan antara penginjilan jenama dan melakukan kajian semula adalah bahawa penginjil jenama tidak mengkaji: Mereka mempromosikan, dan mereka diberi pampasan sebagai pertukaran untuk promosi mereka. Penilai, di ...

Cara Mengiklankan Syarikat Anda melalui Penajaan Blog - patung

Cara Mengiklankan Syarikat Anda melalui Penajaan Blog - patung

Untuk cara percikan untuk dilihat blog atau laman web, pertimbangkan menaja laman web ini. Penajaan untuk blog popular telah mendapat banyak perhatian dalam blogosphere. Sesetengah blogger menyeru menerima tajaan "menjual keluar," tetapi yang lain menganggapnya sebagai cara terbaik untuk mendapatkan bayaran untuk melakukan apa yang mereka suka. Penajaan cenderung kepada ...