Rumah Keuangan Pribadi Mengaplikasikan Metode Konsistensi dalam NoSQL

Mengaplikasikan Metode Konsistensi dalam NoSQL

Daftar Isi:

Video: Day 3 Keynote: Made Here Together (Cloud Next '18) 2024

Video: Day 3 Keynote: Made Here Together (Cloud Next '18) 2024
Anonim

Sifat database konsistensi berarti Begitu data ditulis ke database dengan sukses, kueri yang mengikuti bisa mengakses data dan mendapatkan tampilan data yang konsisten. Dalam prakteknya, ini berarti bahwa jika Anda menulis catatan ke database dan kemudian segera meminta catatan itu, Anda dijamin melihatnya. Ini sangat berguna untuk hal-hal seperti pesanan Amazon dan transfer bank.

Konsistensi adalah skala geser, dan subjek terlalu dalam untuk menutupi di sini. Namun, di dunia NoSQL, konsistensi umumnya termasuk dalam salah satu dari dua kubu: Konsentrat ACID

  • (ACID adalah singkatan dari Atomicity, Consistency, Isolation, Durability): ACID berarti bahwa setelah data ditulis, Anda memiliki konsistensi penuh dalam membaca

  • Konsistensi Akhir (BASE): BASE berarti bahwa sekali data ditulis, pada akhirnya akan muncul untuk membaca.

Pertarungan telah mengamuk di antara orang-orang yang percaya konsistensi kuat dalam database tidak diperlukan dan mereka yang percaya itu benar-benar dibutuhkan (menerjemahkan orang menjadi perusahaan NoSQL 'departemen pemasaran! ).

Kenyataannya ada di antara keduanya. Apakah itu penting bahwa posting seseorang dari seseorang tidak dilihat oleh semua temannya selama lima menit? Tidak, mungkin tidak. Ubah "posting Facebook" menjadi "transaksi keuangan miliaran dolar", meskipun, dan sikap Anda berubah dengan cepat! Pendekatan konsistensi yang Anda pilih bergantung pada situasinya. Namun, menurut pengalaman saya, konsistensi yang kuat selalu menjadi pilihan dalam situasi sistem perusahaan mission-critical.

ACID adalah seperangkat prinsip umum untuk sistem transaksional, bukan sesuatu yang terkait semata-mata dengan sistem relasional, atau bahkan hanya database, jadi perlu diketahui. ACID pada dasarnya berarti, "

Database ini memiliki fasilitas untuk menghentikan Anda merusak atau kehilangan data, " yang tidak diberikan untuk semua basis data. Sebenarnya, sebagian besar database NoSQL tidak memberikan jaminan ACID. Yayasan DB, MarkLogic, dan Neo4j adalah pengecualian yang menonjol. Beberapa database NoSQL memberikan jaminan tingkat rendah yang disebut

Check and Set yang memverifikasi apakah orang lain telah mengubah dokumen sebelum mengizinkan transaksi selesai. Perilaku ini biasanya terbatas karena cenderung diimplementasikan secara single-record. MongoDB adalah database penting yang menyediakan kemampuan Cek dan Set. Dengan MongoDB, keseluruhan data bernilai simpul dapat dikunci saat update, sehingga mencegah semua operasi baca dan tulis semua sampai operasi selesai.Perusahaan ini bekerja untuk menghapus keterbatasan ini.

BASE

BASE berarti bahwa alih-alih membuat jaminan ACID, database memiliki keseimbangan konsistensi dan ketersediaan data yang merdu. Hal ini biasanya terjadi ketika node dalam cluster database tertentu bertindak sebagai manajer utama dari bagian database, dan node lainnya menyimpan replika hanya-baca.

Untuk memastikan bahwa setiap klien melihat semua pembaruan (yaitu, mereka memiliki tampilan data yang konsisten), menulis ke simpul utama yang menyimpan data perlu dikunci sampai semua replika dibaca mutakhir. Ini disebut

dua - fase komit - perubahan dibuat secara lokal namun diterapkan dan dikonfirmasikan ke klien hanya jika semua node lain diperbarui. BASE melemaskan persyaratan ini, hanya memerlukan subset dari simpul yang menyimpan data yang sama agar diperbarui agar transaksi berhasil. Beberapa saat setelah transaksi dilakukan, replika read-only diperbarui.

Keuntungan dari pendekatan ini adalah transaksi dilakukan lebih cepat. Memiliki replika hidup yang mudah dibaca juga berarti Anda dapat menyebarkan bacaan data Anda, membuat pembacaan lebih cepat.

Kelemahannya adalah bahwa klien yang terhubung ke beberapa replika baca mungkin melihat informasi yang tidak pasti untuk jangka waktu yang tidak ditentukan. Dalam beberapa skenario, keadaan ini baik-baik saja. Jika Anda memposting pesan baru di Facebook dan beberapa teman Anda tidak melihatnya selama beberapa menit, ini bukan kerugian besar. Jika Anda mengirim perintah pembayaran ke bank Anda, Anda mungkin menginginkan transaksi segera.

Pendekatan alternatif untuk replika read-only adalah memiliki cluster

shared - tidak ada di mana hanya satu node pada sebuah cluster yang selalu melayani bagian tertentu dari database. Bersama-tidak berarti tidak berarti Anda kehilangan replikasi. Database yang menggunakan metode ini biasanya mereplikasi data mereka ke area sekunder pada node atau node utama lainnya - namun hanya satu node yang menjadi master untuk dibaca dan ditulis setiap saat.

Cluster shared-nothing memiliki keuntungan dari model konsistensi yang lebih sederhana namun memerlukan dua fase komit untuk replika. Fakta ini berarti transaksi terkunci sementara semua replika diperbarui. (Kunci internal ditambah penguncian untuk node lain memberi Anda dua fase.)

Ini biasanya memiliki dampak yang lebih kecil daripada cluster data bersama dengan replika read-only, karena area data replika tidak ada sama sekali tidak menerima permintaan baca untuk itu. bagian dari database Oleh karena itu, dua fase komit lebih cepat pada cluster tanpa berbagi daripada di cluster dengan replika yang mudah dibaca.

Memilih ACID atau BASE?

Seperti yang Anda duga, banyak argumennya adalah karena vendor NoSQL dapat membedakan diri dari pesaing mereka dengan mengklaim pendekatan unik dan berbeda. Akan tetapi, menarik untuk dicatat, bagaimanapun, jumlah vendor NoSQL dengan kepatuhan ACID pada peta jalan mereka. Beberapa database NoSQL memiliki kepatuhan terhadap ACID pada peta jalan mereka, walaupun mereka adalah pendukung BASE, yang menunjukkan betapa relevannya jaminan ACID untuk sistem

enterprise, mission

- critical . Banyak perusahaan menggunakan produk konsistensi BASE saat menguji gagasan karena mereka bebas namun kemudian bermigrasi ke basis data berbayar yang sesuai dengan ACID saat mereka ingin menjalani sistem misi-kritis. Cara termudah untuk memutuskan apakah Anda memerlukan ACID adalah mempertimbangkan interaksi orang dan sistem lain terhadap data Anda. Misalnya, jika Anda menambahkan atau memperbarui data, apakah penting agar kueri berikutnya dapat melihat perubahannya? Dengan kata lain, apakah keputusan penting bergantung pada keadaan database saat ini? Akan melihat data yang agak ketinggalan zaman berarti keputusan tersebut bisa cacat fatal?

Dalam layanan keuangan, kebutuhan akan konsistensi sudah jelas. Pikirkan pedagang membeli saham. Mereka perlu memeriksa saldo kas sebelum melakukan trading untuk memastikan bahwa mereka memiliki uang untuk meliput perdagangan. Jika mereka tidak melihat keseimbangan yang benar, mereka akan memutuskan untuk mengeluarkan uang untuk transaksi lain. Jika database yang mereka query hanya pada akhirnya konsisten, mereka mungkin tidak melihat kekurangan dana yang memadai, sehingga membuka organisasi mereka terhadap risiko finansial.

Kasus serupa dapat dibangun untuk ACID over BASE di bidang perawatan kesehatan, pertahanan, intelijen, dan sektor lainnya. Semuanya bermuara pada data, dan pentingnya ketepatan waktu dan keamanan data.

Mengaplikasikan Metode Konsistensi dalam NoSQL

Pilihan Editor

Rakit Menu untuk Situs Anda di Flash - dummies

Rakit Menu untuk Situs Anda di Flash - dummies

Jika Anda telah membuat satu tombol di Flash, Anda dapat menduplikat simbol tombol dan kemudian mengubah teks untuk menyempurnakan menu Anda. Jika Anda benar matematika, tombol Anda berukuran sempurna. Saat Anda menyelaraskan tombol ujung ke ujung, menu Anda akan dirakit. Untuk merakit menu, ikuti langkah-langkah berikut:

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Anda dapat menggunakan kembali simbol setelah Anda menambahkan ke perpustakaan Adobe Flash Creative Suite 5 Anda. Setiap salinan simbol disebut sebagai contoh di Flash CS5. Meskipun semua contoh simbol tetap terhubung kembali dengan aslinya di Perpustakaan, Anda memiliki fleksibilitas untuk menskalakan, mengubah, dan memutar ...

Bitmap versus Vector Artwork di Flash CS5 - dummies

Bitmap versus Vector Artwork di Flash CS5 - dummies

Dalam desain berbasis komputer, Anda harus waspada terhadap dua jenis grafis: bitmap dan vektor. Lingkungan gambar di Flash secara native menciptakan grafis vektor, namun Anda dapat menggunakan grafik bitmap dan vektor dalam film Flash. Grafik vektor mengacu pada karya seni terukur yang terdiri dari titik, jalur, dan pengisian yang dibuat oleh komputer berdasarkan ...

Pilihan Editor

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 menawarkan banyak cara untuk berinteraksi dengan dokumen Anda. Ada beberapa shortcut keyboard yang bisa menghemat waktu. Dengan cara pintas keyboard ini, Anda bisa mempercepat pengeditan dan pemformatan teks. Untuk melakukan ini Dengan keyboard Mulai baris baru di paragraf yang sama Shift + Enter Masukkan halaman istirahat Ctrl + Enter Insert ...

Kata 2016 Lihat Jalan Pintas - dummies

Kata 2016 Lihat Jalan Pintas - dummies

Pernah merasa Anda tidak memiliki perspektif yang benar? Nah, Word 2016 memudahkan Anda mengubah tampilan dokumen sehingga Anda bisa mendapatkan perspektif yang berbeda. Dengan cara pintas keyboard ini, Anda dapat beralih di antara berbagai tampilan di Word 2016. Beralih ke tampilan ini Dengan keyboard Print Layout Alt + Ctrl + P Garis Besar Alt + Ctrl + O Draft ...

Kata 2013 For Dummies Cheat Sheet - dummies

Kata 2013 For Dummies Cheat Sheet - dummies

Kata adalah salah satu program komputer yang paling banyak digunakan di planet ini. Membantu Anda menulis teks adalah salah satu hal yang dilakukan komputer dengan baik, tapi itu tidak membuat tugas penulisan teks lebih mudah atau menyiratkan bahwa menggunakan Word cukup sederhana sehingga Anda tidak memerlukan bantuan. Jadi nikmati Cheat Sheet ini.

Pilihan Editor

Administrasi jaringan: Memelihara Perintah Windows - dummies

Administrasi jaringan: Memelihara Perintah Windows - dummies

Kemampuan untuk menyusun perintah Windows bersama dapat membiarkan Anda menyelesaikannya dalam satu perintah apa yang akan mengambil puluhan perintah terpisah. Anda bisa memasukkan dua atau lebih perintah pada baris yang sama dengan memisahkan perintah dengan ampersand (&), seperti ini: C:> copy *. doc a: & del *. doc Di sini, salinan perintah Salin ...

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Ketika perancang asli protokol IP membuat skema pengalamatan IP, mereka bisa saja menugaskan sejumlah bit alamat IP yang sewenang-wenang untuk ID jaringan. Bit yang tersisa kemudian akan digunakan untuk host ID. Sebagai contoh, anggaplah bahwa perancang memutuskan bahwa setengah dari alamat (16 bit) akan menjadi ...