Пояснення базової термінології


170

БАЗА акронім використовується для опису властивостей деяких баз даних, як правило , база даних NoSQL. Його часто називають протилежною кислотою .

Є лише кілька статей, які торкаються деталей BASE, тоді як ACID має багато статей, які детально розглядають властивості атомності, консистенції, ізоляції та довговічності. Вікіпедія присвячує цьому терміну лише кілька рядків .

Це залишає у мене кілька питань щодо визначення :

У asically моделі шириною, S часто стан, Е ventual консистенції

Я інтерпретував ці властивості так, використовуючи цю статтю та свою фантазію:

В основному доступні можуть посилатися на сприйману доступність даних. Якщо один вузол виходить з ладу, частина даних буде недоступною, але весь рівень даних залишається працездатним.

  • Чи правильне це тлумачення чи воно стосується чогось іншого?
  • Оновлення: виходячи з відповіді Мау , чи може це означати, що весь рівень даних завжди приймає нові дані, тобто немає сценаріїв блокування, які не дозволяють вводити дані негайно?

М'який стан : Все, що я міг знайти, - це концепція даних, що потребують періоду оновлення. Без оновлення дані закінчуються або видаляються.

  • Автоматичне видалення даних у базі даних мені здається дивним.
  • Дані, що минули чи застаріли, мають сенс. Але ця концепція застосовуватиметься до будь-якого типу надмірного зберігання даних, а не тільки до NoSQL. Чи описує це щось інше тоді?

Подія послідовності означає, що оновлення в кінцевому підсумку перейдуть на всі сервери, надаючи достатньо часу.

  • Ця властивість мені зрозуміла.

Чи може хтось детально пояснити ці властивості?

Або це просто надумана і безглузда абревіатура, яка посилається на поняття кислот і основ, як їх можна знайти в хімії?

Відповіді:


194

Скорочення BASE було визначено Еріком Брюер , який також відомий тим, що формулює теорему CAP .

Теорема CAP стверджує, що розподілена комп'ютерна система не може гарантувати одночасно всі три наступні властивості:

  • Послідовність
  • Доступність
  • Толерантність до розділів

Система BASE відмовляється від послідовності.

  • В основному є показує , що система робить гарантії доступності, з точки зору теореми CAP.
  • М'який стан вказує на те, що стан системи може змінюватися з часом навіть без введення. Це пояснюється можливою моделлю узгодженості.
  • Подія послідовності вказує на те, що система з часом стане послідовною, враховуючи, що система не отримує введення протягом цього часу.

Брюер визнає, що абревіатура надумана :

Я придумав абревіатуру [БАЗА] зі своїми студентами в їх офісі на початку цього року. Я погоджуюсь, що це надумано трохи, але так це "кислота" - набагато більше, ніж люди усвідомлюють, тому ми подумали, що це досить добре.


33
В основному доступний НЕ гарантує доступність. це означає, що він в основному доступний, але сервери можуть опускатися з різних причин.
DarthVader

@Neils, чи ACID відмовляється від наявності чи толерантності до патиції?
Pacerier

@Pacerier, саме тут теорема CAP починає виявляти свої недоліки :) Якщо система гарантує толерантність до розділів, вона жертвує наявністю у випадку розділу. Якщо система гарантує доступність, вона відмовляється від толерантності до розділів, що означає, що розділ зробить систему недоступною (або непослідовною). Тож ви бачите, що "доступність" та "толерантність до розділів" йдуть рука об руку. Детальніше про це в цій статті .
Niels van der Rest

1
Ненаціонально, але, з моїх спостережень, коли ми говоримо про веб-сервіси, ACID найчастіше асоціюється з SOAP, а BASE більш тісно пов'язаний з послугами REST (RESTful). А для більш чіткої дискусії про узгодженість у майбутньому дивіться дискусію між прихильниками MongoDB та CouchDB.
charles ross

"Теорема" CAP розчленовується математично (але дуже читано) та обговорюється унікально розумним способом Марком Берджесом , чию статтю я зараз читаю. (Мене там пов’язували в першу чергу Вікіпедія .)
Wildcard

45

Це пов'язано з БАЗІ : базовий стрибун вигляд не завжди в основному вільний (до нових відносин), в м'якому стані (жоден з його відносини дуже довго) і в кінцевому підсумку послідовне (один день він буде вступати в шлюб).


Гаразд, значить, ви говорите, що база даних ACID набагато краща за BASE?
Pacerier

2
Au contraire, BASE завжди веселіше.
Mau

8
Ну, це насправді мій хліб щоденний, і якщо ви хочете серйозної відповіді, кислоту.
Mau

1
@Pacerier Ерік Брюер хо ввів термін БАЗИ, вказує на те, що в той час як банки і фінансові установи говорити про обмеження ACID, насправді, вони не є строго кажучи ( highscalability.com/blog/2013/5/1 / ... )
andand

2
@Pacerier і Mau, а що з NewSQL? Чи вибрали б ви це через NoSQL (BASE) та реляційні (ACID)?
Борис Мочіалов

6
  • Основна доступність : Здається, база даних працює більшу частину часу.

  • Мягкий стан : Магазини не повинні бути послідовними між собою та взаємно послідовними.

  • Майбутня узгодженість : Дані завжди мають бути узгодженими щодо того, як проводиться будь-яка кількість змін.


4

ACID і BASE - моделі узгодженості для RDBMS і NoSQL відповідно. Угоди ACID набагато песимістичніші, тобто вони більше переживають за безпеку даних. У світі баз даних NoSQL трансакції ACID є менш модними, оскільки деякі бази даних послабили вимоги до негайної послідовності, свіжості та точності даних з метою отримання інших переваг, таких як масштабованість та стійкість.

BASE означає -

  • Основна доступність - Здається, база даних працює більшу частину часу.
  • М'який стан - Магазини не повинні бути послідовними щодо запису, а також різні репліки не повинні постійно бути послідовними.
  • Побічна послідовність - магазини виявляють послідовність у якийсь пізній момент (наприклад, ліниво під час читання).

Тому BASE послаблює послідовність, щоб система могла обробляти запит навіть у непослідовному стані.

Приклад : Ніхто не заперечував би, якщо їх твіт був невідповідним в соціальній мережі протягом короткого періоду часу. Важливіше отримати негайну відповідь, ніж мати послідовний стан інформації про користувачів.


1
Побічна послідовність насправді має небажаний вплив. Ви коли-небудь відчували уповільнення чату LinkedIn. Ви відповідаєте одним реченням, а потім - іншим. Тоді через Послідовну Послідовність або відсутність належної реалізації їх, Ви закінчуєте, щоб Ваші два відповіді були змінені разом. Так, ви отримали 2 відповіді в чаті, врешті-решт, але вони не в запланованому порядку.
zmechanic

2

Щоб додати до інших відповідей, я думаю, що абревіатури були отримані, щоб показати шкалу між двома термінами, щоб розрізнити, наскільки надійні транзакції або запити, де між RDMS та Big Data.

З цієї статті кислота проти основи

У хімії pH вимірює відносну основність та кислотність водного (розчинника у воді) розчину. Шкала рН поширюється від 0 (висококислі речовини, такі як акумуляторна кислота) до 14 (високощелочні речовини, як брехня); чиста вода при температурі 25 ° C (77 ° F) має pH 7 і є нейтральною.

Інженери даних спритно запозичили кислоту проти основи у хіміків і створили абревіатури, які, хоч і не є точними в їх значенні, все ще влучні уявлення про те, що відбувається в даній системі баз даних, коли обговорювали надійність обробки транзакцій.

Ще один момент, оскільки я працюю з Big Data за допомогою Elasticsearch. Для уточнення, екземпляр Elasticsearch - це вузол, а група вузлів утворює кластер.

Для мене, з практичної точки зору, BA (в основному доступний) в цьому контексті має ідею з декількох головних вузлів для обробки кластеру Elasticsearch та його операцій.

Якщо у вас є 3 головних вузла, і поточний головний вузол, що керує в даний час, виходить з ладу, система залишається в режимі, хоча і в менш ефективному стані, а інший головний вузол займає своє місце в якості основного головного вузла керування. Якщо два головних вузли виходять з ладу, система все ще залишається в режимі останнього, а останній головний вузол переймає.


0

Це може бути просто тому, що ACID - це один набір властивостей, які проявляють речовини (в хімії), а BASE - це доповнення до них. Отже, можна просто показати контраст між цими двома абревіатурами, а потім "В основному доступними" Soft State Eventual Consistentcy 'було вирішено, оскільки це повноцінна форма.


2
Це може пояснити, як акронім виник, але не пояснює, що означають різні властивості .
Jmb

Використання слів типу "В основному", які навіть не мають значущого значення за своїм значенням, вказує на те, що абревіатура була обрана спочатку (ACID проти BASE), а потім слова були знайдені для заповнення частин абревіатури . Напевно, тому ми не знаходимо стільки пояснень та посилань (порівняно зі словами ACID, пояснення яких ви можете знайти на кожній сторінці, що розповідає про RDBMS) до того, що означають ці слова.
siebenheaven

Я вважаю це цікавим правильним, оскільки "В основному доступне" здається таким вимушеним.
Рікардо Педроні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.