Lección 6: In-Memory Data Grids Flashcards

1
Q

¿Qué es In-memory data grid (IMDG)?

A

las tecnologías dedicadas a
almacenar datos en memoria RAM distribuidos
en varios servidores.

  • JCache en Java.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Características de los IMDG

A
  • Estructura de almacenamiento clave/valor.
  • Escalabilidad casi “infinita”.
  • Auto gestión de nodos mediante “Quorum”.
  • Soporte para expiraciones de datos y eventos.
  • Estructuras de datos y ”locks” distribuidos.
  • Ejecución de código distribuido.
  • Mecanismos de “near cache”.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ventajas de los IMDG

A

• Alto rendimiento de lectura/escritura.
• Ejecución de código sobre los datos.
• Uso como caché de nivel 2 sobre sistemas de
almacenamiento lentos (Base de Datos).
• Los valores almacenados pueden ser objetos complejos.
• Soporte para replicación entre clusters.
• Mayor seguridad ante perdida de datos.
• Lectura optimizada incluso entre múltiples regiones físicas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Usos principales

A

• Sistemas que requieren tiempos de respuesta reducidos:
• Aceleración de BBDD (Caché nivel 2)
• Aceleración de fuentes de datos externas
• Sistemas con suscripción a eventos:
• Respuesta rápida y automática ante cambios
• Tratamiento de datos en el servidor:
• Evitar el movimiento de grandes cantidades de datos
utilizando ejecuciones en el “cluster”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quorum: ¿Qué es?

A

• “Numero de nodos requeridos en un sistema distribuido
para permanecer en funcionamiento”
• Si el número de nodos no es suficiente se rechazan
operaciones.
• Se suelen utilizar para elegir a un “líder” que hace de
“orquestador.”
• Los algoritmos de quorum funcionan mediante
“votaciones” que los nodos usan para ponerse de acuerdo.
• En general se necesitan los votos de la mayoría (mitad de
nodos + 1) para poder funcionar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quorum totalmente distribuido.

A
  • Los nodos votan entre ellos para tomar decisiones.
  • Todos los nodos hablan con todos.
  • Los sistemas de data grid suelen utilizar este esquema.
  • Requiere votos de la “mayoría” para evitar ”split brain”.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Mayoría de los votos en quorum.

A

Al menos, la mitad de los votos + 1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Split Brain.

A

• Se denomina “split brain” a la división de un cluster
de nodos en dos o mas partes debido a un fallo.
• Se produce cuando únicamente una parte de los
nodos se ve entre sí.
• Da lugar a la formación de varios “clusters” de nodos.
• El problema mas típico es un fallo de red, que corta
la comunicación entre algunos nodos del cluster

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Reconciliación tras split brain.

A

• Si una de las partes no tiene un dato y la otra si, no hay
problema, se añade el dato.
• Si ambas partes tienen el mismo dato ¿Qué hacer? Política de
“merge” personalizada:
• Mantener con la entrada más reciente de acuerdo al timestamp
de las máquinas (puede provocar errores, sobretodo si la escritura
depende del valor anterior).
• Lógica personalizada.
• Aplicar quorum y desactivar una de las islas del split brain para
evitar que los clientes la utilicen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Almacenamiento clave-valor

A

• Almacenamiento similar a un Mapa en los lenguajes de
programación tradicionales.
• Los elementos están identificados por una clave única
• Si un elemento con la misma clave se añade al mapa, se sobrescribe el
anterior.
• La clave se utiliza para decidir el nodo donde se almacenará
el dato
• Se utiliza un hash o “huella” de la misma para calcular el nodo.
• Debemos definir tanto el tipo de la clave como del valor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Caché distribuida

A

Existen copias del mismo dato en

múltiples nodos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Caché replicada

A

Todos los nodos tienen copia de todos los

datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cache distribuida: ¿Cómo funciona?

A

• Cada una de las claves se almacena en varios nodos.
• Cuando un nodo hace un get/put en la cache, calcula el hash de la clave
y envía/pide el dato directamente al nodo que tiene el dato.
• En el caso de los put, se envía de forma asícrona el dato también al los
nodos de backup.
• Para obtener mayor tolerancia a fallos, se puede (debe) indicar el
número de copias que se realizará de los datos.
• Recomendado para la mayoría de usos, excepto caches pequeñas con
pocas escrituras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cache distribuida: Factor replicación

A

• Indica el número de copias que existen de cada dato en otros
nodos.
• Se intenta mantener el número de copias de los datos tras una
caída.
• Un factor de replicación N permitiría una caída de N-1 nodos
simultánea sin pérdida de información.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cache distribuida: Particiones

A
• Los datos se distribuyen en
particiones.
• En cada nodo se guardan
varias particiones.
• Cuando un nodo se cae, a
nivel lógico los datos que se
pierden/hay que restaurar
son las particiones
• El número recomendado de particiones debe ser bastante más alto
que el de nodos
• También se recomienda que sea un número primo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Caché replicada: ¿Cómo funciona?

A

• Todos los nodos tienen una copia de todos los datos.
• La lectura se hace de forma local, la escritura requiere copiar
el dato a todos los nodos del cluster.
• Recomendado para caches pequeñas con pocas escrituras
(generalmente metadatos).
• Rendimiento optimizado para lectura ya que el dato siempre lo
tiene el nodo al que se accede.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Near cache

A

• Cache/Mapa que mantiene los datos de la cache replicados
dentro de la aplicación:
• Aconsejado para escenarios con mucha lectura y poca escritura o con
requisitos de consistencia bajos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Recuperación ante pérdida de nodos

A

• Cache Replicada:
• No es necesario recuperar los datos, los demás nodos siguen
sirviendo todo el conjunto de datos.
• Únicamente necesitaríamos recuperación si perdemos todo el
cluster.
• Cache distribuida:
• Si se pierden N nodos, donde N es el número de replicas de cada
dato, perdemos la información.
• Es necesario recuperar los datos de algún tipo de “backup”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Políticas de expiración

A

• Permiten borrar las entradas de cache basándose en

tiempo de vida, tiempo sin utilizar o tamaño del mapa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Escalado

A

• Cuando se quiere ofrecer mayor capacidad de
almacenamiento o de cómputo existen dos posibilidades:
• Escalado horizontal (aumentar el número de máquinas)
• Escalado vertical (aumentar la capacidad de cada máquina)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Escalado horizontal en clusters IMDG

A

• Ventajas:
• Aumenta la capacidad de almacenamiento linealmente
• Aumenta la capacidad de computo linealmente
• Escalabilidad “ilimitada” (nuestro cuello de botella son las comunicaciones
entre nodos)
• Se puede realizar de forma sencilla con mínima afección al servicio
• Desventajas:
• Un cluster con más nodos es más difícil de mantener
• Mayor gasto en hardware (racks, redes…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Escalado vertical en clusters IMDG

A

• Ventajas:
• Aumenta la capacidad de computo linealmente
• Aumenta la capacidad de almacenamiento linealmente
• Fácil de mantener
• Desventajas:
• Se debe realizar de forma incremental para minimizar el impacto
• Escalabilidad limitada por la tecnología y el hardware
• Almacenar mapas muy grandes causa problemas de Garbage Collection en
Java

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Escalado vertical – Garbage Collection

A

• En Java la JVM se para completamente durante un pequeño periodo
de tiempo para limpiar objetos “muertos” en la memoria.
• Cuantos más objetos, mayor duración de parada, mayor
interrupción de servicio.
• Limita la capacidad de escalar verticalmente.
• Posibles soluciones:
• Utilizar memoria off-heap – La memoria está fuera de la JVM
• Levantar más de una JVM en cada nodo – Usamos una máquina mas grande
para hacer un escalado horizontal en número de nodos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Listas/Colas

A

• Implementación de las interfaces List y
Blocking Queue
• Visibles desde múltiples máquinas
• Datos replicados al iterar sobre la lista
• Soportan listeners
• Podemos recibir eventos si se añade o
elimina un elemento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Topics

A

• Implementación de sistema de productor/consumidor.
• Las aplicaciones se subscriben a un topic y escuchan los
mensajes.
• Los productores enviarán mensajes al topic.
• Permite utilizar el grid como sistema de mensajería.

26
Q

Locks:

A

• Locks distribuidos que pueden utilizarse para sincronizar procesos.
• Un hilo de uno de los procesos lo obtiene y lo debe liberar, el
resto espera

27
Q

Semáforos

A

• Semáforo distribuido.
• Uno o varios hilos pueden entrar en la sección, el resto espera
hasta que se libere, puede liberarlo cualquiera.

28
Q

Contadores

A

• Contadores distribuidos y atómicos que se pueden utilizar para
contar o sumar diferentes elementos.
• Al ser atómicos se pueden utilizar simultáneamente desde varios
hilos de forma segura.
• Visibles desde todos los nodos.
• Por ejemplo, se pueden utilizar para contar el número de clientes
diferentes que se han conectado al cluster de manera sencilla.

29
Q

IdGenerator:

A

• Generador de ids único a nivel de cluster.
• Cada proceso pide una ID y se le reserva un número de valores, de
esta forma se pueden obtener Ids únicos garantizados sin
necesidad de realizar comunicación de red.
• Es muy útil si tenemos que generar Ids únicos entre múltiples
aplicaciones de forma rápida.
• Es posible generar Ids únicos sin contar con el cluster:
• Es lento, los Ids son muy grandes y depende del generador de números
aleatorios.

30
Q

Los sistemas de “In memory data grid” son capaces de crear grandenes volúmenes de almacenamiento de datos en memoria gracias a su capacidad de distribuir los datos entre múltiples nodos.

Seleccione una:
Verdadero
Falso

A

Verdadero

31
Q

El escalado horizontal consiste en añadir mas nodos al sistema para aumentar la potencia

Seleccione una:
Verdadero
Falso

A

Verdadero

32
Q

Cuando se realizan despliegues de IMDG en arquitecturas pequeñas se suelen utilizar las propias aplicaciones como nodos de almacenamiento para crear el cluster de IMDG y ahorrar costes.

Seleccione una:
Verdadero
Falso

A

Verdadero

33
Q

Los locks distribuidos se pueden utilizar para sincronizar procesos en distintas máquinas

Seleccione una:
Verdadero
Falso

A

Verdadero

34
Q

Los índices en los IMDG se aplican sobre la clave para realizar búsquedas rápidas sobre los datos almacenados.

Seleccione una:
Verdadero
Falso

A

Falso

35
Q

Los sistemas de IMDG permiten almacenar únicamente tipos simples en estructuras de tipo mapa clave/valor

Seleccione una:
Verdadero
Falso

A

Falso

36
Q

La clave del dato se utiliza en los sistemas de IMDG para decidir en que nodo se almacenará el dato, generalmente mediante la aplicación de una función hash sobre la clave

Seleccione una:
Verdadero
Falso

A

Verdadero

37
Q

El número de nodos en una caché distribuida debe ser bastante mas alto que el de particiones lógicas de los datos.

Seleccione una:
Verdadero
Falso

A

Falso

38
Q

Podemos almacenar los datos en “Off-Heap” en Java en sistemas de IMDG para evitar que el recolector de basura de problemas al realizar escalado vertical de los datos

Seleccione una:
Verdadero
Falso

A

Verdadero

39
Q

Las votaciones de los sistemas de quorum requieren los votos de la mitad de los nodos para ser aceptadas.
Seleccione una:
Verdadero
Falso

A

Falso

40
Q

Todos los sistemas de IMDG utilizan el mismo sistema de serialización de objetos para guardar los datos en memoria.

Seleccione una:
Verdadero
Falso

A

Falso

41
Q

Cuando se añade un nuevo nodo a una caché distribuido, los datos se redistribuyen de nuevo entre todas las cachés de acuerdo a las particiones lógicas de estos.

Seleccione una:
Verdadero
Falso

A

Verdadero

42
Q

La “near cache” consiste en mantener los últimos datos que se han usado de la caché distribuida en la aplicación para lograr un acceso mas rápido a los mismos.

Seleccione una:
Verdadero
Falso

A

Falso

43
Q

En IMDG con caché distribuida, cada nodo tiene todos los datos de la cache, lo que facilita la lectura / escritura por parte del cliente ya que no hay que hacer movimiento de datos entre los distintos nodos

Seleccione una:
Verdadero
Falso

A

Falso

44
Q

El escalado vertical en los sistemas de IMDG me permite escalabilidad ilimitada en el tamaño de almacenamiento

Seleccione una:
Verdadero
Falso

A

Falso

45
Q

Los sistemas de IMDG se suelen utilizar para…

Seleccione una o más de una:

a. Acelerar sistemas mas lentos, actuando como caché de nivel 2
b. Replicar todo el set de datos de base de datos para acceso rápido
c. Ejecución de datos en el servidor para evitar mover los datos

A

a. Acelerar sistemas mas lentos, actuando como caché de nivel 2
c. Ejecución de datos en el servidor para evitar mover los datos

46
Q

Supongamos que tenemos una caché distribuida con 5 nodos y factor de replicación 2.

Los 5 nodos se encuentran al máximo de su capacidad.

Si perdemos un nodo, ¿que sucedería? Indica todas las correctas.

Seleccione una o más de una:

a. Perderíamos datos ya que las nos nodos ya están a máxima capacidad.
b. Los datos perdidos se replicarán en el resto de nodos hasta tener dos copias
c. No podemos mantener 2 réplicas de cada partición al no haber espacio libre en los demás nodos
d. Si perdemos otro nodo en algún momento podemos perder datos
e. El cluster se detendría por falta de espacio

A

c. No podemos mantener 2 réplicas de cada partición al no haber espacio libre en los demás nodos
d. Si perdemos otro nodo en algún momento podemos perder datos

47
Q

De las siguientes, ¿cuales son características típicas de los sistemas de IMDG?

Seleccione una o más de una:

a. La estructura de almacenamiento suele ser de tipo árbol binario.
b. Soporte para estructuras de datos y “locks” distribuidos
c. Soporte para replicar la caché remota en local
d. Soporte para ejecución de código distribuido
e. Lento en lectura pero rápido en escritura

A

b. Soporte para estructuras de datos y “locks” distribuidos
c. Soporte para replicar la caché remota en local
d. Soporte para ejecución de código distribuido

48
Q

La mayor ventaja de quorum distribuido entre todos los nodos son que no existe un punto único de fallo
Seleccione una:
Verdadero
Falso

A

Verdadero

49
Q

Si tenemos un cluster de 7 nodos configurados con quorum. ¿Cuantos nodos podremos perder y seguir manteniendo el cluster funcionando?

A

3

50
Q

El algoritmo de Paxos es mas sencillo de implementar que el quorum con prioridad, ya que no requiere establecer un orden de prioridad entre los nodos.

Seleccione una:
Verdadero
Falso

A

Falso

51
Q

¿Para que podemos utilizar Quorum?

Seleccione una o más de una:

a. Para decidir que miembros forman parte de un cluster
b. Para descubrir rápidamente si se ha perdido algún nodo
c. Para escoger un líder de entre todos los miembros del cluster
d. Para evitar situaciones de “Split Brain”

A

a. Para decidir que miembros forman parte de un cluster
b. Para descubrir rápidamente si se ha perdido algún nodo
c. Para escoger un líder de entre todos los miembros del cluster
d. Para evitar situaciones de “Split Brain”

52
Q

El proceso de reconciliación tras un split brain en un sistema de IMDG consiste en recuperar una visión común de los datos del grid considerando que los datos pueden ser diferentes una vez se unan de nuevo los nodos tras el split brain.

Seleccione una:
Verdadero
Falso

A

Verdadero

53
Q

¿Que sucede en una caché distribuida si caen nodos del cluster?

Seleccione una o más de una:

a. Nunca se pierden datos gracias a la replicación
b. Los datos que contenía los nodos que se han perdido deben replicarse en los demás para mantener el nivel de replicación
c. Las necesidades totales de memoria para el almacenamiento se mantienen en la mayoría de los casos

A

b. Los datos que contenía los nodos que se han perdido deben replicarse en los demás para mantener el nivel de replicación
c. Las necesidades totales de memoria para el almacenamiento se mantienen en la mayoría de los casos

54
Q

Un “Split Brain” se produce cuando los nodos de un cluster pierden parte de la visibilidad entre ellos, creándose dos o mas clusters independientes con menor número de nodos.

Seleccione una:
Verdadero
Falso

A

Verdadero

55
Q

En una cache replicada podemos perder datos si el numero de nodos que se pierden es mayor o igual que el factor de replicación

Seleccione una:
Verdadero
Falso

A

Falso

56
Q

La configuración de caché replicada en IMDG implica que las lecturas son muy rápidas ya que podemos leer de cualquier nodo, pero las escrituras son mas lentas por tener que escribir el mismo dato en todos los nodos.
Seleccione una:
Verdadero
Falso

A

Verdadero

57
Q

Las políticas de expiración me permiten descartar datos de la caché automáticamente de acuerdo a criterios de tiempo de vida, tiempo sin acceder o tamaño de la caché.

Seleccione una:
Verdadero
Falso

A

Verdadero

58
Q

El escalado vertical es muy problemático en Java, ya que al aumentar el número de objetos también aumentan las interrupciones por recolección de basura en la JVM

Seleccione una:
Verdadero
Falso

A

Verdadero

59
Q

Tras un split brain en un IMDG, los dos sub-clusteres que se unen pueden tienen el mismo dato con la misma clave pero distinto valor. Para evitar esto siempre se debe utilizar quorum y desactivar una de las islas del split brain cuando sucede para evitar que los clientes puedan escribir el mismo dato en las dos islas.

Seleccione una:
Verdadero
Falso

A

Falso

60
Q

En los despliegues de IMDG para soluciones enterprise se suelen utilizar las versiones Open Source gratuitas de los productos con el fin de ahorrar costes.
Seleccione una:
Verdadero
Falso

A

Falso