Rumah Keuangan Pribadi Menangani Partisi di NoSQL

Menangani Partisi di NoSQL

Daftar Isi:

Video: Cara partisi / hapus partisi hard disk di Windows 10 2024

Video: Cara partisi / hapus partisi hard disk di Windows 10 2024
Anonim

Kata partisi digunakan untuk dua konsep yang berbeda di tanah NoSQL. Partisi data adalah mekanisme untuk memastikan bahwa data didistribusikan secara merata di seluruh cluster. Di sisi lain, partisi jaringan terjadi ketika dua bagian cluster database yang sama tidak dapat berkomunikasi.

Pada sistem berkerumun yang sangat besar, semakin mungkin terjadi kegagalan satu peralatan akan terjadi. Jika sebuah jaringan berpindah antar server dalam cluster gagal, sebuah fenomena yang disebut sebagai (dalam jargon komputer) split brain terjadi. Dalam kasus ini, server individual masih menerima permintaan, namun mereka tidak dapat saling berkomunikasi satu sama lain.

Skenario ini dapat menyebabkan ketidakkonsistenan data atau hanya mengurangi kapasitas penyimpanan data, karena partisi jaringan dengan server paling sedikit dikeluarkan dari cluster (atau "dipilih dari" dalam mode True Brother yang benar).

Partisi yang mentolerasi

Anda memiliki dua pilihan saat terjadi partisi jaringan:

  • Terus, pada tingkat tertentu, untuk layanan membaca dan menulis operasi.

  • "Voting off" satu bagian dari partisi dan putuskan untuk memperbaiki datanya nanti ketika kedua bagian bisa berkomunikasi. Ini biasanya melibatkan cluster voting replika baca sebagai master baru untuk setiap node partisi master yang hilang.

Riak memungkinkan Anda menentukan berapa kali data direplikasi (tiga salinan, secara default - yaitu, n = 3) dan berapa banyak server yang harus ditanya agar dibaca berhasil. Ini berarti bahwa, jika master kunci utama berada pada sisi yang salah dari partisi jaringan, operasi baca tetap dapat berhasil jika dua server lainnya tersedia (yaitu, r = 2 read availability).

Riak menangani menulis ketika server partisi utama diturunkan dengan menggunakan sistem yang disebut handoff yang diisyaratkan . Ketika data awalnya direplikasi, simpul pertama untuk partisi kunci tertentu ditulis, bersama dengan (secara default) dua node tetangga berikut.

Jika primer tidak dapat ditulis, simpul berikutnya di ring ditulis. Penulisan ini secara efektif diserahkan ke simpul berikutnya. Ketika server utama muncul kembali, penulisan diputar ulang ke simpul sebelum mengambil alih operasi penulisan utama lagi.

Dalam kedua operasi ini, ketidakkonsistenan versi dapat terjadi karena replika yang berbeda mungkin berada dalam status versi yang berbeda, bahkan jika hanya selama beberapa milidetik.

Riak menggunakan sistem lain yang disebut active antigen - entropy untuk mengatasi masalah ini. Sistem ini menjalar melalui nilai yang diperbarui dan memastikan bahwa replika diperbarui pada beberapa titik, sebaiknya lebih cepat daripada nanti.Ini membantu menghindari konflik pada pembacaan sambil mempertahankan kecepatan penyerapan yang tinggi, yang menghindari komit dua fasa yang digunakan oleh database NoSQL lainnya dengan master-slave, shared-nothing clustering support.

Jika terjadi konflik pada pembacaan, Riak menggunakan baca perbaikan untuk mengembalikan hanya data terakhir. Akhirnya meskipun, dan tergantung pada pengaturan konsistensi dan ketersediaan yang Anda gunakan, aplikasi klien dapat disajikan dengan beberapa versi dan diminta untuk memutuskan sendiri.

Dalam beberapa situasi, tradeoff ini diinginkan, dan banyak aplikasi dapat diketahui secara intuitif, berdasarkan data yang disajikan, versi mana yang akan digunakan dan versi yang akan dibuang.

Pengindeksan sekunder

Indeks sekunder adalah indeks pada data tertentu dalam suatu nilai. Sebagian besar toko key-value meninggalkan pengindeksan ini sampai ke aplikasi. Namun, Riak berbeda, menggunakan skema yang disebut document - berdasarkan partisi yang memungkinkan pengindeksan sekunder.

Partisi berbasis dokumen mengasumsikan bahwa Anda menulis struktur JSON ke database Riak. Anda kemudian dapat mengatur indeks pada properti tertentu dalam struktur JSON ini, seperti yang ditunjukkan:

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

Jika Anda memiliki aplikasi yang menunjukkan pesanan pelanggan untuk bulan sebelumnya, Anda ingin query semua catatan, seperti yang ditunjukkan, di mana id pelanggan adalah nilai tetap (1429857) dan tanggal pesanan berada dalam rentang tertentu (awal dan akhir bulan).

Di sebagian besar toko dengan nilai penting, Anda membuat ember lain yang kuncinya adalah nomor pelanggan dan bulan gabungan dan nilainya adalah daftar id pesanan. Namun, di Riak, Anda cukup menambahkan indeks sekunder pada customer-id (integer) dan tanggal pesanan (tanggal), yang tidak mengambil ruang penyimpanan ekstra namun memiliki keuntungan untuk menjadi transparan kepada pengembang aplikasi.

Indeks ini juga diperbarui secara live - artinya tidak ada jeda antara memperbarui nilai dokumen di Riak dan indeksnya up to date. Akses langsung ke data ini lebih sulit dilakukan daripada yang terlihat. Bagaimanapun, jika indeks tidak konsisten, Anda tidak akan pernah menemukan data yang dipegang secara konsisten!

Mengevaluasi Riak

Basho, entitas komersial di belakang Riak, mengatakan bahwa versi yang akan datang 2. 0 Database NoSQL selalu memiliki konsistensi yang kuat, klaim yang dibuat oleh vendor NoSQL lainnya. Klaim oleh vendor NoSQL untuk selalu memiliki konsistensi yang kuat seperti mengaku menjadi vegetarian yang kuat … kecuali pada hari Minggu ketika Anda memiliki daging panggang.

Riak bukan database yang sesuai dengan ACID. Konfigurasinya tidak dapat diubah sedemikian rupa sehingga berjalan dalam mode kepatuhan ACID. Klien bisa mendapatkan data yang tidak konsisten selama operasi normal atau selama partisi jaringan. Riak melakukan konsistensi mutlak untuk meningkatkan ketersediaan dan toleransi partisi.

Menjalankan Riak dalam mode konsistensi yang kuat berarti replika baca-nya diperbarui bersamaan dengan master utama. Ini melibatkan komit dua fasa - pada dasarnya, simpul master menulis ke simpul lain sebelum memastikan bahwa penulisan selesai.

Pada saat penulisan ini, mode konsistensi Riak yang kuat tidak mendukung indeks sekunder atau tipe data kompleks (misalnya, JSON). Mudah-mudahan, Basho akan memperbaiki masalah ini dalam rilis database yang akan datang.

Riak Search (mesin lateks Apache Solr yang rebranded dan terintegrasi menggunakan model pembaruan yang akhirnya konsisten) dapat menghasilkan false positive saat menggunakan konsistensi yang kuat. Situasi ini terjadi karena data dapat ditulis dan kemudian transaksi ditinggalkan, namun datanya masih digunakan untuk pengindeksan - meninggalkan hasil pencarian "false positive" - ​​hasilnya sebenarnya tidak berlaku lagi untuk kueri penelusuran.

Riak juga menggunakan proses sentinel yang terpisah untuk menentukan node mana yang menjadi master dalam kondisi failover. Proses ini, bagaimanapun, tidak tersedia, yang berarti bahwa untuk beberapa detik, mungkin saja, sementara salinan baru proses pengiriman dibawa secara online, sebuah simpul baru tidak dapat ditambahkan atau yang baru. master terpilih Anda perlu menyadari kemungkinan ini dalam kondisi failover tegangan tinggi.

Riak memang memiliki beberapa fitur bagus untuk pengembang aplikasi, seperti pengindeksan sekunder dan dukungan nilai JSON built-in. Replikasi database untuk pemulihan bencana ke pusat data lainnya hanya tersedia dalam versi berbayar, yang harganya dapat ditemukan di situs web mereka (harga sewa ditunjukkan, harga lisensi perpetual hanya diberikan pada aplikasi). Alat pemantauan cluster Riak Control juga tidak terlalu dianggap karena jeda waktu saat melakukan pemantauan cluster. Riak memegang banyak janji, dan jika Basho akan menambahkan lebih banyak fasilitas manajemen cluster

di versi mendatang, maka akan menjadi produk terbaik di kelasnya.

Menangani Partisi di NoSQL

Pilihan Editor

Perancang Minigame Minigame - dummies

Perancang Minigame Minigame - dummies

Sebelum menulis semua kode untuk membuat Minecraft Minigame, Anda perlu merancang permainan Anda. The Gameplay Loop adalah proses sederhana yang bisa Anda ikuti untuk memastikan permainan Anda menyenangkan, menantang, dan lengkap. The Gameplay Loop memiliki empat bagian: Start: Buat adegan dasar. Tujuan: Menambahkan cara untuk menang dan ...

Menciptakan Efek Air dan Es di Minecraft - dummies

Menciptakan Efek Air dan Es di Minecraft - dummies

Satu hal yang rapi tentang Minecraft adalah bahwa beberapa fisika realistis sedang dimainkan dalam permainan. Misalnya, jika Anda memiliki air dan Anda memasukkan es ke dalamnya, itu akan membeku! Oke, mungkin di dunia nyata, menambahkan es tidak membuat air membeku, tapi memang membuatnya lebih dingin. Anda dapat melihat ini ...

Mendapatkan Minecraft Experience Points - dummies

Mendapatkan Minecraft Experience Points - dummies

Di Minecraft, experience points, XP untuk jangka pendek, dikumpulkan dari bola pengalaman bercahaya. Sebagai pemain mengumpulkan cukup bola dan meningkatkan tingkat pengalaman mereka, mereka akan dapat menggunakan tabel dan landasan yang mempesona untuk meningkatkan kemampuan banyak item seperti senjata, baju besi, dan peralatan. Jadi, bagaimana Anda bisa cepat mendapatkan ini ...

Pilihan Editor

Bagaimana Mendidik dengan Infografis Informasi Dokumentual - dummies

Bagaimana Mendidik dengan Infografis Informasi Dokumentual - dummies

Infomasi editorial sama dengan artikel berita karena tujuan utamanya adalah untuk mengirimkan informasi. Di bawah payung grafis editorial, ada beberapa tipe yang berbeda, dengan keseimbangan bias dan objektivitas yang berbeda. Berikut adalah beberapa melihat: Badai salju menghantam kota Anda. Koran lokal menciptakan grafik yang menunjukkan hujan salju ...

Bagaimana Mengimpor Sketsa ke Ilustrator untuk Menciptakan Infografis - dummies

Bagaimana Mengimpor Sketsa ke Ilustrator untuk Menciptakan Infografis - dummies

Bahkan di dunia kabel ini, seniman masih suka sketsa Kabar baik! Sketsa kasar Anda dapat dengan mudah digunakan dalam draf infografis Anda. Anda dapat memindai sketsa atau mengambil gambar sketsa Anda dengan telepon Anda dan mengirim e-mail ke komputer Anda sendiri. Mereka tidak perlu diwarnai, cukup jelas bagi Anda untuk ...

Bagaimana cara memasukkan ilustrasi di Infografis Anda - jeleknya

Bagaimana cara memasukkan ilustrasi di Infografis Anda - jeleknya

Infografis yang baik (jelas) harus mencakup seni yang bagus. Ilustrasi mempromosikan alur cerita, menentukan elemen secara visual, dan mencerahkan halaman yang mungkin diisi dengan tipe abu-abu. Ilustrasi bisa berupa gambar fisik, semacam bagan atau grafik, atau bahkan garis waktu. Kehidupan sehari-hari Anda dipenuhi dengan contoh bagaimana ilustrasi ...

Pilihan Editor

GED Contoh Pertanyaan: Penalaran Melalui Bahasa Seni Membaca Informasi Teknis - dummies

GED Contoh Pertanyaan: Penalaran Melalui Bahasa Seni Membaca Informasi Teknis - dummies

Tentang Penalaran Melalui bagian Seni Bahasa GED, Anda mungkin diminta untuk menjawab pertanyaan tentang bagian teknis. Ini bisa termasuk petunjuk cara melengkapi, seperti berikut. Pertanyaan dalam artikel ini mengacu pada kutipan berikut dari Russell Hart's Photography For Dummies, 2nd Edition (Wiley). Apa Rahasia Untuk ...

GED Contoh Pertanyaan: Pertanyaan singkat tentang Ilmu Pengetahuan - dummies

GED Contoh Pertanyaan: Pertanyaan singkat tentang Ilmu Pengetahuan - dummies

Di beberapa titik selama bagian Ilmu Pengetahuan dari Tes GEE, Anda akan diminta untuk membuat jawaban singkat. Anda akan diberi sebuah bagian dan mengajukan pertanyaan yang perlu Anda tanggapi. Buat respons Anda jelas dan ringkas. Bagian Jawaban Jawaban Semua orang mengenal keju cheddar. Orang-orang meletakkan ...

GED Contoh Pertanyaan: Ilmu Sosial dan Media - dummies

GED Contoh Pertanyaan: Ilmu Sosial dan Media - dummies

Di bagian Ilmu Sosial GED, Anda mungkin diminta untuk menjawab pertanyaan tentang berbagai bentuk media, termasuk siaran berita. Lihatlah contoh berikut di bawah ini. Pertanyaan dalam artikel ini mengacu pada siaran berita berikut. Berita Lingkungan Dunia Selamat malam dan selamat datang di World Environmental News. Cerita kami ini ...