Spiegazione della terminologia BASE


170

L' acronimo BASE viene utilizzato per descrivere le proprietà di alcuni database, generalmente database NoSQL. Viene spesso definito l'opposto di ACID .

Ci sono solo pochi articoli che toccano i dettagli di BASE, mentre ACID ha molti articoli che elaborano ciascuna delle proprietà di atomicità, coerenza, isolamento e durata. Wikipedia dedica solo poche righe al termine.

Questo mi lascia con alcune domande sulla definizione :

B asically Un vailable, S spesso stato, E consistenza ventual

Ho interpretato queste proprietà come segue, usando questo articolo e la mia immaginazione:

Fondamentalmente disponibile potrebbe riferirsi alla disponibilità percepita dei dati. Se un singolo nodo fallisce, parte dei dati non sarà disponibile, ma l'intero livello dati rimarrà operativo.

  • Questa interpretazione è corretta o si riferisce a qualcos'altro?
  • Aggiornamento: deducendo dalla risposta di Mau , potrebbe significare che l'intero livello di dati accetta sempre nuovi dati, cioè non ci sono scenari di blocco che impediscono l'inserimento immediato dei dati?

Soft state : tutto quello che ho potuto trovare era il concetto di dati che necessitavano di un periodo di aggiornamento. Senza un aggiornamento, i dati scadranno o verranno eliminati.

  • La cancellazione automatica dei dati in un database mi sembra strana.
  • I dati scaduti o obsoleti hanno più senso. Ma questo concetto si applicherebbe a qualsiasi tipo di archiviazione dati ridondante, non solo a NoSQL. Descrive qualcos'altro allora?

La coerenza finale significa che gli aggiornamenti alla fine si riverseranno su tutti i server, dato il tempo sufficiente.

  • Questa proprietà mi è chiara.

Qualcuno può spiegare queste proprietà in dettaglio?

O è solo un acronimo inverosimile e insignificante che si riferisce ai concetti di acidi e basi presenti in chimica?

Risposte:


194

L'acronimo BASE è stato definito da Eric Brewer , noto anche per la formulazione del teorema della CAP .

Il teorema CAP afferma che un sistema informatico distribuito non può garantire contemporaneamente tutte e tre le seguenti proprietà:

  • Consistenza
  • Disponibilità
  • Tolleranza di partizione

Un sistema BASE rinuncia alla coerenza.

  • Fondamentalmente disponibile indica che il sistema non disponibilità di garanzia, in termini del teorema PAC.
  • Lo stato soft indica che lo stato del sistema può cambiare nel tempo, anche senza input. Ciò è dovuto al modello di coerenza finale.
  • L'eventuale coerenza indica che il sistema diventerà coerente nel tempo, dato che il sistema non riceve input durante tale periodo.

Brewer ammette che l'acronimo è inventato :

Ho ideato l'acronimo di [the BASE] con i miei studenti nel loro ufficio all'inizio di quell'anno. Sono d'accordo che sia un po 'inventato, ma lo è anche "ACID" - molto più di quanto la gente capisca, quindi abbiamo pensato che fosse abbastanza buono.


33
Fondamentalmente disponibile NON garantisce la disponibilità. significa che è per lo più disponibile ma i server potrebbero non funzionare per vari motivi.
DarthVader,

@Neils, quindi ACID rinuncia alla disponibilità o alla tolleranza della patizione?
Pacerier,

@Pacerier, è qui che il teorema CAP inizia a mostrare i suoi difetti :) Se il sistema garantisce la tolleranza della partizione, sacrifica la disponibilità nel caso di una partizione. Se il sistema garantisce la disponibilità, rinuncia alla tolleranza della partizione, il che significa che una partizione renderà il sistema non disponibile (o incoerente). Quindi puoi vedere che "disponibilità" e "tolleranza di partizione" vanno di pari passo. Ci sono più dettagli su questo in questo articolo .
Niels van der Rest,

1
Non scientificamente, ma dalle mie osservazioni, quando si parla di servizi Web, ACID è spesso associato a SOAP e BASE è più strettamente associato ai servizi REST (RESTful). E per una discussione più approfondita sull'eventuale coerenza, vedere il dibattito tra i sostenitori di MongoDB e CouchDB.
charles ross,

Il "teorema" della PAC è sezionato matematicamente (ma in modo molto leggibile) e discusso in modo straordinariamente intelligente da Mark Burgess , di cui sto leggendo l'articolo in corso. (Sono stato collegato lì in primo luogo da Wikipedia .)
Wildcard il

45

Ha a che fare con BASE : il tipo BASE ponticello è sempre Fondamentalmente disponibile (a nuovi rapporti), in uno stato di morbida (nessuno del suo rapporto durare molto a lungo) e, infine, consistente (un giorno lui sarà sposarsi).


Ok, quindi stai dicendo che i database ACID sono molto meglio di BASE?
Pacerier,

2
Al contrario, BASE è sempre più divertente.
Mau,

8
Bene, questo è in realtà il mio pane quotidiano e se vuoi una risposta seria, ACID.
Mau,

1
@Pacerier Eric Brewer ha coniato il termine BASE, indica che mentre le banche e le istituzioni finanziarie parlano di vincoli ACID, in realtà, non stanno parlando rigorosamente ( highscalability.com/blog/2013/5/1/… )
ee il

2
@Pacerier e Mau, che mi dici di NewSQL? Sceglierebbe tra NoSQL (BASE) e relazionale (ACID)?
Boris Mocialov,

6
  • Disponibilità di base : il database sembra funzionare la maggior parte delle volte.

  • Soft State : i negozi non devono essere coerenti in scrittura o reciprocamente coerenti in ogni momento.

  • Coerenza finale : i dati dovrebbero essere sempre coerenti, per quanto riguarda le modalità di esecuzione di qualsiasi numero di modifiche.


4

ACID e BASE sono modelli di coerenza rispettivamente per RDBMS e NoSQL. Le transazioni ACID sono molto più pessimistiche, ovvero sono più preoccupate per la sicurezza dei dati. Nel mondo dei database NoSQL, le transazioni ACID sono meno alla moda in quanto alcuni database hanno allentato i requisiti di coerenza, aggiornamento e accuratezza dei dati immediati per ottenere altri vantaggi, come la scalabilità e la resilienza.

BASE sta per -

  • Disponibilità di base : il database sembra funzionare la maggior parte delle volte.
  • Soft-state : i negozi non devono essere coerenti con la scrittura, né repliche diverse devono essere reciprocamente coerenti in ogni momento.
  • Consistenza finale : i negozi presentano consistenza in un momento successivo (ad esempio, pigramente al momento della lettura).

Pertanto BASE rilassa la coerenza per consentire al sistema di elaborare la richiesta anche in uno stato incoerente.

Esempio : nessuno si preoccuperebbe se il suo tweet fosse incoerente all'interno del proprio social network per un breve periodo di tempo. È più importante ottenere una risposta immediata che avere uno stato coerente delle informazioni degli utenti.


1
L'eventuale coerenza ha effettivamente un impatto indesiderato. Hai mai sperimentato il rallentamento della chat di LinkedIn. Rispondi con una frase e quindi rispondi con un'altra. Quindi, a causa di un'eventuale coerenza o della mancanza della sua corretta attuazione, si finisce con le due risposte scambiate insieme. Sì, alla fine hai ricevuto 2 risposte nella chat, ma non sono nell'ordine previsto.
zmechanic,

2

Per aggiungere alle altre risposte, penso che gli acronimi siano stati derivati ​​per mostrare una scala tra i due termini per distinguere quanto siano affidabili le transazioni o le richieste tra RDMS e Big Data.

Da questo articolo acido vs base

In chimica, il pH misura la basicità e l'acidità relative di una soluzione acquosa (solvente in acqua). La scala del pH si estende da 0 (sostanze altamente acide come l'acido della batteria) a 14 (sostanze altamente alcaline come la bugia); l'acqua pura a 25 ° C ha un pH di 7 ed è neutra.

I data engineer hanno abilmente preso in prestito acido contro base dai chimici e creato acronimi che, sebbene non esatti nei loro significati, sono ancora rappresentazioni appropriate di ciò che sta accadendo all'interno di un dato sistema di database quando discutono dell'affidabilità dell'elaborazione delle transazioni.

Un altro punto, dal momento che lavoro con Big Data usando Elasticsearch. Per chiarire, un'istanza di Elasticsearch è un nodo e un gruppo di nodi formano un cluster.

Per me dal punto di vista pratico, BA (Basically Available), in questo contesto, ha l'idea di più nodi master per gestire il cluster Elasticsearch e le sue operazioni.

Se si dispone di 3 nodi master e il nodo master attualmente diretto scende, il sistema rimane attivo, sebbene in uno stato meno efficiente, e un altro nodo principale prende il posto del nodo principale principale di direzione. Se due nodi master si disattivano, il sistema rimane comunque attivo e l'ultimo nodo master subentra.


0

Potrebbe essere solo perché ACID è un insieme di proprietà che le sostanze mostrano (in Chimica) e BASE è un insieme di esse, quindi potrebbe essere solo per mostrare il contrasto tra i due che l'acronimo è stato composto e quindi 'Fondamentalmente disponibile Soft State Eventual Coerency 'è stata decisa in quanto full-form.


2
Questo può spiegare come è nato l'acronimo, ma non spiega cosa significano le varie proprietà .
Jmb

L'uso di parole come "Fondamentalmente" che non sono nemmeno significative in termini di significato che portano a suggerire che l'acronimo sia stato scelto prima (ACID vs BASE) e quindi le parole sono state trovate per riempire in qualche modo le parti dell'acronimo . Questo è probabilmente il motivo per cui non troviamo tante spiegazioni e riferimenti (rispetto alle parole di ACID, spiegazione di cui puoi trovare in ogni pagina che parla di RDBMS) il significato di queste parole.
siebenheaven,

Lo trovo interessante in modo corretto, dal momento che "Basically Available" sembra così forzato.
Ricardo Pedroni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.