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

Cara Menggunakan Format Tema di dalam bahasa Excel 2013 - dummies

Cara Menggunakan Format Tema di dalam bahasa Excel 2013 - dummies

Tema dan gaya tabel adalah dua cara dalam Excel 2013 menerapkan format ke seluruh lembar kerja atau rangkaian data sekaligus. (Tema memformat preset yang dapat Anda terapkan ke seluruh lembar kerja.) Masing-masing dapat digunakan dengan pengaturan preset atau disesuaikan untuk tampilan individual. Untuk masing-masing, Anda dapat menyimpan ...

Bagaimana Menggunakan Fitur Penemuan di Excel 2013 - dummies

Bagaimana Menggunakan Fitur Penemuan di Excel 2013 - dummies

Ketika semuanya gagal, Anda dapat menggunakan Fitur Excel 2013's Find untuk menemukan informasi spesifik di lembar kerja. Pilih Home → Cari & Pilih → Temukan atau tekan Ctrl + F, Shift + F5, atau bahkan Alt + HFDF untuk membuka kotak dialog Find and Replace. Di kotak drop-down Find What pada kotak dialog ini, masukkan teks atau nilai yang Anda inginkan ...

Cara Menggunakan Tema di Excel 2013 - dummies

Cara Menggunakan Tema di Excel 2013 - dummies

Melalui penggunaan temanya, Excel 2013 mendukung sebuah cara untuk memformat secara merata semua teks dan grafik yang Anda tambahkan ke lembar kerja. Anda bisa melakukan ini dengan hanya mengklik thumbnail dari tema baru yang ingin Anda gunakan di galeri drop-down Themes yang dibuka dengan mengklik tombol Themes pada Page ...

Pilihan Editor

Hindari Penanganan yang Berat Saat Menegakkan Pedoman Komunitas Online - dummies

Hindari Penanganan yang Berat Saat Menegakkan Pedoman Komunitas Online - dummies

Hanya karena Anda memiliki kekuatan untuk Lakukan itu tidak berarti bahwa semua masalah komunitas online memerlukan peringatan dan bannings. Ya, Anda ingin menghilangkan negatif sejak awal, tapi tidak, Anda juga tidak ingin merasa kecil. Terkadang membiarkan sebuah isu meluncur tidak apa-apa. Sebagai pengelola komunitas, tugas Anda untuk mengetahui ...

Hindari Peluang yang Mempengaruhi Reputasi Blog Anda - dummies

Hindari Peluang yang Mempengaruhi Reputasi Blog Anda - dummies

Saat Anda mengaitkan blog ibu dan merek pribadi Anda dengan sebuah produk atau merek perusahaan, tidak dapat dipungkiri bahwa Anda berdua akan saling menipu satu sama lain. Suka atau tidak, Anda bisa dan menjadi terkait dengan merek itu. Tidak semua perusahaan yang ingin memberi Anda produk gratis adalah produk yang Anda inginkan ...

Berikan Peran pada Font di Situs Blog Anda - dummies

Berikan Peran pada Font di Situs Blog Anda - dummies

Saat Anda menetapkan peran pada font Anda, Anda bantu jaga agar desain blog anda terlihat profesional. Menjaga tujuan font Anda jelas membuat desain navigasi blog Anda lebih efektif dan keseluruhan desain Anda lebih mudah pada mata. Setelah Anda memilih dua atau tiga huruf pelengkap yang juga memiliki kontras yang cukup untuk berdiri satu sama lain (lihat ...

Pilihan Editor

Bagaimana Menjadi Pengembang Aplikasi iOS - dummies

Bagaimana Menjadi Pengembang Aplikasi iOS - dummies

Bagian ini menjelaskan apa yang Anda butuhkan dan bagaimana Anda bisa menjadi pengembang aplikasi iOS. Jika Anda adalah pengembang baru, Anda memerlukan alat perdagangan: Mac desktop atau sistem laptop untuk dikembangkan. Ini harus menjadi mesin dengan prosesor Intel, menjalankan OS X Mountain Lion atau Mavericks dengan setidaknya ...

Bagaimana Mengkonfigurasi Samsung SmartTV SDK - dummies

Bagaimana Mengkonfigurasi Samsung SmartTV SDK - dummies

Setelah mendownload dan menginstal SamSung SmartTV SDK dari Samsung Developers Forum (SDF), ada beberapa langkah konfigurasi tambahan yang diperlukan untuk memastikan lingkungan pengembangan yang lebih mulus.

Cara Membuat Proyek Xcode untuk Aplikasi iPad

Cara Membuat Proyek Xcode untuk Aplikasi iPad

Untuk mengembangkan sebuah Aplikasi iPad (atau aplikasi untuk iPhone atau perangkat Mac lainnya), Anda bekerja di proyek Xcode yang disebut. Jadi, saatnya memotret proyek Xcode anda sendiri.