Computación GPU
Hace mucho tiempo, las tarjetas de
video se construían para dibujar escenas elaboradas para los juegos de niños,
pero ahora las llamadas unidades de procesamiento de gráficos están haciendo
mucho procesamiento no gráfico. La búsqueda a través de datos es solo una de
las mejores operaciones no gráficas que deben abordar. Y ¿por qué no? Abrirse
paso entre las interminables pilas de datos buscando una pareja, es una
operación inherentemente paralela hecha de muchos trabajos rudimentarios
(probando la igualdad) repetidos millones de veces. Por lo tanto, es bastante
sencillo pasar el trabajo a los miles de procesadores en el GPU.
Las mayores victorias no están en
responder cada consulta (que obviamente son mucho más rápidas), sino en el
trabajo de preparación, porque hay poca necesidad de pre procesamiento. Muchas
bases de datos ahorran tiempo manteniendo un índice, que es efectivamente un
resultado precalculado de cada búsqueda posible. Si este índice es destruido o
dañado, reconstruirlo puede tardar horas, días o incluso meses. Sin embargo, si
los datos pueden caber dentro de la memoria del GPU, por lo general podrá
seguir sin el índice. Si los datos están cambiando rápidamente y la mayor parte
del índice no se utiliza nunca, saltarse el pre procesamiento puede ser muy
eficaz.
Revise MapD,Kineta, Brytlyt y otros
para ver si es que sus datos y búsquedas pueden ser acelerados.
Memoria no volátil (NVRAM)
Los programadores novatos hace
cincuenta años la tenían fácil. No tenían que hacer malabares con los datos
entre la RAM y el disco con protocolos elaborados para asegurar la
consistencia. Eso se debe a que la memoria en ese entonces tenía núcleo de
hierro, y no se borraba cuando se apagaba la energía. Esos buenos tiempos
podrían regresar pronto, porque los fabricantes de chips están discutiendo para
reemplazar la RAM con NVRAM o memoria no volátil.
Este es un gran cambio de juego para
los programadores de bases de datos, porque uno de sus mayores desafíos (e
incluso su mayor razón para vivir) está desapareciendo. Algunos sugieren que
las bases de datos pueden ser mucho más rápidas, porque la semántica de las
transacciones puede ser más sencilla. Otros tienen la idea de construir el
registro de recuperación después de que los datos sean escritos en los medios,
no antes.
Nadie sabe qué pasará. ¿La gente
seguirá una base de datos, aunque no necesiten un registro permanente o la
búsqueda y la indexación los hará volver? Todos los algoritmos y arquitecturas
tienen que ser repensadas. Sabremos la mejor manera de usar NVRAM en una década
aproximadamente.
Amplíe SQL
Cuando el movimiento de NoSQL comenzó,
una de las principales características era la capacidad de dispersar el
almacenamiento de sus datos a través de múltiples nodos. Las bases de datos
NoSQL como Cassandra y MongoDB hicieron parecer que conseguir todas las lindas
características del almacenamiento de gran escala significaba abandonar el
cómodo mundo de SQL.
En la realidad no necesita haber una
compensación. Aunque los primeros experimentos de bases de datos de gran escala
eran fáciles de crear porque dejaban atrás todo el bagaje de SQL, no hay razón
por la cual éste no pueda funcionar bien en múltiples máquinas operando a gran
escala. De hecho, empresas como Oracle han venido haciéndolo por años.
Las nuevas bases de datos a gran escala
le permiten usar todo su conocimiento y conveniencia de SQL con un conjunto de
datos distribuidos en un gran clúster. CockroachDB, por ejemplo, ofrece un
motor de consulta SQL estándar que tiene acceso a los datos replicados en
múltiples nodos, todos con garantías de ACID. Sí, pagará por algunos de estos
apoyos para la coherencia de los datos, pero tal vez menos de lo que esperaba.
Si la coherencia garantizada es
importante para su trabajo, empiece revisando CockroachDB, Google Cloud Spanner,
Clustrix, Azure SQL, y NuoDB.
Bases de datos geoespaciales
Las bases de datos tradicionales están
hechas para conjuntos de datos unidimensionales, no las dos coordenadas
dimensionales de la geografía. Puede falsificarlo y usar una base de datos
estándar para realizar tareas básicas con coordenadas geográficas. Si pega la
latitud y longitud en columnas separadas, no es difícil buscar las filas que
caen dentro de un cuadro definido por un rango de latitudes y longitudes. Sin
embargo, una vez que quiera ir más allá, las consultas SQL estándar no serán
efectivas.
Las bases de datos geoespaciales añaden
algunas funciones adicionales que hacen que la búsqueda, clasificación e
intersección sean mucho más fáciles en el espacio bidimensional. Los índices
espaciales, por ejemplo, usualmente funcionan añadiendo una cuadrícula encima
del espacio de coordenadas para hacer que sea mucho más rápido buscar las filas
adyacentes en mundos bidimensionales y tridimensionales.
Estos índices hacen posible escribir
consultas con operaciones como “contener”, “superponer”, e incluso “tocar” con
conjuntos definidos por polígonos. Todo esto hace que el razonamiento sobre el
mundo real sea mucho más eficiente.
Revise Neo4j Spatial, GeoMesa,
MapD, y PostGIS en busca de algunos buenos lugares para comenzar.
Bases de datos gráficas
Las tablas son un buen repositorio para
muchas estructuras de datos, pero no hacen un muy buen trabajo al momento de
modelar una gran estructura de datos emergentes que ha impulsado los últimos
diez años de evolución de la Internet: la red. A medida que el llamado “gráfico
social” explota, estamos llenando nuestra computadora con más y más nodos con
enlaces entre ellos, y las conexiones entre estos son a menudo más importantes
que los datos en ellos. De hecho, almacenar y recuperar un enlace entre un par
de nodos es fácil de hacer en una base de datos relacional clásica, pero las
consultas más complicadas se hacen imposibles. ¿Bob está a dos o tres pasos de
Chris en la red de amistad? ¿Mary está saliendo con el ex de una de sus amigas?
Las bases de datos gráficas hacen que
consultas como estas sean más fáciles de ejecutar. No hay una búsqueda sin fin
de tablas porque la consulta sabe cómo buscar en el barrio especificado por los
enlaces. Herramientas como Neo4J, OrientDB, y DataStax son solo algunas
de las pocas opciones que pueden ser contadas con los dedos de las manos y de
los pies. Estas tienen sus propios lenguajes de consulta también.
Bases de datos en la nube
Uno de los
principales cambios radica en la forma en la que compramos el software de base
de datos. En el pasado, comprábamos nuestras propias máquinas y firmábamos
acuerdos de licencia para ejecutar el software en ellas. Ahora las empresas de
nube están ofreciendo servicios que almacenan blobs de datos
en algún lugar que no podemos ni ver ni tocar. Lo único que nos dicen es que
los datos van a estar ahí para cuando los queramos.
Las ventajas son evidentes. No hay
necesidad de mantener el servidor que la sostiene ni de preocuparse por la
concesión de licencias, la configuración o instalación de parches. Otro se
ocupa de todo ese quebradero de cabeza. La solución es más barata también
-especialmente si no tiene una tonelada de datos que almacenar. Los servicios
generalmente cobran por byte.
Sin embargo, los peligros, si es que
hay alguno, están en las sombras. ¿Alguien más tiene acceso a los datos? ¿El
servidor está protegido de las sobretensiones eléctricas, las tormentas o las
inundaciones? ¿Los datos tienen una copia de seguridad en una ubicación externa
confiable? Necesita confiar totalmente en el proveedor de nube.
Los principales proveedores de
servicios en la nube, tales como Google, Microsoft, y Amazon ofrecen una larga
lista de servicios de bases de datos. Actualmente, Oracle, MongoDB, y DataStax
también hacen que sus bases de datos estén disponibles en la nube.
Inteligencia Artificial (AI)
Algunos dicen que la inteligencia artificial
es solo un término para la última generación de investigación que está saliendo
de los laboratorios y yendo a producción. Si es así, hay una serie de nuevos
productos y soluciones adornados con palabras de moda, tales como “aprendizaje
automático”, “redes neuronales” o “aprendizaje profundo”. Pueden no parecer una
base de datos, pero las llena de datos y les hace preguntas. ¿Por qué no? La
buena noticia de las soluciones de inteligencia artificial es que no tiene que
saber lo que está buscando. Puede simplemente agitar su mano y pedir algo
nebuloso como la “más interesante” o “más cercana”. No hay necesidad de la
clave correcta, el número de referencia infernal que los del servicio al
cliente siempre le piden que escriba.
La mala noticia es que no sabrá si
obtuvo la respuesta correcta, debido a que no especificó con precisión la
pregunta. ¿Esa publicación en el blog es realmente la más interesante? El más
grande secreto del éxito de Google es que no hay una respuesta correcta
absoluta. Si está en el estadio, nadie se puede quejar.
La lista de las herramientas de
aprendizaje automático es demasiado larga. Siempre puede preguntarle a su motor
de búsqueda favorito por la AI “más interesante”, o consultar nuestros
artículos sobre el tema.
Blockchain
La palabra blockchain
puede estar enredada con unas complicadas economía y política de Bitcoin, pero
debajo de toda esa charla sobre el dinero, hay un almacén de datos distribuidos
sumamente estable y práctico. Todos tienen la oportunidad de actualizar los datos
y todos llegan a compartir la respuesta. La gran emoción es el hecho de que
todos compartan las mismas respuestas. Es perfecto para los negocios que
son frenemies.
Algunos desarrolladores llevan esto aún
más lejos y hablan sobre los “contratos inteligentes”, que es otra manera de
decir que los bits en la base de datos son lo suficientemente confiables como
para que la gente base las cuestiones legales, tales como la propiedad, sobre
ellos. Eso no lo puede hacer con una base de datos regular, que puede ser
modificada por cualquiera con privilegios administrativos.
Sin embargo, hay puntos débiles. Cada
usuario debe mantener una clave de cifrado, porque todas las transacciones
deben ser firmadas de manera digital. Si la pierde o se la olvida, los datos en
esas filas serán congelados para siempre; y si le roban la clave, no se sabe.
El blockchain no es perfecto, pero es mucho más confiable que el modelo
estándar.
No hay comentarios.:
Publicar un comentario