Sitemap

BASE ve ACID Kavramları

2 min readJul 22, 2024

Merhaba arkadaşlar, daha önce sizlere cap teoreminden bahsetmiştim, bugün de yine veritabanı ve sistem tasarımı yaklaşımlarından ACID,BASE sistemlerden bahsetmeye çalışacağım.

sergio-capuzzimati-unsplash
sergio-capuzzimati-unsplash

Base

Base prensibi dağıtık sistemlerde anında tutarlılık (Consistency) beklenmeyen kullanılabilirliğin ve esnekliğin (availability — partition tolerance) ön planda olduğu durumlarda tercih edilir. Fakat burada tutarlılık sonradan sağlanır. (bkz Eventual Consistency)

Örnek: sosyal medya platformlarında ki timeline yapısı

Basically Available

Cap teoreminde yer alan availability şartını sağlar yani basitçe kullanıcılar tarafından her zaman eşzamanlı erişilebilirliği anlamına gelir.

Soft State

Bunu aslında geçiş durumu gibi ifade edebiliriz. Sistem dışarıdan bir tetikleyici olmasa da zaman içinde değişebilir, yalnızca tüm işlemler bittiğinde sonuçlanır. Örneğin youtube da ki beğeni sayısı kısmı zamanla güncellenebilir.

Eventally Consistent

Bu konu için detaylı açıklama olan yukarıda verdiğim linki burada tekrarlayayım fakat basitçe anlatmak gerekirse eşzamanlı düzenlemeler tamamlandığında kaydın tutarlı olacağı anlamına gelir, bu noktada sistem soft stateden çıkmış olur.

sergio-capuzzimati-unsplash

ACID

ACID yaklaşımı basitçe tutarlılık ve güvenilirlik sunar, özellikle veri tutarlılığın garanti edilmesi gereken yerlerde, transactional işlemlerde tercih edilir. Örnek : Finansal işlemler

Atomicity (Bölünmezlik)

Bir işlem ya tamamıyla gerçekleşir, ya tamamıyla gerçekleşmez. Bir transaction içinde ya bütün işlemler gerçekleşir ya hiç biri gerçekleşmez. Yani bir transaction daha ufak parçalara bölünerek bu parçaların gerçekleşmesi beklenemez, bu transaction işlemi bir bütündür ve bölünemez.

Consistency (Tutarlılık)

Kısaca veri tutarlılığını sağlar.

Isolation (izolasyon — Yalıtım)

Eş zamanlı işlemler birbirlerinden bağımsız olmalı ve bir işlem diğer işlemlerden etkilenmemelidir, bunun sağlanması için farklı lock mekanizmaları ve isolation yaklaşımları vardır.

Durability (Dayanıklılık)

Basitçe veri tabanının tüm kayıtları tutmasını ve ağ, işlem hataları olsa bile veri kaydedildikten sonra sistemde olacağını garanti etmesini sağlar. Yani bir işlem tamamlandıysa o veri artık sisteme kaydedilmiştir ve bu verinin sistemde olduğunu garanti etmektedir.

Toparlamak gerekirse veri güvenliği, tutarlılık gerekiyorsa ACID (Banka), esneklik, ölçeklenebilirlik, performans gerekiyorsa BASE(E-Ticaret, sosyal medya) yaklaşımları tercih edilebilir.

Umarım faydalı olmuştur, kalın sağlıcakla … 🙂

Kaynaklar

https://www.geeksforgeeks.org/eventual-consistency-in-distributive-systems-learn-system-design/
https://medium.com/@berktorun.dev/base-acid-ve-cap-veritaban%C4%B1-yakla%C5%9F%C4%B1mlar%C4%B1-ce5d329b8d7e
http://cagataykiziltan.net/cap-teoremi-acid-rdbms-ve-nosql-cozumleri-iliskisi/
https://aws.amazon.com/tr/compare/the-difference-between-acid-and-base-database/

--

--

No responses yet