1 votos

¿Se beneficiará innodb de memcached?

De - http://www.readwriteweb.com/hack/2011/04/you-got-nosql-in-mysql-memcach.php

(corrígeme si no tiene sentido)

beneficios potenciales

  1. guardar el cálculo de consultas complejas en un entorno distribuido

  2. evitar la consulta repetida y probablemente beneficia más cuando se tienen múltiples servidores (más de 5 servidores de bases de datos) - consulta una vez, se almacena en memcached y se reutiliza para siempre

innodb tiene un tamaño de buffer pool interno,
¿tiene sentido que memcached actúe como distribuidor?

sin embargo, creo que el acceso a la RAM local es mucho más rápido que en el entorno distribuido

¿Alguna idea?

2voto

RolandoMySQLDBA Puntos 10660

En mi opinión, los dos tecnicismos deben equilibrarse correctamente y nunca deben tratarse como mutuamente excluyentes. La razón para ello es que el sistema de gestión de la calidad de los productos es muy complejo.

memcached es un esquema de memoria bien gestionado para almacenar datos utilizando etiquetas definidas por el usuario. Esto elimina la necesidad de una pesada E/S de disco.

InnoDB es un motor de almacenamiento compatible con ACID que utiliza MVCC (control de concurrencia multiversión) para permitir lecturas y escrituras transaccionales pesadas. Si se dispone de suficiente memoria, se puede almacenar todo el conjunto de datos de trabajo en la RAM, eliminando la E/S del disco.

Si se combinan cada una de ellas a pleno rendimiento, sus fuerzas completas anularán los beneficios de cada una en el mejor de los casos. Puedo afirmarlo con absoluta certeza porque InnoDB almacenará en caché todos los datos y páginas de índice a los que se acceda, mientras que memcached almacenará los mismos datos de usuario.

Memcached no almacenará la información de la página de índice que InnoDB tendrá en su buffer pool.

Memcached almacenará sólo las piezas exactas de datos necesarias. Las páginas de datos de InnoDB pueden contener posiblemente datos de otras filas de la tabla.

InnoDB facilita la recuperación de rangos de datos mejor que memcached, ya que memcached debe pasar por la capa de BD como un paso adicional.

Los dos productos deben ser como un matrimonio ( Perdona la metáfora, llevo 16 años felizmente casado ). Cada pareja debe afinar sus puntos fuertes para acomodar al otro y lograr un equilibrio ideal en todo. Así ocurre con InnoDB (esposa fuerte) y Memcached (marido fuerte).

InnoDB puede asignar tanta memoria RAM como sea necesaria basándose en la suma de todas las páginas de datos e índices o el 75% de la memoria RAM instalada, lo que sea menor. Memcached, si bien toma menos memoria por adelantado, puede requerir alguna forma de previsión para calcular cuánta memoria debe prepararse para manejar.

También hay que tener en cuenta que cuando se trata de lecturas pesadas, los datos y las páginas de índice en InnoDB se volverán bastante obsoletos en cuanto a su uso (pero actualizados en cuanto a su contenido) debido a que se accede a partes de la RAM fuera del pool de búferes de InnoDB para los mismos datos que también residen en el pool de búferes de InnoDB. Por lo tanto, escribir en memcached, que luego rickea los datos a InnoDB, seguirá desencadenando una eventual E/S de disco. La capacidad de InnoDB para proporcionar lecturas rápidas es eliminada por memcached. En el mismo flujo de control, InnoDB sólo se necesita cuando se escriben y se registran pequeñas transacciones para facilitar la recuperación de accidentes. (HHHMMMM esto suena como el marido (hace las cosas por adelantado y debe reconocer y amar a su esposa) y la esposa (rescata al marido pero mantiene su dignidad), ¿no?)

CONCLUSIÓN

Si se prevé adecuadamente la cantidad de datos que memcached va a contener, se puede escalar InnoDB en porcentajes de la RAM total necesaria para memcached (es decir, si se planea utilizar 8G de RAM para memcached, se debe trabajar con 6G o menos para el pool de buffer InnoDB). Combinados, su uso de memoria debe ser menor que la RAM total instalada. Una vez alcanzado este equilibrio, entonces InnoDB y memcached se complementarán plenamente.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: