Los conceptos erróneos sobre NoSQL han existido tanto tiempo como el propio NoSQL. Siempre es bueno conocer diferentes puntos de vista, y así continúa esta serie de blogs. Discutiré los conceptos erróneos sobre NoSQL, específicamente cuando se trata de dos de las principales empresas de bases de datos documentales del mundo: Couchbase y MongoDB.
En este post, volveré a examinar algunas de las conceptos erróneos que Mongo ha hecho sobre Couchbase y NoSQLy uno de los errores y malentendidos más comunes que he oído en los comunidad de desarrolladores sobre NoSQL en general.
No deje de consultar las entradas anteriores de esta serie:
¿Es seguro NoSQL?
Algunos de los primeros (e incluso relativamente recientes) días de NoSQL tuvieron algunos problemas de seguridad evidentes y de alto perfil. He aquí algunos de ellos:
-
- Los ataques a MongoDB se disparan: 27.000 víctimas en horas
- El ransomware FairWare infecta servidores a través de instancias Redis expuestas
- Los ataques de ransomware contra Elasticsearch se cuentan ya por miles
- Las instalaciones inseguras de Hadoop, próximas en el punto de mira de la delincuencia informática
Cualquiera que lea casualmente noticias sobre NoSQL podría tener la impresión de que NoSQL es el salvaje oeste, cuando se trata de seguridad. Durante un tiempo, lo fue. "Fácil de empezar" a menudo significaba "Inseguro por defecto".
Pero NoSQL no tiene por qué significar "Sin seguridad". Couchbase Capella y los proveedores de servicios en la nube como AWS y Microsoft han trabajado duro para hacer de la seguridad una prioridad.
-
- Seguridad y protección de datos de Couchbase CapellaEste libro blanco abarca la seguridad y la protección de datos desde los niveles más altos hasta los detalles de aplicación.
- Capella también ha recibido Conformidad SOC2 certificación.
- Capella utiliza automáticamente el cifrado subyacente del proveedor de la nube.
- Gestión detallada del acceso, redes privadas, autenticación multifactor, supervisión y alertas son sólo algunas de las funciones de seguridad incluidas.
Y si desea ejecutar y gestionar Couchbase Server en lugar de Capella, seguirá teniendo acceso a toda la gama de funciones de seguridad.
¿Perderá NoSQL mis datos?
Es posible que haya visto titulares como este: Jepsen refuta las afirmaciones de MongoDB sobre la coherencia de los datos.
Muchos sistemas NoSQL hacen diferentes concesiones con las operaciones de datos, con el fin de reducir la latencia y aumentar el rendimiento (una de las razones clave por las que la gente se pasa a NoSQL en primer lugar). Esto es algo difícil de hacer bien, y en el pasado, esto ha llevado a problemas de casos límite que pueden resultar en la pérdida de datos. La "coherencia final" también es motivo de reticencia para muchos.
Estas concesiones se hicieron para obtener mejores cifras que se vieran bien en los puntos de referencia de marketing. Pero, en realidad, lo que ofrece un NoSQL moderno y maduro (como Couchbase) es..: control.
-
- Couchbase es fuertemente consistente.
- Couchbase está totalmente probado con Jepsen.
- Balsa se utiliza para el consenso de metadatos.
- Si quieres reducir el riesgo frente a casos extremos extremadamente raros, tienes el control para hacerlo.
La historia más larga:
-
- El almacenamiento de datos dentro de un cluster de Couchbase es fuertemente consistente. Guardas los datos, se guardarán en la memoria, y luego en el disco, y luego en otros nodos (de forma automática y asíncrona).
- Si le preocupan los casos extremos debidos a async, puede especificar un uso más estricto de requisitos de durabilidad. Puede hacer lo siguiente por operación si quieres.
- Los índices de consulta en Couchbase se actualizan de forma asíncrona (eventualmente), para evitar ralentizaciones, al tener que esperar en los índices cuando se crean/actualizan datos.
- PERO, al consultar, puede especificar nivel de coherenciade nuevo, en un por consulta base. Si necesita leer los resultados de una consulta al microsegundo, puede compensar la latencia.
Almacenamiento de datos cuando se tienen dos o más Clusters sincronización entre centros de datos es finalmente coherente. Esto significa que si se realiza un cambio en un documento de, por ejemplo, EE.UU. Este, el documento correspondiente de EE.UU. Oeste se actualizará unos microsegundos más tarde. (Y conflictos puede gestionarse automáticamente). Este sólo se aplica si utiliza varios centros de datos.
Siempre hay casos extremos con cualquier no sólo NoSQL. Sin embargo, Couchbase NoSQL moderna tiene valores predeterminados sensibles incorporados, con una variedad de opciones cuando las necesitas.
¿Significa NoSQL "No ACID"?
De nuevo, para proporcionar inicialmente lecturas y escrituras de baja latencia y alto rendimiento, Transacciones ACID no formaban parte de los primeros días de NoSQL. Para un usuario de bases de datos relacionales, esto solía ser una señal de alarma.
Sin embargo, como he observado en el pasadoACID no se refiere únicamente a las transacciones, y muchas bases de datos NoSQL pueden ofrecer garantías ACID.
Dicho esto, transacciones ACID multidocumento han estado disponibles en Couchbase Server desde la versión 6.5.
En Mongo's página de comparaciónLas transacciones ACID de Couchbase se caracterizan como "extremadamente limitadas". No hay más detalles que eso, así que sólo puedo especular que se trata de una referencia obsoleta a que las transacciones estaban disponibles inicialmente como una vista previa para los desarrolladores Java (y Scala/Kotlin por extensión). Pero mientras tanto, las transacciones ACID se han añadido a los SDKs de .NET, Node, PHP, Go, Python y C, y habrá más en el futuro. Y no sólo eso, las transacciones ACID están disponibles para cualquiera que utilice el nuevo Función BEGIN/COMMIT/ROLLBACK en SQL.
1 2 3 4 5 6 7 |
INICIO TRANSACCIÓN; SELECCIONE CONTAR(*) DESDE aeropuerto DONDE ciudad=Stanted; ACTUALIZACIÓN aeropuerto SET ciudad=Londres DONDE faa=STN; GUARDAR PUNTO s1; BORRAR DESDE aeropuerto DONDE ciudad=Londres Y faa != STN; ROLLBACK TRANSACCIÓN A GUARDAR PUNTO s1; COMPROMETERSE TRANSACCIÓN; |
Y los complejos escenarios de fragmentación ni siquiera entran en la ecuación, a diferencia de Mongo.
Resumen
-
- La NoSQL moderna es segura.
- El NoSQL moderno no perderá sus datos.
- El NoSQL moderno admite transacciones ACID.
Está bien que otros Las bases de datos NoSQL no soportan estas características: hay mucho espacio para la especialización de nicho. Pero para Couchbase, estas son características maduras utilizadas por grandes organizaciones para casos de uso críticos.
Así que, si hace años que no echa un vistazo a NoSQL, tal vez haya llegado el momento de hacerlo. inscríbase para una prueba gratuita de Couchbase Capella. No se requiere tarjeta de crédito.
¿Y ahora qué?
En la próxima entrada, profundizaré en más conceptos erróneos: ¿es realmente NoSQL tan buena para escalar? ¿Qué NoSQL es más popular y por qué es importante?
¿Quiere seguir debatiendo? Le invitamos a unirse al Couchbase Discord para más conversaciones, preguntas y respuestas con el personal y la comunidad de Couchbase.