Rumah Kewangan Peribadi Menggunakan Kaedah Konsistensi dalam NoSQL - dummies

Menggunakan Kaedah Konsistensi dalam NoSQL - dummies

Isi kandungan:

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

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

Ketekalan harta dalam pangkalan data bermakna bahawa sebaik sahaja data ditulis ke pangkalan data berjaya, pertanyaan yang mengikuti dapat mengakses data dan mendapatkan pandangan yang konsisten mengenai data. Dalam amalan, ini bermakna bahawa jika anda menulis rekod ke pangkalan data dan kemudian dengan segera meminta rekod itu, anda dijamin untuk melihatnya. Ia amat berguna untuk perkara seperti pesanan Amazon dan pemindahan bank.

Konsistensi adalah skala gelongsor, dan subjek yang terlalu dalam untuk diliputi di sini. Walau bagaimanapun, dalam dunia NoSQL, konsistensi biasanya jatuh ke dalam salah satu daripada dua kem:

  • Konsistensi ACID (ACID bermaksud Atomicity, Consistency, Isolation, Ketahanan): ACID bererti bahawa sekali data ditulis, anda mempunyai konsistensi penuh dalam dibaca.

  • Ketekalan Masa Depan (BASE): BASE bermaksud bahawa sekali data ditulis, ia akhirnya akan muncul untuk dibaca.

Pertempuran telah mengamuk di antara orang-orang yang percaya konsistensi yang kuat dalam pangkalan data tidak diperlukan dan mereka yang mempercayainya benar-benar diperlukan (menerjemahkan orang ke syarikat NoSQL 'jabatan pemasaran! ).

Realiti adalah suatu tempat di antara. Adakah penting bahawa siaran Facebook seseorang tidak dilihat oleh semua kawannya selama lima minit? Tidak, mungkin tidak. Tukar "catatan Facebook" kepada "bilion dolar-transaksi kewangan," walaupun, dan sikap anda berubah dengan cepat! Pendekatan konsistensi yang anda pilih bergantung pada keadaan. Walau bagaimanapun, dalam pengalaman saya, konsistensi yang kuat sentiasa menjadi pilihan dalam situasi sistem perusahaan kritikal misi.

ACID

ACID adalah satu set prinsip umum untuk sistem transaksi, bukan sesuatu yang berkaitan semata-mata dengan sistem relasi, atau bahkan hanya pangkalan data, jadi ia bernilai mengetahui. ACID pada dasarnya bermakna, " Pangkalan data ini mempunyai kemudahan untuk menghalang anda daripada merosakkan atau kehilangan data, " yang tidak diberikan untuk semua pangkalan data. Sebenarnya, kebanyakan pangkalan data NoSQL tidak memberikan jaminan ACID.

Yayasan DB, MarkLogic, dan Neo4j adalah pengecualian yang ketara. Sesetengah pangkalan data NoSQL menyediakan jaminan lebih rendah yang dipanggil Check and Set yang mengesahkan sama ada orang lain telah mengubah dokumen sebelum membenarkan transaksi selesai. Tingkah laku ini biasanya terhad kerana ia cenderung dilaksanakan dalam satu rekod tunggal.

MongoDB adalah pangkalan data penting yang menyediakan keupayaan Cek dan Set. Dengan MongoDB, data seluruh nilai nod boleh dikunci semasa kemas kini, dengan itu menghalang semua membaca dan semua operasi menulis sehingga operasi selesai.Syarikat sedang berusaha untuk menghapuskan batasan ini, walaupun.

BASE

BASE bermaksud bahawa daripada membuat jaminan ACID, pangkalan data mempunyai keseimbangan konsisten dan ketersediaan data. Ini biasanya berlaku apabila nod dalam kluster pangkalan data yang diberikan sebagai pengurus utama bahagian pangkalan data, dan nod lain memegang replika yang hanya dibaca.

Untuk memastikan setiap klien melihat semua kemas kini (iaitu, mereka mempunyai pandangan yang konsisten terhadap data), menulis ke nod utama yang memegang data perlu dikunci sehingga semua replika baca adalah terkini. Ini dipanggil dua - fasa koma - perubahan dibuat secara tempatan tetapi digunakan dan disahkan kepada klien hanya apabila semua nod lain dikemas kini.

BASE melonggarkan keperluan ini, hanya memerlukan subset dari node yang memegang data yang sama untuk dikemas kini agar transaksi berjaya. Kadang kala transaksi dilakukan, replika baca sahaja dikemas kini.

Keuntungan pendekatan ini ialah transaksi dilakukan dengan lebih cepat. Mempunyai replika langsung yang boleh dibaca juga bermakna anda boleh menyebarkan beban membaca data anda, menjadikan bacaan lebih cepat.

Kelemahannya adalah bahawa pelanggan yang menyambung ke beberapa replika baca mungkin melihat maklumat terkini untuk tempoh masa yang tidak ditentukan. Dalam sesetengah senario, keadaan ini baik-baik saja. Jika anda menghantar mesej baharu di Facebook dan beberapa rakan anda tidak melihatnya selama beberapa minit, itu bukan kerugian besar. Sekiranya anda menghantar pesanan pembayaran ke bank anda, anda mungkin mahu urus niaga segera.

Pendekatan alternatif kepada replika baca sahaja ialah mempunyai berkongsi - tiada cluster di mana hanya satu simpul pada cluster yang selalu berfungsi sebagai sebahagian daripada pangkalan data.

Dikongsi - tidak bermakna anda kehilangan replikasi, walaupun. Pangkalan data yang menggunakan kaedah ini biasanya meniru data mereka ke kawasan sekunder pada nod atau nod utama lain - tetapi hanya satu nod adalah tuan untuk membaca dan menulis pada bila-bila masa.

Kelompok yang tidak dikongsi mempunyai kelebihan model konsisten yang lebih mudah tetapi memerlukan komitmen dua fasa untuk replika. Fakta ini bermakna kunci urus niaga sementara semua replika dikemas kini. (Kunci dalaman ditambah penguncian untuk nod lain memberi anda dua fasa.)

Ini biasanya mempunyai kesan yang kurang daripada kluster data yang dikongsi dengan replika baca sahaja, walaupun, kerana bahagian data replika yang tidak dikongsi tidak menerima permintaan baca untuk itu sebahagian daripada pangkalan data. Oleh itu, komitmen dua fasa adalah lebih cepat pada cluster yang dikongsi-tidak daripada pada cluster dengan replika yang boleh dibaca.

Memilih ACID atau BASE?

Seperti yang anda harapkan, banyak hujahnya ialah kerana vendor NoSQL boleh membezakan diri mereka dari pesaing mereka dengan mendakwa pendekatan yang berbeza dan unik. Namun, menarik untuk diperhatikan, bagaimanapun, bilangan vendor NoSQL dengan pematuhan ACID pada hala tuju mereka.

Sesetengah pangkalan data NoSQL mempunyai pematuhan ACID pada hala tuju mereka, walaupun mereka adalah pendukung BASE, yang menunjukkan bagaimana jaminan ACID yang berkaitan adalah sistem perusahaan, misi - kritikal yang berkaitan.

Banyak syarikat menggunakan produk konsisten BASE ketika menguji idea kerana mereka bebas tetapi kemudian berpindah ke pangkalan data berbayar ACID yang patuh kepada ACID apabila mereka ingin hidup dalam sistem kritikal misi.

Cara paling mudah untuk memutuskan sama ada anda memerlukan ACID ialah untuk mempertimbangkan interaksi orang dan sistem lain dengan data anda. Sebagai contoh, jika anda menambah atau mengemas kini data, adakah penting bahawa pertanyaan seterusnya dapat melihat perubahan? Dalam erti kata lain, keputusan penting bergantung pada keadaan semasa pangkalan data? Akan melihat data yang agak ketinggalan zaman bermakna bahawa keputusan itu boleh menjadi cacat secara fizikal?

Dalam perkhidmatan kewangan, keperluan untuk konsisten adalah jelas. Fikirkan pedagang membeli stok. Mereka perlu menyemak baki tunai sebelum berdagang untuk memastikan bahawa mereka mempunyai wang untuk menutupi perdagangan. Jika mereka tidak melihat baki yang betul, mereka akan memutuskan untuk membelanjakan wang pada transaksi lain. Sekiranya maklumat pangkalan data mereka hanya akhirnya konsisten, mereka mungkin tidak melihat kekurangan dana yang mencukupi, dengan itu mendedahkan organisasi mereka kepada risiko kewangan.

Kas yang sama boleh dibina untuk ACID berbanding BASE dalam penjagaan kesihatan, pertahanan, kecerdasan, dan sektor lain. Ini semua berkait rapat dengan data, dan pentingnya ketepatan masa dan keselamatan data.

Menggunakan Kaedah Konsistensi dalam NoSQL - dummies

Pilihan Editor

Cara Mengeksport karya seni dari Fireworks - dummies

Cara Mengeksport karya seni dari Fireworks - dummies

Setelah anda mengoptimumkan imej itu, sudah waktunya untuk mengeksport dari Fireworks. Mengekspot imej adalah agak mudah; pilih Fail → Eksport dan kemudian nyatakan folder di mana untuk menyimpan imej. Apabila anda mengeksport dokumen seperti menu navigasi dengan beberapa kepingan, anda mengeksport dokumen itu sebagai imej dan HTML seperti berikut: Pilih Fail → Eksport. The ...

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Peraturan yang paling asas Skim warna untuk laman web adalah bahawa anda perlu bekerja dengan beberapa warna yang terkurung. Jika tidak, laman web anda hanya akan membentangkan warna cacian warna. (Ya, pendekatan gila-gilaan juga merupakan bentuk skema warna, tetapi sebagai peraturan umum tidak begitu berkesan.) Bagaimana ...

Pilihan Editor

Memilih Penutupan Daripada Potret Khas - patung

Memilih Penutupan Daripada Potret Khas - patung

Potret di mana imej anda dipangkas dengan ketat supaya subjek itu mengambil sebahagian besar atau semua bingkai - adalah alat licik dalam beg jurufat jurulatih. Walau bagaimanapun, orang umumnya tidak suka mempunyai kamera terlalu dekat dengan mereka, kerana ketakutan bahawa imej itu ...

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Sedikit dari fotografi bukan makanan. Fotografi komersil tradisional cenderung untuk menjauhkan diri dari kekejangan sorotan spekular dan kelemahan drip dan ketidaksempurnaan. Sorotan specular kadang-kadang hanya smidge yang terlalu cerah dan mengganggu dalam foto, tetapi kemuncaknya berkilat ...

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Komponen utama untuk dipertimbangkan ketika mencari makro Kanta yang sesuai dengan gaya fotografi rapat anda adalah subjek yang akan anda ambil gambar dengan lensa. Sekiranya anda menembak mata secara tidak langsung, anda boleh meletakkan kanta anda dengan sangat dekat dengannya. Subjek lain mungkin memerlukan anda menyimpan jarak yang selamat, yang bermaksud ...

Pilihan Editor

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Anda boleh menukar transparansi lapisan jenis, seperti yang anda boleh dengan lapisan lain dalam Adobe Photoshop Creative Suite 6, mengurangkan kelegapan (ketelusan) jenis supaya ia membolehkan lapisan mendasar untuk menunjukkan. Lapisan adalah seperti susunan lapisan digital yang mana setiap unsur imej anda ...

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Menggunakan kotak dialog Ukuran Imej hanya satu cara yang anda boleh mengawal resolusi dalam Adobe Photoshop CS6. Walaupun anda boleh meningkatkan resolusi, berbuat demikian dengan berhati-hati dan mengelakkannya, jika anda boleh. Pengecualian kepada peraturan ini adalah apabila anda mempunyai imej yang besar dalam saiz dimensi tetapi rendah ...

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Dalam Adobe Photoshop CS6, anda boleh menggunakan alat jenis untuk membuat pilihan yang dibentuk seperti huruf dan kemudian menggunakan imej itu sendiri sebagai tekstur (seperti batu) untuk jenisnya. Pemilihan jenis boleh memotong mana-mana bahagian gambar untuk menggunakan apa-apa cara yang anda mahukan. Ikuti langkah-langkah ini untuk mengukir huruf ke dalam tekstur batu ...