Explicación de la terminología BASE

170

El acrónimo BASE se usa para describir las propiedades de ciertas bases de datos, generalmente bases de datos NoSQL. A menudo se le conoce como lo opuesto a ACID .

Solo hay unos pocos artículos que abordan los detalles de BASE, mientras que ACID tiene muchos artículos que detallan cada una de las propiedades de atomicidad, consistencia, aislamiento y durabilidad. Wikipedia solo dedica unas pocas líneas al término.

Esto me deja con algunas preguntas sobre la definición :

B asicamente A disponible , S de estado, E consistencia ventual

He interpretado estas propiedades de la siguiente manera, utilizando este artículo y mi imaginación:

Básicamente disponible podría referirse a la disponibilidad percibida de los datos. Si falla un solo nodo, parte de los datos no estarán disponibles, pero toda la capa de datos permanece operativa.

  • ¿Es correcta esta interpretación o se refiere a otra cosa?
  • Actualización: deduciendo de la respuesta de Mau , ¿podría significar que toda la capa de datos siempre acepta datos nuevos, es decir, no hay escenarios de bloqueo que impidan que los datos se inserten de inmediato?

Estado suave : todo lo que pude encontrar fue el concepto de datos que necesitaban una actualización periódica. Sin una actualización, los datos caducarán o se eliminarán.

  • La eliminación automática de datos en una base de datos me parece extraña.
  • Los datos caducados o obsoletos tienen más sentido. Pero este concepto se aplicaría a cualquier tipo de almacenamiento de datos redundante, no solo a NoSQL. ¿Describe algo más entonces?

La coherencia eventual significa que las actualizaciones eventualmente se extenderán a todos los servidores, con tiempo suficiente.

  • Esta propiedad es clara para mí.

¿Alguien puede explicar estas propiedades en detalle?

¿O es simplemente un acrónimo descabellado y sin sentido que se refiere a los conceptos de ácidos y bases que se encuentran en la química?

Niels van der Rest
fuente

Respuestas:

194

El acrónimo BASE fue definido por Eric Brewer , quien también es conocido por formular el teorema CAP .

El teorema de CAP establece que un sistema informático distribuido no puede garantizar las tres propiedades siguientes al mismo tiempo:

  • Consistencia
  • Disponibilidad
  • Tolerancia de partición

Un sistema BASE renuncia a la consistencia.

  • Básicamente disponible indica que el sistema hace garantía de disponibilidad, en términos del teorema de CAP.
  • El estado suave indica que el estado del sistema puede cambiar con el tiempo, incluso sin entrada. Esto se debe al modelo de consistencia eventual.
  • La consistencia eventual indica que el sistema se volverá consistente con el tiempo, dado que el sistema no recibe información durante ese tiempo.

Brewer admite que el acrónimo es artificial :

Se me ocurrió el acrónimo [BASE] con mis alumnos en su oficina a principios de ese año. Estoy de acuerdo en que es un poco artificial, pero también lo es "ACID", mucho más de lo que la gente cree, así que pensamos que era lo suficientemente bueno.

Niels van der Rest
fuente
33
Básicamente disponible NO garantiza disponibilidad. significa que está disponible en su mayoría, pero los servidores pueden fallar por varias razones.
DarthVader
@Neils, entonces, ¿ACID deja de lado la disponibilidad o la tolerancia de la paciencia?
Pacerier
@Pacerier, ahí es donde el teorema CAP comienza a mostrar sus defectos :) Si el sistema garantiza la tolerancia de partición, sacrifica la disponibilidad en caso de una partición. Si el sistema garantiza la disponibilidad, renuncia a la tolerancia de partición, lo que significa que una partición hará que el sistema no esté disponible (o sea inconsistente). Entonces puede ver que 'disponibilidad' y 'tolerancia de partición' van de la mano. Hay más detalles sobre esto en este artículo .
Niels van der Rest
1
No científicamente, pero según mis observaciones, cuando hablamos de servicios web, ACID se asocia con mayor frecuencia con SOAP y BASE está más estrechamente relacionado con los servicios REST (RESTful). Y para una discusión más precisa sobre la consistencia eventual, vea el debate entre los partidarios de MongoDB y CouchDB.
Charles Ross
El "teorema" CAP se disecciona matemáticamente (pero de manera muy legible) y Mark Burgess lo discute de una manera única e inteligente , cuyo artículo estoy leyendo en progreso. (Estaba vinculado allí en primer lugar por Wikipedia .)
Comodín el
45

Tiene que ver con BASE : el tipo saltador BASE es siempre Básicamente Disponible (a nuevas relaciones), en un estado blando (nada de su relación dure mucho tiempo) y, finalmente, consistente (un día se va a casar).

Mau
fuente
Ok, ¿entonces estás diciendo que las bases de datos ACID son mucho mejores que BASE?
Pacerier
2
Al contrario, BASE siempre es más divertido.
Mau
8
Bueno, ese es realmente mi pan de cada día y si quieres una respuesta seria, ACID.
Mau
1
@Pacerier Eric Brewer ho acuñó el término BASE, indica que mientras que los bancos e instituciones financieras hablan de limitaciones ACID, en realidad, no son en sentido estricto ( highscalability.com/blog/2013/5/1/... )
andand
2
@Pacerier y Mau, ¿qué pasa con NewSQL? ¿Lo elegirías sobre NoSQL (BASE) y relacional (ACID)?
Boris Mocialov
6
  • Disponibilidad básica : la base de datos parece funcionar la mayor parte del tiempo.

  • Estado blando : las tiendas no tienen que ser coherentes con la escritura ni con la coherencia mutua todo el tiempo.

  • Consistencia eventual : los datos siempre deben ser consistentes, con respecto a cómo se realiza cualquier número de cambios.

MANISH PRIYADARSHI
fuente
4

ACID y BASE son modelos de consistencia para RDBMS y NoSQL respectivamente. Las transacciones de ACID son mucho más pesimistas, es decir, están más preocupadas por la seguridad de los datos. En el mundo de las bases de datos NoSQL, las transacciones ACID están menos de moda, ya que algunas bases de datos han aflojado los requisitos de consistencia inmediata, actualización y precisión de los datos para obtener otros beneficios, como la escalabilidad y la capacidad de recuperación.

BASE significa -

  • Disponibilidad básica : la base de datos parece funcionar la mayor parte del tiempo.
  • Estado suave : las tiendas no tienen que ser coherentes con la escritura, ni las réplicas diferentes tienen que ser consistentes entre sí todo el tiempo.
  • Consistencia eventual : las tiendas exhiben consistencia en algún momento posterior (por ejemplo, perezosamente en el momento de lectura).

Por lo tanto, BASE relaja la consistencia para permitir que el sistema procese la solicitud incluso en un estado inconsistente.

Ejemplo : a nadie le importaría si su tweet fuera inconsistente dentro de su red social durante un corto período de tiempo. Es más importante obtener una respuesta inmediata que tener un estado consistente de la información de los usuarios.

Pujan Srivastava
fuente
1
La consistencia eventual en realidad tiene un impacto no deseado. ¿Alguna vez has experimentado la ralentización del chat de LinkedIn? Respondes con una oración y luego respondes con otra. Luego, debido a la coherencia eventual, o la falta de una implementación adecuada de la misma, terminan intercambiando sus dos respuestas. Sí, al final obtuviste 2 respuestas en el chat, pero no están en el orden previsto.
zmechanic
2

Para agregar a las otras respuestas, creo que los acrónimos se derivaron para mostrar una escala entre los dos términos para distinguir qué tan confiables eran las transacciones o solicitudes entre RDMS y Big Data.

De este artículo ácido vs base

En química, el pH mide la basicidad relativa y la acidez de una solución acuosa (disolvente en agua). La escala de pH se extiende desde 0 (sustancias altamente ácidas como el ácido de batería) a 14 (sustancias altamente alcalinas como la mentira); El agua pura a 77 ° F (25 ° C) tiene un pH de 7 y es neutral.

Los ingenieros de datos han prestado hábilmente ácido vs base de los químicos y han creado acrónimos que, aunque no son exactos en sus significados, siguen siendo representaciones adecuadas de lo que está sucediendo dentro de un sistema de base de datos dado al analizar la confiabilidad del procesamiento de transacciones.

Otro punto, ya que trabajo con Big Data usando Elasticsearch. Para aclarar, una instancia de Elasticsearch es un nodo y un grupo de nodos forman un clúster.

Para mí desde un punto de vista práctico, BA (Básicamente disponible), en este contexto, tiene la idea de múltiples nodos maestros para manejar el clúster Elasticsearch y sus operaciones.

Si tiene 3 nodos maestros y el nodo maestro que dirige actualmente se cae, el sistema se mantiene activo, aunque en un estado menos eficiente, y otro nodo maestro toma su lugar como el nodo maestro principal que dirige. Si dos nodos maestros se desactivan, el sistema aún permanece activo y el último nodo maestro se hace cargo.

James Drinkard
fuente
0

Podría ser simplemente porque ACID es un conjunto de propiedades que muestran las sustancias (en Química) y BASE es un conjunto complementario de ellas, por lo que podría ser solo para mostrar el contraste entre las dos que el acrónimo se formó y luego 'Básicamente disponible La coherencia eventual del estado blando 'se decidió como su forma completa.

siebenheaven
fuente
2
Eso puede explicar cómo surgió el acrónimo, pero no explica qué significan las diversas propiedades .
Jmb
El uso de palabras como 'Básicamente' que ni siquiera son significativas en términos de significado sugieren que primero se eligió el acrónimo (ACID vs BASE) y luego se encontró que las palabras rellenaban las partes del acrónimo . Esa es probablemente la razón por la que no encontramos tantas explicaciones y referencias (en comparación con las palabras de ACID, explicación de las cuales puede encontrar en cada página que habla sobre RDBMS) a lo que significan estas palabras.
siebenheaven
Encuentro esto interesantemente correcto, ya que "Básicamente disponible" parece muy forzado.
Ricardo Pedroni