Konsistensi dalam teorema ACID dan CAP, apakah keduanya sama?


18

Dari pemahaman saya, konsistensi dalam ACID adalah memastikan integritas data.

Namun, konsistensi dalam CAP berarti data dapat muncul dengan cepat dalam sistem terdistribusi.

Apakah itu berarti: mereka bukan konsep yang sama?

Jawaban:


18

Mereka tidak benar-benar sama, karena ruang lingkup data

ASAM

TOPI

  • Konsistensi (Semua Node Memiliki Data yang Sama melalui Konsistensi Akhirnya)
  • Ketersediaan
  • Toleransi Partisi: sistem terus beroperasi meskipun ada pesan yang hilang atau kegagalan sebagian dari sistem

RINGKASAN

  • ACID membahas konsistensi data masing-masing node
  • CAP alamat konsistensi data cluster-lebar

1
Akhirnya. Akhirnya seharusnya dicetak tebal, Rolando. Ini adalah deal-breaker :) Selamat Tahun Baru!
Philᵀᴹ

3

Teorema CAP : menetapkan bahwa sistem terdistribusi dapat menyediakan dua layanan (mis. Ketersediaan dan Toleransi partisi) tetapi tidak pernah tiga. Jika misalnya, suatu layanan menyediakan Ketersediaan dan Pemisahan, maka ia tidak akan pernah dapat memastikan Konsistensi, tidak segera, sehingga Konsistensi Akhirnya digunakan, yang memungkinkan infrastruktur untuk beralih antara inkonsistensi dan konsistensi, namun pada satu titik, cepat atau lambat, infrastruktur akan menjadi konsisten , menghasilkan konsistensi akhirnya. Layanan cloud bekerja dengan cara seperti itu dan Simple DB Amazon menggunakan konsistensi akhirnya.

ASAMFitur biasanya diterapkan pada DB relasional. Jika Anda ingin menerapkan ACID secara terdistribusi (DB terdistribusi), ACID menggunakan 2PC (komitmen dua fase) untuk memaksakan konsistensi di seluruh partisi. Namun karena ACID menyediakan konsistensi dan partisi, menerapkan teorema CAP untuk (lingkungan terdistribusi) ini akan berarti bahwa ketersediaan terganggu.

Karena itu, BASE (Pada dasarnya tersedia, keadaan lunak, akhirnya konsisten) digunakan yang dapat memberikan tingkat skalabilitas yang tidak dapat diperoleh dengan ACID.

Semoga ini membantu.


-1

Mengenai Konsistensi dalam teorema CAP, Julian Brown menulis dalam artikelnya ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Sebuah layanan yang konsisten beroperasi sepenuhnya atau tidak sama sekali. Gilbert dan Lynch menggunakan kata "atomik" alih-alih konsisten dalam buktinya, yang secara teknis lebih masuk akal karena, secara tegas, konsisten adalah C dalam ACID sebagaimana diterapkan pada properti ideal transaksi basis data dan berarti bahwa data tidak akan pernah bertahan bahwa melanggar batasan yang telah ditentukan sebelumnya. Tetapi jika Anda menganggapnya sebagai kendala preset sistem terdistribusi yang beberapa nilai untuk data yang sama tidak diperbolehkan maka saya pikir kebocoran pada abstraksi dicolokkan (ditambah, jika Brewer menggunakan kata atomic, itu akan disebut AAP teorema dan kita semua akan berada di rumah sakit setiap kali kita mencoba mengucapkannya).

Jadi C dalam CAP akan sesuai dengan A dalam ACID.

Dengan Gilbert dan Lynch ia merujuk pada artikel "Seth Gilbert dan Nancy Lynch: dugaan Brewer dan kelayakan layanan web yang konsisten, tersedia, toleran-partisi"


1
Konsistensi CAP berlaku untuk sistem terdistribusi, sedangkan ACID abstrak sendiri dari tingkat arsitektur sistem. Konsistensi CAP mungkin diperlukan untuk implementasi atomitas ACID, tetapi itu bukan hal yang sama.
mustaccio

Karena Brewer sendiri menempatkan teorema CAP-nya dalam kaitannya dengan ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Halaman 2 & 3) Saya pikir sangat valid untuk melihat lebih dalam hubungan antara kedua.
white_gecko
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.