SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Proyecto Voldemort
Plan de trabajo
Parte I – Acerca de Voldemort

  Qué es Voldemort? ¿Quienes lo usan?
 ¿

Parte II - Visión general de la arquitectura Voldemort.

Parte III - Entrando en detalles

 nstalación, configuración y API con ejemplos de código.
 I

  ecomendaciones a la hora de iniciar un proyecto con
 R
Voldemort.

  onclusiones
 C
Parte I – Acerca de Voldemort
  oldemort es un sistema distribuido de bases de datos
 V
clave-valor.

  plica el concepto clásico de cluster. Sus nodos son
 A
independientes (no maestro/esclavo). No hay un punto
central de coordinación.

  stá siendo utilizado con éxito en LinkedIn (sus creadores)
 E
y muchas otras empresas que requieren el procesamiento
de grandes volúmenes de información con un alto numero
de operaciones concurrentes y tiempo de respuesta
exigentes.

  00% Java y open source.
 1
Características del cluster
  scalabilidad: habilidad de un servidor para procesar
  E
eficientemente múltiples peticiones concurrentes
simultáneamente.

  alanceo de carga: distribución de la carga de las
 B
peticiones en un grupo de servidores.

  lta disponibilidad: incremento del tiempo que el servicio
 A
está disponible para procesar peticiones.
Un poco de historia I

LinkedIn es un servicio web que conforma una red social
orientada a negocios.

Empleado principalmente para contactos profesionales,
cada usuario mantiene una lista de “conexiones” para:

  ncontrar trabajo, personas, oportunidades.
 E

  onocer novedades de las compañías.
 C

  tc.
 E
Un poco de historia II
 Infraestructura de LinkedIn: inicialmente una enorme base de
 datos monolítica y un cluster de servidores para el front-end.

Al crecer la empresa, la BD se dividió en
servicios remotos para proveer perfiles,
ejecutar búsquedas, interactuar con
grupos, contactar compañías, etc. Estas
BD tenían réplicas de sólo-lectura, pero
las escrituras no eran escalables.
Un poco de historia III

Muchas funcionalidades web que la gente exige hoy en día
requieren conjuntos masivos de datos, altas cargas de
escritura, o ambos. Los tiempos de respuesta que se
obtenían no eran satisfactorios.
Un poco de historia IV

¿Cómo mejorar el tiempo de respuesta?

Se revisaron los productos que otras empresas de Internet
habían desarrollado. Interesante el BigTable de Google,
pero no tiene sentido construir algo similar sin un GFS
(Global File System) de baja latencia.

En su lugar, se tomaron conceptos del Amazon's Dynamo
paper, que parecía cumplir las necesidades y era factible de
implementar.
Un poco de historia V


Resultados:

Gestionar aplicaciones con cientos de millones de lecturas/
escrituras por día.

Bajaron de 400ms a 10ms y simultáneamente creció la
cantidad de registros almacenados.
Código abierto como estrategia


  inkedIn provee un servicio web, no es una casa de
 L
software.

  ecidieron que necesitaban una BD clave-valor, ya que no
 D
encontraron ninguna que los satisfaciera, la construyeron.

  ero necesitaban ayuda con el soporte, así que lo
 P
convirtieron en código abierto. Hoy más de la mitad de
quienes modifican el código no son miembros de LinkedIn.
En producción I
LinkedIn

  NA Team (Search, Network, and Analytics)
 S

  lusters con 12 nodos (y creciendo)
 C

  cores y muy bajo consumo de C.P.U.
 8

  sos: personas que conoces, quién ha visto mi perfil,
 U
procesamiento de noticias, sistema de correo,
comunicaciones, y más.
En producción II
KaChing

  ervicio de contactos para hacer inversiones. Empezó
 S
como una aplicación de Facebook.

  sa Voldemort desde Febrero de 2010.
 U

  esafíos: alto tráfico, grandes conjuntos de datos.
 D

  luster de 6 nodos.
 C

  sos: datos del mercado de acciones, historia de usuarios,
 U
análisis.
En producción III


eHarmony

  usca de pareja en Internet.
 B

  sa Voldemort desde Abril de 2009.
 U

  res clusters de producción: de tres, siete y diez nodos.
 T
En producción IV
Gilt Groupe

  itio de ventas premium.
 S

  sa Voldemort desde Agosto de 2009.
 U

  res clusters de cuatro nodos cada uno.
 T

  sos: “Shopping Cart”, almacenamientos separados para
 U
el procesamiento de ordenes, eventos de ventas con picos
diarios.
Innova4j y Voldemort I

Características del proyecto
Uno de nuestros principales clientes dedicado a operaciones de ventas onlines,
nos planteo la necesidad de desarrollar una nueva plataforma online de bajo
coste que le permitiera soportar un promedios de 20 millones de peticiones
diarias con la capacidad de gestionar más de 800 millones de registros activos que
deberían ser consultados durante las peticiones de disponibilidad y donde los
tiempos de respuesta no fueran superiores a 3 segundos.

Puntos claves del proyecto y "Drivers" de la arquitectura
  menor tiempo de respuesta, mayor posibilidad de venta.
 A
  menor coste de infraestructura, precios mas competitivos.
 A
  estión de un número elevado de peticiones concurrentes.
 G
  anejo de grandes volúmenes de información.
 M
Innova4j y Voldemort II
       Un enfoque pragmático
Conjuntamente con nuestro cliente se decidió dividir el proyecto en 2 grandes
fases que nos permitieran mejorar el "Time to market" de la plataforma.

 La primera fase del proyecto nos permitió garantizar la lógica de negocio y
estructurar una arquitectura flexible y fácil de escalar; pero sin incluir una
solución NoSQL.

Ventaja : Nos dedicamos a consolidar la oportunidad de negocio de nuestro
cliente, liberando rápidamente un producto que le permitiera madurar su
estrategia de negocio.

  n la Segunda fase del proyecto nos enfocamos en cumplir en un 100% con los
 E
puntos claves del proyecto.

Ventaja : La lógica de negocio ya estaba implementada con un enfoque TDD, lo
que nos permitió asegurar que el incluir una solución NoSQL fuese algo controlado
y fiable que nos permitirá dar solución a los requerimientos de escalabilidad,
tiempo de respuesta y manejo de grandes volúmenes de información sin impactar
en la lógica de negocio.
Parte II
Visión general de la arquitectura
          de Voldemort
Decisiones de arquitectura
  e almacenan datos “solo” en formato clave-valor.
 S

  o se soportan consultas complejas o joins.
 N

  as únicas operaciones con los datos son put, get, getAll y
 L
delete.

  onsistent hashing para asignar datos a los nodos.
 C

  olerancia a fallos en los nodos se logra por medio de
 T
replicación.

  a consistencia distribuida se logra con versiones y la
 L
técnica read-repair.
Arquitectura lógica

          Cada capa aporta en las operaciones
          solicitadas.

          Cada capa ejecuta una función como
          comunicación tcp/ip, serialización,
          etc. La capa de enrutamiento envía
          una operación (digamos un put) a N
          nodos en paralelo.

          Tener estas capas permite flexibilidad
          en tiempo de ejecución, por ejemplo
          añadir compresión de bytes en
          cualquier punto por debajo de la capa
          de serialización.
Formato de los datos I



El equivalente de una tabla relacional se denomina store.
Cada clave queda asociada a un store. El dato puede ser tan
complejo como se necesite (listas, grafos, etc.).
Formato de los datos II



La simplicidad de las consultas hace que resulte muy
sencillo crear un simulador de la BD para pruebas unitarias
con una estructura que es prácticamente una tabla hash.
Particionamiento de los datos I

  onsiste en tener copias/replicas de un subconjunto de los
 C
datos en diversos nodos.

  ecesario para que ningún nodo tenga todos los datos.
 N

  ún si todos caben en un nodo, el acceso a disco se
 A
convertiría en el factor preponderante.

  l dividir en nodos, los datos más buscados podrían caber
 A
en cada caché.
Particionamiento de los datos II


Toda la complejidad del particionamiento es transparente
para el desarrollador, gracias a las diferentes capas
implementadas en su arquitectura
Consistent hashing

      Cuando un nodo se adiciona solo
      es necesario mover un subconjunto
      de los datos.

      Se usa para calcular la ubicación de
      una clave en el cluster.

      Cuando un nodo falla se
      redistribuye la carga.
Consistencia de los datos I

Difícil de lograr al tener que escribir en múltiples nodos (y
tal vez múltiples data-centers).

Usualmente se usan transacciones distribuidas pero son
lentas y frágiles.

Una alternativa es tolerar la posibilidad de inconsistencias
temporales, y resolverlas cuando se hagan lecturas de datos
(read-repair).
Consistencia de los datos II



Con Read-repair cuando se hace una lectura se detectan y
resuelven los conflictos. Esto implica poca coordinación y es
completamente tolerante a fallos, pero puede requerir más
lógica en la aplicación desarrollada.
Consistencia de los datos III
CAP: Consistency, Availability, Partition Tolerance (red).

  olo se garantizan 2 de 3 en todo momento.
 S

  oldemort escoge consistencia eventual (AP) por que:
 V

 Permite multi-datacenters.
 



 Buen rendimiento tanto para lecturas como escrituras.
 



 Por configuración se puede mejorar la C.
 
Versionamiento I

Un sistema de versionado simple es igual a un bloqueo
optimista: se almacena un contador o “clock” con cada
dato y solo se puede actualizar si se tiene el contador
correcto.

Ese enfoque no funciona en un sistema distribuido ya que
los nodos aparecen y desaparecen y la replicación puede
tomar tiempo.
Versionamiento II



Voldemort usa versionamiento por vector-clock, el cual
mantiene un contador por cada nodo para calcular cuando
dos versiones están en conflicto.
Serialización


En el nivel más bajo los datos (claves y valores) son arreglos
de bytes.

Aunque Voldemort viene con serializadores para textos,
objetos Java y flujos de bytes en bruto, implementando la
interfaz Serializer se puede escribir su propio serializador.
Parte III
Entrando en detalles
Instalación I

  onsiste en descomprimir un zip.
 C

 ncluye scripts para Linux fácilmente migrables a Windows.
 I

  o hemos instalado en Linux, Windows y Mac.
 L

  iene con ejemplos de configuración.
 V

  n la distribución por defecto los clusters se configuran en
 E
sub-carpetas.
Instalación II
La estructura de archivos resultante es la siguiente:
Instalación III
         Ejemplo de interacción básica por línea de comandos:

$voldemort-server.bat ..configutil_nodo1

$voldemort-shell.bat testStore tcp://localhost:6666

>put “CLI-001” “[{“fecha”=”25-01-2020”},{“fecha”=”28-01-2020”}]”

>get “CLI-001”

version(0:1):“[{“fecha”=”25-01-2020”},{“fecha”=”28-01-2020”}]”

> delete "CLI-001"

> get "CLI-001"

null

> exit
Configuración I



La operación de un servidor Voldemort se configura con 3
archivos: server.properties, cluster.xml y stores.xml.

Los dos últimos deben tener el mismo contenido en todos
los nodos del cluster.
Configuración II

server.properties contiene los parámetros de afinamiento
de cada nodo.

Incluye su identificador, tamaño del pool de hilos, así como
el mecanismo de persistencia local (por ejemplo BDB o en
memoria).

Este archivo es diferente en cada nodo.
Configuración III

node.id=0

max.threads=200 #Máximo número de hilos en el servidor

socket.enable=true #comunicación por sockets

http.enable=true #comunicación por HTTP

jmx.enable=true #monitorización

routing.timeout.ms=5000 #En espera de respuesta de los nodos.

enable.bdb.engine=true #Activar Berkeley

bdb.cache.size=100MB #Caché de Berkeley
Configuración IV



cluster.xml contiene la información de todos los nodos
(servidores) del cluster, como sus IPs, puertos de conexión,
etc. El id del nodo mapea al de server.properties.

Este archivo es igual en todos los nodos.
Configuración V
<cluster>

      <name>Integrations cluster</name>

      <server>

             <id>0</id>

             <host>localhost</host>

             <socket-port>7711</socket-port>

             <partitions>0, 1</partitions>

      </server>

      <server> ...

</cluster>
Configuración VI

stores.xml contiene información de los almacenamientos
(stores). Un store es similar a una tabla.

Incluye:

  a cantidad de nodos accedidos en lecturas y escrituras.
 L

  a forma de serializar las claves y valores.
 L

Este archivo es igual en todos los nodos.
Configuración (vii)
<store>

  <name>protobufAvail</name>

  <replication-factor>2</replication-factor>

  <required-reads>1</required-reads>

  <required-writes>2</required-writes>

  <key-serializer> <type>string</type> </key-serializer>

  <value-serializer>

      <type>protobuf</type>

      <schema-info>java=com.innova4j.Availability</schema-info>

  </value-serializer>

</store>

<store>...
Propuesta capa intermedia de
       acceso a datos
APIs del servicio



Voldemort ofrece un API administrativo y

            un API cliente.
API administrativo

Permite realizar labores administrativas que casi nunca son
necesarias a nivel de aplicación, por ejemplo:

  xtraer registros para backups.
 E

  igrar particiones.
 M

  btener datos de configuración del cluster.
 O

La clase principal es AdminClient.
API cliente

Permite la interacción típica de manipulación de datos.

  lientConfig: agrupa parámetros de configuración para la
 C
conexión del cliente (ip, puerto, timeout, etc.).

  ocketStoreClientFactory: encapsula el pool de
 S
conexiones, hilos, y permite crear instancias de StoreClient.

  toreClient: para manipular cada store de Voldemort (get,
 S
put, delete, etc.)

[IDE]
Opciones de serialización I

Voldemort permite indicar el tipo de serialización de los
datos almacenados. Los opciones son:

    tring
   s

    son
   j

    ava-serialization
   j

    rotobuff
   p

    hrift
   t

   dentity (bytes en bruto)
   i
Opciones de serialización II




Se realizó un laboratorio para comparar las prestaciones del
procesamiento con Json, Jackson y Protobuff (de Google y
de ActiveMq).
Opciones de serialización III
Tiempo de procesamiento de datos en memoria
Opciones de serialización IV
Tiempo de procesamiento de datos con E/S Voldemort.

Se elimina ActiveMq
Opciones de serialización V




Uso del pre-compilador de Protobuff y el patrón Builder.

[IDE]
Recomendaciones para iniciar un
      proyecto con bases de datos NoSQL
 Determine si los requerimientos de escalabilidad, volumen de
 

datos y concurrencia de la aplicación que va a desarrollar
justifican el uso de una tecnología NoSQL.

 Identifique que tipo/familia de base de datos NoSQL encaja mejor
 

con sus necesidades.

 No todos los datos tienen que estar almacenados en una base de
 

datos NoSQL. Use NoSQL donde realmente aporta valor.

 Cuando diseñe su aplicación piense en la estructura de datos y la
 

forma más optima de acceder a ella, en NoSQL es recomendable
pensar en ello desde el inicio.
Conclusiones
  as bases de datos NoSQL son una realidad que permiten
 L
solventar problemas para los que las bases de datos relaciones no
fueron diseñadas (aun).

  l diseño de una buena arquitectura debe permitir que las bases
 E
de datos relacionales y las bases de datos NoSQL coexistan.

  a tecnología NoSQL esta en proceso de madurez y evolución, lo
 L
que hace necesario un seguimiento continuo de los nuevos
productos y de las nuevas versiones de los ya existentes.

  a mejor forma de evaluar y estar seguros que la tecnología
 L
NoSQL puede encajar en sus proyectos es realizando sus propios
laboratorios. (para creer hay que tocar)
Gracias por la atención prestada.
 Innova4j
     “Dando soluciones hoy y alternativas para el futuro”

Contenu connexe

Tendances

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
UNIDAD IV - Mapa conceptual metodos de busqueda
UNIDAD IV - Mapa conceptual metodos de busquedaUNIDAD IV - Mapa conceptual metodos de busqueda
UNIDAD IV - Mapa conceptual metodos de busquedaMaiky Kobatakane
 
Bases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentosBases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentosAnthony Sotolongo
 
Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)José Toro
 
sistema gestor BD PostgreSql
sistema gestor BD PostgreSqlsistema gestor BD PostgreSql
sistema gestor BD PostgreSqlJr. Serrano
 
Data stage interview questions and answers|DataStage FAQS
Data stage interview questions and answers|DataStage FAQSData stage interview questions and answers|DataStage FAQS
Data stage interview questions and answers|DataStage FAQSBigClasses.com
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayDataWorks Summit
 
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - Cloudera
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - ClouderaHadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - Cloudera
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - ClouderaCloudera, Inc.
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)michell_quitian
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificadorCristian Izquierdo
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+neltherdaza
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaScyllaDB
 
Megastore: Providing scalable and highly available storage
Megastore: Providing scalable and highly available storageMegastore: Providing scalable and highly available storage
Megastore: Providing scalable and highly available storageNiels Claeys
 

Tendances (20)

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
UNIDAD IV - Mapa conceptual metodos de busqueda
UNIDAD IV - Mapa conceptual metodos de busquedaUNIDAD IV - Mapa conceptual metodos de busqueda
UNIDAD IV - Mapa conceptual metodos de busqueda
 
Bases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentosBases de datos NoSQL orientadas a documentos
Bases de datos NoSQL orientadas a documentos
 
Lan manager
Lan managerLan manager
Lan manager
 
Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)
 
sistema gestor BD PostgreSql
sistema gestor BD PostgreSqlsistema gestor BD PostgreSql
sistema gestor BD PostgreSql
 
Manual de fragmentación horizontal
Manual de fragmentación horizontalManual de fragmentación horizontal
Manual de fragmentación horizontal
 
Data stage interview questions and answers|DataStage FAQS
Data stage interview questions and answers|DataStage FAQSData stage interview questions and answers|DataStage FAQS
Data stage interview questions and answers|DataStage FAQS
 
NiFi 시작하기
NiFi 시작하기NiFi 시작하기
NiFi 시작하기
 
3.1.6 espacio para objetos
3.1.6 espacio  para objetos3.1.6 espacio  para objetos
3.1.6 espacio para objetos
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
 
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - Cloudera
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - ClouderaHadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - Cloudera
Hadoop World 2011: Hadoop Troubleshooting 101 - Kate Ting - Cloudera
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)
 
DB1 Unidad 10: New SQL
DB1 Unidad 10: New SQLDB1 Unidad 10: New SQL
DB1 Unidad 10: New SQL
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificador
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and Kafka
 
Megastore: Providing scalable and highly available storage
Megastore: Providing scalable and highly available storageMegastore: Providing scalable and highly available storage
Megastore: Providing scalable and highly available storage
 

En vedette

Voldemort : Prototype to Production
Voldemort : Prototype to ProductionVoldemort : Prototype to Production
Voldemort : Prototype to ProductionVinoth Chandar
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Bhupesh Bansal
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State DrivesVinoth Chandar
 
Composing and Executing Parallel Data Flow Graphs wth Shell Pipes
Composing and Executing Parallel Data Flow Graphs wth Shell PipesComposing and Executing Parallel Data Flow Graphs wth Shell Pipes
Composing and Executing Parallel Data Flow Graphs wth Shell PipesVinoth Chandar
 
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...munibertsitatea
 
Tecnologia de la informacion y la comunicacion zully
Tecnologia de la informacion y la comunicacion zullyTecnologia de la informacion y la comunicacion zully
Tecnologia de la informacion y la comunicacion zullyzullynie
 
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]t8ertot4432
 
Borrador pleno (15) 09 septiembre-2014 1ª parte
Borrador pleno (15) 09 septiembre-2014 1ª parteBorrador pleno (15) 09 septiembre-2014 1ª parte
Borrador pleno (15) 09 septiembre-2014 1ª parteUPyD Parla
 

En vedette (20)

Voldemort Nosql
Voldemort NosqlVoldemort Nosql
Voldemort Nosql
 
Voldemort
VoldemortVoldemort
Voldemort
 
Voldemort : Prototype to Production
Voldemort : Prototype to ProductionVoldemort : Prototype to Production
Voldemort : Prototype to Production
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
 
Bluetube
BluetubeBluetube
Bluetube
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State Drives
 
Project Voldemort
Project VoldemortProject Voldemort
Project Voldemort
 
Composing and Executing Parallel Data Flow Graphs wth Shell Pipes
Composing and Executing Parallel Data Flow Graphs wth Shell PipesComposing and Executing Parallel Data Flow Graphs wth Shell Pipes
Composing and Executing Parallel Data Flow Graphs wth Shell Pipes
 
Scribd original
Scribd originalScribd original
Scribd original
 
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...
Gestión del Máster EKOMU (Enseñanza en Contextos Multiculturales y Pluriling...
 
Tecnologia de la informacion y la comunicacion zully
Tecnologia de la informacion y la comunicacion zullyTecnologia de la informacion y la comunicacion zully
Tecnologia de la informacion y la comunicacion zully
 
Dichosos los tolerantes
Dichosos los tolerantesDichosos los tolerantes
Dichosos los tolerantes
 
Canes I
Canes ICanes I
Canes I
 
Diseño medios didacticos
Diseño medios didacticosDiseño medios didacticos
Diseño medios didacticos
 
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]
Celebramos%2520 las%2520vacaciones%2520en%2520el%2520invierno%5b1%5d[1]
 
Metodo de estudio
Metodo de estudioMetodo de estudio
Metodo de estudio
 
Borrador pleno (15) 09 septiembre-2014 1ª parte
Borrador pleno (15) 09 septiembre-2014 1ª parteBorrador pleno (15) 09 septiembre-2014 1ª parte
Borrador pleno (15) 09 septiembre-2014 1ª parte
 
Walter40 2parte
Walter40 2parteWalter40 2parte
Walter40 2parte
 
Historia de mensajeros (blogp)
Historia de mensajeros (blogp)Historia de mensajeros (blogp)
Historia de mensajeros (blogp)
 
Tipos de educación
Tipos de educaciónTipos de educación
Tipos de educación
 

Similaire à Introducción a Voldemort - Innova4j

Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"Javier Peña
 
MODELO DE REFERENCIA OSI‏
MODELO DE REFERENCIA OSI‏MODELO DE REFERENCIA OSI‏
MODELO DE REFERENCIA OSI‏DaniiCerro
 
Desmitificando el Big Data
Desmitificando el Big DataDesmitificando el Big Data
Desmitificando el Big DataStratebi
 
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaMiguel Angel Macias
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis CloudAppi
 
Guía de investigacion n4. informatica
Guía de investigacion n4. informaticaGuía de investigacion n4. informatica
Guía de investigacion n4. informaticaPaloma2013INFO
 
Integración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoIntegración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoDatalytics
 
Cuestionario.
Cuestionario.Cuestionario.
Cuestionario.VctorArre
 
Qué es Snowflake y cómo funciona.docx
Qué es Snowflake y cómo funciona.docxQué es Snowflake y cómo funciona.docx
Qué es Snowflake y cómo funciona.docxWALKERMENDEZPAYEHUAN
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datosBBVA API Market
 
Almacenamiento en la Nube y Cloud Computing
Almacenamiento en la Nube y Cloud ComputingAlmacenamiento en la Nube y Cloud Computing
Almacenamiento en la Nube y Cloud ComputingAlfredo Vela Zancada
 
2015 almacenamiento-en-la-nube-150217132128-conversion-gate02
2015 almacenamiento-en-la-nube-150217132128-conversion-gate022015 almacenamiento-en-la-nube-150217132128-conversion-gate02
2015 almacenamiento-en-la-nube-150217132128-conversion-gate02Cristinadelafuenterepiso
 
Cisco packet tracer
Cisco packet tracerCisco packet tracer
Cisco packet tracerAngel RoDi
 

Similaire à Introducción a Voldemort - Innova4j (20)

Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"Laboratorio 3 formato ieee "Tecnologias de Big Data"
Laboratorio 3 formato ieee "Tecnologias de Big Data"
 
Bases de Datos II (II Bimestre)
Bases de Datos II (II Bimestre)Bases de Datos II (II Bimestre)
Bases de Datos II (II Bimestre)
 
MODELO DE REFERENCIA OSI‏
MODELO DE REFERENCIA OSI‏MODELO DE REFERENCIA OSI‏
MODELO DE REFERENCIA OSI‏
 
Proyecto de modelo osi
Proyecto de modelo osiProyecto de modelo osi
Proyecto de modelo osi
 
Desmitificando el Big Data
Desmitificando el Big DataDesmitificando el Big Data
Desmitificando el Big Data
 
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura LambdaCluster Multinodo en Apache Hadoop - Arquitectura Lambda
Cluster Multinodo en Apache Hadoop - Arquitectura Lambda
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis
 
N-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NETN-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NET
 
Guía de investigacion n4. informatica
Guía de investigacion n4. informaticaGuía de investigacion n4. informatica
Guía de investigacion n4. informatica
 
Integración de Datos sin límites con Pentaho
Integración de Datos sin límites con PentahoIntegración de Datos sin límites con Pentaho
Integración de Datos sin límites con Pentaho
 
Cuestionario.
Cuestionario.Cuestionario.
Cuestionario.
 
Presente Y Futuro De Los Si
Presente Y Futuro De Los SiPresente Y Futuro De Los Si
Presente Y Futuro De Los Si
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Qué es Snowflake y cómo funciona.docx
Qué es Snowflake y cómo funciona.docxQué es Snowflake y cómo funciona.docx
Qué es Snowflake y cómo funciona.docx
 
Cassandra intro
Cassandra introCassandra intro
Cassandra intro
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
 
Almacenamiento en la Nube y Cloud Computing
Almacenamiento en la Nube y Cloud ComputingAlmacenamiento en la Nube y Cloud Computing
Almacenamiento en la Nube y Cloud Computing
 
2015 almacenamiento-en-la-nube-150217132128-conversion-gate02
2015 almacenamiento-en-la-nube-150217132128-conversion-gate022015 almacenamiento-en-la-nube-150217132128-conversion-gate02
2015 almacenamiento-en-la-nube-150217132128-conversion-gate02
 
Cisco packet tracer
Cisco packet tracerCisco packet tracer
Cisco packet tracer
 

Dernier

El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 

Dernier (20)

El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 

Introducción a Voldemort - Innova4j

  • 2. Plan de trabajo Parte I – Acerca de Voldemort   Qué es Voldemort? ¿Quienes lo usan? ¿ Parte II - Visión general de la arquitectura Voldemort. Parte III - Entrando en detalles  nstalación, configuración y API con ejemplos de código. I   ecomendaciones a la hora de iniciar un proyecto con R Voldemort.   onclusiones C
  • 3. Parte I – Acerca de Voldemort   oldemort es un sistema distribuido de bases de datos V clave-valor.   plica el concepto clásico de cluster. Sus nodos son A independientes (no maestro/esclavo). No hay un punto central de coordinación.   stá siendo utilizado con éxito en LinkedIn (sus creadores) E y muchas otras empresas que requieren el procesamiento de grandes volúmenes de información con un alto numero de operaciones concurrentes y tiempo de respuesta exigentes.   00% Java y open source. 1
  • 4. Características del cluster   scalabilidad: habilidad de un servidor para procesar E eficientemente múltiples peticiones concurrentes simultáneamente.   alanceo de carga: distribución de la carga de las B peticiones en un grupo de servidores.   lta disponibilidad: incremento del tiempo que el servicio A está disponible para procesar peticiones.
  • 5. Un poco de historia I LinkedIn es un servicio web que conforma una red social orientada a negocios. Empleado principalmente para contactos profesionales, cada usuario mantiene una lista de “conexiones” para:   ncontrar trabajo, personas, oportunidades. E   onocer novedades de las compañías. C   tc. E
  • 6. Un poco de historia II Infraestructura de LinkedIn: inicialmente una enorme base de datos monolítica y un cluster de servidores para el front-end. Al crecer la empresa, la BD se dividió en servicios remotos para proveer perfiles, ejecutar búsquedas, interactuar con grupos, contactar compañías, etc. Estas BD tenían réplicas de sólo-lectura, pero las escrituras no eran escalables.
  • 7. Un poco de historia III Muchas funcionalidades web que la gente exige hoy en día requieren conjuntos masivos de datos, altas cargas de escritura, o ambos. Los tiempos de respuesta que se obtenían no eran satisfactorios.
  • 8. Un poco de historia IV ¿Cómo mejorar el tiempo de respuesta? Se revisaron los productos que otras empresas de Internet habían desarrollado. Interesante el BigTable de Google, pero no tiene sentido construir algo similar sin un GFS (Global File System) de baja latencia. En su lugar, se tomaron conceptos del Amazon's Dynamo paper, que parecía cumplir las necesidades y era factible de implementar.
  • 9. Un poco de historia V Resultados: Gestionar aplicaciones con cientos de millones de lecturas/ escrituras por día. Bajaron de 400ms a 10ms y simultáneamente creció la cantidad de registros almacenados.
  • 10. Código abierto como estrategia   inkedIn provee un servicio web, no es una casa de L software.   ecidieron que necesitaban una BD clave-valor, ya que no D encontraron ninguna que los satisfaciera, la construyeron.   ero necesitaban ayuda con el soporte, así que lo P convirtieron en código abierto. Hoy más de la mitad de quienes modifican el código no son miembros de LinkedIn.
  • 11. En producción I LinkedIn   NA Team (Search, Network, and Analytics) S   lusters con 12 nodos (y creciendo) C   cores y muy bajo consumo de C.P.U. 8   sos: personas que conoces, quién ha visto mi perfil, U procesamiento de noticias, sistema de correo, comunicaciones, y más.
  • 12. En producción II KaChing   ervicio de contactos para hacer inversiones. Empezó S como una aplicación de Facebook.   sa Voldemort desde Febrero de 2010. U   esafíos: alto tráfico, grandes conjuntos de datos. D   luster de 6 nodos. C   sos: datos del mercado de acciones, historia de usuarios, U análisis.
  • 13. En producción III eHarmony   usca de pareja en Internet. B   sa Voldemort desde Abril de 2009. U   res clusters de producción: de tres, siete y diez nodos. T
  • 14. En producción IV Gilt Groupe   itio de ventas premium. S   sa Voldemort desde Agosto de 2009. U   res clusters de cuatro nodos cada uno. T   sos: “Shopping Cart”, almacenamientos separados para U el procesamiento de ordenes, eventos de ventas con picos diarios.
  • 15. Innova4j y Voldemort I Características del proyecto Uno de nuestros principales clientes dedicado a operaciones de ventas onlines, nos planteo la necesidad de desarrollar una nueva plataforma online de bajo coste que le permitiera soportar un promedios de 20 millones de peticiones diarias con la capacidad de gestionar más de 800 millones de registros activos que deberían ser consultados durante las peticiones de disponibilidad y donde los tiempos de respuesta no fueran superiores a 3 segundos. Puntos claves del proyecto y "Drivers" de la arquitectura   menor tiempo de respuesta, mayor posibilidad de venta. A   menor coste de infraestructura, precios mas competitivos. A   estión de un número elevado de peticiones concurrentes. G   anejo de grandes volúmenes de información. M
  • 16. Innova4j y Voldemort II Un enfoque pragmático Conjuntamente con nuestro cliente se decidió dividir el proyecto en 2 grandes fases que nos permitieran mejorar el "Time to market" de la plataforma.  La primera fase del proyecto nos permitió garantizar la lógica de negocio y estructurar una arquitectura flexible y fácil de escalar; pero sin incluir una solución NoSQL. Ventaja : Nos dedicamos a consolidar la oportunidad de negocio de nuestro cliente, liberando rápidamente un producto que le permitiera madurar su estrategia de negocio.   n la Segunda fase del proyecto nos enfocamos en cumplir en un 100% con los E puntos claves del proyecto. Ventaja : La lógica de negocio ya estaba implementada con un enfoque TDD, lo que nos permitió asegurar que el incluir una solución NoSQL fuese algo controlado y fiable que nos permitirá dar solución a los requerimientos de escalabilidad, tiempo de respuesta y manejo de grandes volúmenes de información sin impactar en la lógica de negocio.
  • 17. Parte II Visión general de la arquitectura de Voldemort
  • 18. Decisiones de arquitectura   e almacenan datos “solo” en formato clave-valor. S   o se soportan consultas complejas o joins. N   as únicas operaciones con los datos son put, get, getAll y L delete.   onsistent hashing para asignar datos a los nodos. C   olerancia a fallos en los nodos se logra por medio de T replicación.   a consistencia distribuida se logra con versiones y la L técnica read-repair.
  • 19. Arquitectura lógica Cada capa aporta en las operaciones solicitadas. Cada capa ejecuta una función como comunicación tcp/ip, serialización, etc. La capa de enrutamiento envía una operación (digamos un put) a N nodos en paralelo. Tener estas capas permite flexibilidad en tiempo de ejecución, por ejemplo añadir compresión de bytes en cualquier punto por debajo de la capa de serialización.
  • 20. Formato de los datos I El equivalente de una tabla relacional se denomina store. Cada clave queda asociada a un store. El dato puede ser tan complejo como se necesite (listas, grafos, etc.).
  • 21. Formato de los datos II La simplicidad de las consultas hace que resulte muy sencillo crear un simulador de la BD para pruebas unitarias con una estructura que es prácticamente una tabla hash.
  • 22. Particionamiento de los datos I   onsiste en tener copias/replicas de un subconjunto de los C datos en diversos nodos.   ecesario para que ningún nodo tenga todos los datos. N   ún si todos caben en un nodo, el acceso a disco se A convertiría en el factor preponderante.   l dividir en nodos, los datos más buscados podrían caber A en cada caché.
  • 23. Particionamiento de los datos II Toda la complejidad del particionamiento es transparente para el desarrollador, gracias a las diferentes capas implementadas en su arquitectura
  • 24. Consistent hashing Cuando un nodo se adiciona solo es necesario mover un subconjunto de los datos. Se usa para calcular la ubicación de una clave en el cluster. Cuando un nodo falla se redistribuye la carga.
  • 25. Consistencia de los datos I Difícil de lograr al tener que escribir en múltiples nodos (y tal vez múltiples data-centers). Usualmente se usan transacciones distribuidas pero son lentas y frágiles. Una alternativa es tolerar la posibilidad de inconsistencias temporales, y resolverlas cuando se hagan lecturas de datos (read-repair).
  • 26. Consistencia de los datos II Con Read-repair cuando se hace una lectura se detectan y resuelven los conflictos. Esto implica poca coordinación y es completamente tolerante a fallos, pero puede requerir más lógica en la aplicación desarrollada.
  • 27. Consistencia de los datos III CAP: Consistency, Availability, Partition Tolerance (red).   olo se garantizan 2 de 3 en todo momento. S   oldemort escoge consistencia eventual (AP) por que: V Permite multi-datacenters.   Buen rendimiento tanto para lecturas como escrituras.   Por configuración se puede mejorar la C.  
  • 28. Versionamiento I Un sistema de versionado simple es igual a un bloqueo optimista: se almacena un contador o “clock” con cada dato y solo se puede actualizar si se tiene el contador correcto. Ese enfoque no funciona en un sistema distribuido ya que los nodos aparecen y desaparecen y la replicación puede tomar tiempo.
  • 29. Versionamiento II Voldemort usa versionamiento por vector-clock, el cual mantiene un contador por cada nodo para calcular cuando dos versiones están en conflicto.
  • 30. Serialización En el nivel más bajo los datos (claves y valores) son arreglos de bytes. Aunque Voldemort viene con serializadores para textos, objetos Java y flujos de bytes en bruto, implementando la interfaz Serializer se puede escribir su propio serializador.
  • 32. Instalación I   onsiste en descomprimir un zip. C  ncluye scripts para Linux fácilmente migrables a Windows. I   o hemos instalado en Linux, Windows y Mac. L   iene con ejemplos de configuración. V   n la distribución por defecto los clusters se configuran en E sub-carpetas.
  • 33. Instalación II La estructura de archivos resultante es la siguiente:
  • 34. Instalación III Ejemplo de interacción básica por línea de comandos: $voldemort-server.bat ..configutil_nodo1 $voldemort-shell.bat testStore tcp://localhost:6666 >put “CLI-001” “[{“fecha”=”25-01-2020”},{“fecha”=”28-01-2020”}]” >get “CLI-001” version(0:1):“[{“fecha”=”25-01-2020”},{“fecha”=”28-01-2020”}]” > delete "CLI-001" > get "CLI-001" null > exit
  • 35. Configuración I La operación de un servidor Voldemort se configura con 3 archivos: server.properties, cluster.xml y stores.xml. Los dos últimos deben tener el mismo contenido en todos los nodos del cluster.
  • 36. Configuración II server.properties contiene los parámetros de afinamiento de cada nodo. Incluye su identificador, tamaño del pool de hilos, así como el mecanismo de persistencia local (por ejemplo BDB o en memoria). Este archivo es diferente en cada nodo.
  • 37. Configuración III node.id=0 max.threads=200 #Máximo número de hilos en el servidor socket.enable=true #comunicación por sockets http.enable=true #comunicación por HTTP jmx.enable=true #monitorización routing.timeout.ms=5000 #En espera de respuesta de los nodos. enable.bdb.engine=true #Activar Berkeley bdb.cache.size=100MB #Caché de Berkeley
  • 38. Configuración IV cluster.xml contiene la información de todos los nodos (servidores) del cluster, como sus IPs, puertos de conexión, etc. El id del nodo mapea al de server.properties. Este archivo es igual en todos los nodos.
  • 39. Configuración V <cluster> <name>Integrations cluster</name> <server> <id>0</id> <host>localhost</host> <socket-port>7711</socket-port> <partitions>0, 1</partitions> </server> <server> ... </cluster>
  • 40. Configuración VI stores.xml contiene información de los almacenamientos (stores). Un store es similar a una tabla. Incluye:   a cantidad de nodos accedidos en lecturas y escrituras. L   a forma de serializar las claves y valores. L Este archivo es igual en todos los nodos.
  • 41. Configuración (vii) <store> <name>protobufAvail</name> <replication-factor>2</replication-factor> <required-reads>1</required-reads> <required-writes>2</required-writes> <key-serializer> <type>string</type> </key-serializer> <value-serializer> <type>protobuf</type> <schema-info>java=com.innova4j.Availability</schema-info> </value-serializer> </store> <store>...
  • 42. Propuesta capa intermedia de acceso a datos
  • 43. APIs del servicio Voldemort ofrece un API administrativo y un API cliente.
  • 44. API administrativo Permite realizar labores administrativas que casi nunca son necesarias a nivel de aplicación, por ejemplo:   xtraer registros para backups. E   igrar particiones. M   btener datos de configuración del cluster. O La clase principal es AdminClient.
  • 45. API cliente Permite la interacción típica de manipulación de datos.   lientConfig: agrupa parámetros de configuración para la C conexión del cliente (ip, puerto, timeout, etc.).   ocketStoreClientFactory: encapsula el pool de S conexiones, hilos, y permite crear instancias de StoreClient.   toreClient: para manipular cada store de Voldemort (get, S put, delete, etc.) [IDE]
  • 46. Opciones de serialización I Voldemort permite indicar el tipo de serialización de los datos almacenados. Los opciones son:   tring s   son j   ava-serialization j   rotobuff p   hrift t  dentity (bytes en bruto) i
  • 47. Opciones de serialización II Se realizó un laboratorio para comparar las prestaciones del procesamiento con Json, Jackson y Protobuff (de Google y de ActiveMq).
  • 48. Opciones de serialización III Tiempo de procesamiento de datos en memoria
  • 49. Opciones de serialización IV Tiempo de procesamiento de datos con E/S Voldemort. Se elimina ActiveMq
  • 50. Opciones de serialización V Uso del pre-compilador de Protobuff y el patrón Builder. [IDE]
  • 51. Recomendaciones para iniciar un proyecto con bases de datos NoSQL Determine si los requerimientos de escalabilidad, volumen de   datos y concurrencia de la aplicación que va a desarrollar justifican el uso de una tecnología NoSQL. Identifique que tipo/familia de base de datos NoSQL encaja mejor   con sus necesidades. No todos los datos tienen que estar almacenados en una base de   datos NoSQL. Use NoSQL donde realmente aporta valor. Cuando diseñe su aplicación piense en la estructura de datos y la   forma más optima de acceder a ella, en NoSQL es recomendable pensar en ello desde el inicio.
  • 52. Conclusiones   as bases de datos NoSQL son una realidad que permiten L solventar problemas para los que las bases de datos relaciones no fueron diseñadas (aun).   l diseño de una buena arquitectura debe permitir que las bases E de datos relacionales y las bases de datos NoSQL coexistan.   a tecnología NoSQL esta en proceso de madurez y evolución, lo L que hace necesario un seguimiento continuo de los nuevos productos y de las nuevas versiones de los ya existentes.   a mejor forma de evaluar y estar seguros que la tecnología L NoSQL puede encajar en sus proyectos es realizando sus propios laboratorios. (para creer hay que tocar)
  • 53. Gracias por la atención prestada. Innova4j “Dando soluciones hoy y alternativas para el futuro”