Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Ingeniería Electromecánica Resumen “An Evaluation of Distributed Datastores Using the AppScale Cloud Platform” Bases de Datos Avanzadas Presenta Enrique de Jesús Ochoa Preciado Profesor Rosales Busquets Enrique Carlos Manzanillo, Col., México, 06 de septiembre de 2022 Índice Resumen 1 1 Resumen La computación en la nube es una utilidad atractiva de computación paradigma basado en acuerdos de nivel de servicio (SLA) que está experimentando una rápida aceptación en el comercio sector. Los sistemas en la nube ofrecen acceso público de bajo costo a una gran cantidad recursos informáticos, de almacenamiento y de red patentados. Estos sistemas proporcionan aislamiento y personalización por usuario y por aplicación a través de una interfaz de servicio que es implementado típicamente usando tecnología de lenguaje de alto nivel tecnologías, API bien definidas y servicios web. Un componente clave de la mayoría de las plataformas en la nube (p. Google App Engine (GAE), Microsoft Azure, Force.com), e infraestructuras (por ejemplo, Amazon Web Services (AWS) y Eucalyptus [20]), es escalable y gestión de datos estructurados tolerante a fallos. Además del modelo de datos, estas ofertas (ambas relacional y no relacional) varían ampliamente y pueden diferir en el lenguaje de consulta, la topología (maestro/esclavo frente a igual a igual), la política de consistencia de datos, la política de replicación, las interfaces de programación y las implementaciones en diferentes lenguajes de programación. Los componentes principales de AppScale son AppController, AppServer, AppLoadBalancer y, la contribución de este documento, la compatibilidad con bases de datos conectables. Controlador de aplicaciones. AppController es un servidor SOAP que se ejecuta en todos los nodos del sistema. Un AppController conoce el diseño de la nube e inicia los servicios necesarios en el orden requerido. AppController puede personalizar un nodo con cualquier componente y servicio disponible en AppScale. Si el nodo crea una instancia de una base de datos que requiere archivos de configuración, AppController escribe los archivos en las ubicaciones correctas. El AppController 2 también usa iptables para permitir solo Nodos de AppScale para acceder a puertos de componentes. El primer AppController en el sistema juega un papel especial en la nube, enviando un mensaje de latido cada diez segundos a todos los nodos del sistema y registrando si el nodo está vivo o no. También perfila los otros nodos, registrando métricas como el uso de CPU y memoria para escalar dinámicamente la nube. Servidor de aplicaciones. El componente AppServer es el SDK de GAE de código abierto que los usuarios emplean para probar, depurar y generar índices de base de datos para su aplicación antes de cargarla en la nube de Google. Reemplazamos las implementaciones de API no escalables en el SDK con sistemas eficientes, distribuidos y de código abierto. Utilizamos las bibliotecas Python y Java disponibles para muchos de los servicios (por ejemplo, Memcache, Imágenes), el sistema local para otros (Correo) y herramientas hechas a mano para otros (Tareas). Para la API de Datastore, modificamos el SDK para abrir un socket y reenviar el búfer de protocolo a un servidor remoto (el SDK simplemente coloca/obtiene búferes de protocolo a/desde un archivo). Eliminamos todas las restricciones de programación y cuotas que Google coloca en las aplicaciones GAE que se ejecutan dentro de su nube y hemos agregado nuevas API, incluida una que brinda a las aplicaciones acceso a Hadoop Streaming para el cálculo de MapReduce definido por el usuario. AppScale automatiza la implementación de tecnologías de bases de datos distribuidas. Para habilitar esto, lanzamos AppScale como una imagen del sistema operativo que los usuarios pueden crear instancias directamente sobre tecnologías de virtualización sin ninguna configuración o implementación manual. Esto proporciona una funcionalidad similar a la de Hadoop-on-Demand (HOD) [11] para cada almacén de datos. AppScale genera automáticamente todos los archivos de configuración necesarios, los argumentos de la línea de comandos y las variables de entorno. Además, AppScale inicia los servicios necesarios para cada almacén de datos en el orden correcto. Esto generalmente requiere cierta coordinación entre los AppControllers en el sistema, ya que, aunque algunos almacenes de datos se 3 ejecutan en una configuración de igual a igual, un igual en el sistema siempre debe iniciarse primero y permite que los otros iguales se localicen fácilmente entre sí. en el sistema y gestionar los datos. Existen diferentes sistemas distribuidos como: - Cassandra - Hbase - Hypertable - MemcacheDB - MongoDB - Voldemort - MySQL Las opciones de los sistemas distribuidos o bases de datos distribuidas siempre tienen que ser tomadas a consideración de cada proyecto de software y las necesidades que este tenga. Para evaluar los diferentes almacenes de datos, usamos Active Cloud DB [2], una aplicación de Google App Engine que expone una API REST a las operaciones primitivas de la API de Datastore. Luego medimos el tiempo de respuesta de extremo a extremo (tiempo de ida y vuelta hacia/desde el almacén de datos a través del AppServer).
Compartir