WebSphere eXtreme Scale es una cuadrícula de datos elástica, escalable y en memoria. La cuadrícula de datos dinámicamente almacena en memoria caché, particiona, replica y gestiona la lógica empresarial y los datos de aplicación entre varios servidores. WebSphere eXtreme Scale realiza volúmenes masivos de proceso de transacciones con un alta eficacia y una escalabilidad lineal. Con WebSphere eXtreme Scale, también puede obtener calidades de servicio como, por ejemplo, integridad transaccional, alta disponibilidad y tiempos de respuesta predecibles.
WebSphere eXtreme Scale se puede utilizar de distintas formas. Puede utilizar el producto como una memoria caché muy potente, como un espacio de proceso de base de datos en memoria para gestionar el estado de aplicación, o para crear aplicaciones XTP (Extreme Transaction Processing). Estas prestaciones XTP incluyen una infraestructura de la aplicación para dar soporte a las aplicaciones críticas para la empresa más exigentes.
Es posible escalabilidad elástica mediante la utilización del almacenamiento distribuido en memoria caché de objetos. Con la escalabilidad flexible, la cuadrícula de datos se supervisa y se gestiona sola. La cuadrícula de datos puede añadir o eliminar servidores de la topología, lo que aumenta o disminuye la memoria, el rendimiento de la red y la capacidad de proceso, según se requiera. Cuando se inicia un proceso de escalado, la capacidad se añade a la cuadrícula de datos mientras esta se ejecuta, sin necesidad de reiniciar. Por el contrario, el proceso de reducción elimina inmediatamente la capacidad. La cuadrícula de datos también se auto-arregla recuperándose automáticamente de anomalías.
WebSphere eXtreme Scale no se puede considerar una base de datos en memoria real. Una base de datos en memoria es demasiado simple para manejar algunas de las complejidades que puede gestionar WebSphere eXtreme Scale. Si una base de datos en memoria tiene un servidor que falla, esta no puede reparar el problema. Una anomalía puede ser desastrosa si todo el entorno se encuentra en ese servidor.
Para enfrentarse al problema de este tipo de anomalía, eXtreme Scale divide el conjunto de datos especificado en particiones, que son equivalentes a tres esquemas de árbol limitado. Los esquemas de árbol limitado describen la relación entre entidades. Cuando se utilizan particiones, las relaciones de entidad deben modelar una estructura de datos de árbol. En esta estructura, la cabeza del árbol es la entidad raíz y es la única entidad que se particiona. Todos los demás hijos de la entidad raíz se almacenan en la misma partición que la entidad raíz. Cada partición existe como una copia primaria o fragmento. Una partición contienen también fragmentos replica para hacer una copia de seguridad de los datos. Un base de datos en memoria no puede proporcionar esta función porque no está estructurada ni es dinámica de esta forma. Con una base de datos en memoria, debe implementar las operaciones que WebSphere eXtreme Scale realiza automáticamente. Puede ejecutar operaciones de SQL en bases de datos en memoria, lo que mejora la velocidad de proceso en comparación con las bases de datos que no están en memoria. WebSphere eXtreme Scale tiene su propio lenguaje de consulta en lugar de soporte de SQL. Este lenguaje de consulta es más elástico, permite particionamiento de datos y proporciona recuperación fiable de anomalías.
Con la característica de memoria caché de grabación diferida, WebSphere eXtreme Scale puede actuar como una memoria caché frontal para una base de datos. Gracias al uso de esta memoria caché frontal, el rendimiento aumenta mientras se reduce la carga de la base de datos y los conflictos. WebSphere eXtreme Scale proporciona una escalada horizontal y una escalada vertical a un coste de proceso predecible.
WebSphere eXtreme Scale tiene servidores, denominados servidores de contenedor, que proporcionan su cuadrícula de datos en memoria. Estos servidores pueden ejecutarse en WebSphere Application Server o en máquinas virtuales Java Java Standard Edition (J2SE) individuales. Se puede ejecutar más de un servidor de contenedor en un único servidor físico. Como resultado, la cuadrícula de datos en memoria puede ser grande. La cuadrícula de datos no está limitada por, ni repercute sobre, la memoria ni el espacio de dirección de la aplicación o del servidor de aplicaciones. La memoria puede ser la suma de la memoria de varios cientos, o miles, de máquinas virtuales Java, en ejecución en varios servidores físicos distintos.
Como un espacio de proceso de base de datos en memoria, se puede realizar copia de seguridad de WebSphere eXtreme Scale mediante disco, base de datos, o ambos.
Mientras que eXtreme Scale proporciona varias API Java, muchos casos de uso no requieren ninguna programación de usuario, solo la configuración y el despliegue de la infraestructura WebSphere.
La interfaz de programación más simple de eXtreme Scale es la interfaz ObjectMap, que es una interfaz de correlación simple que incluye: un método map.put(key,value) para poner un valor en la memoria caché y un método map.get(key) para recuperar posteriormente el valor.
El paradigma de cuadrícula de datos básico es un par de clave-valor, donde la cuadrícula de datos almacena valores (objetos Java), con una clave asociada (otro objeto Java). La clave se utiliza posteriormente para recuperar el valor. En eXtreme Scale, una correlación consta de entradas de estos pares clave-valor.
WebSphere eXtreme Scale ofrece una serie de configuraciones de cuadrícula de datos, desde una única, una memoria caché local simple a una memoria caché distribuida grande, utilizando varias máquinas virtuales Java o servidores.
Además de almacenar objetos Java simples, puede almacenar objetos con relaciones. Puede utilizar un lenguaje de consulta que sea como SQL, con sentencias SELECT … FROM … WHERE para recuperar estos objetos. Por ejemplo, un objeto order (pedido) puede tener un objeto customer (cliente) y varios objetos item (artículo) asociados a éste. WebSphere eXtreme Scale soporta las relaciones de uno a uno, de uno a varios y de varios a varios.
WebSphere eXtreme Scale también soporta una interfaz de programación EntityManager, para almacenar entidades de la memoria caché. Esta interfaz de programación es similar a las entidades en Java Enterprise Edition. Las relaciones de entidad se pueden descubrir automáticamente desde un archivo XML de descriptor de entidades o anotaciones en las clases Java. Puede recuperar una entidad de la memoria caché mediante la clave primaria utilizando el método find en la interfaz EntityManager. Las entidades pueden persistir o eliminarse de la cuadrícula de datos dentro de un límite de transacción.
Considere un ejemplo distribuido donde la clave es un simple nombre alfabético. La memoria caché se podría dividir en cuatro particiones mediante clave: la partición 1 para las claves que empiezan por A-E, la partición 2 para las claves que empiezan por F-L, y así sucesivamente. Para la disponibilidad, una partición tiene un fragmento primario y un fragmento de réplica. Los cambios de los datos de la memoria caché se realizan en el fragmento primario, y se replican en el fragmento de réplica. Configura el número de servidores que contienen los datos de la cuadrícula de datos, y eXtreme Scale distribuye los datos en fragmentos entre estas instancias de servidor. Para la disponibilidad, los fragmentos de réplica se colocan en servidor físicos aparte de los fragmentos primarios.
WebSphere eXtreme Scale utiliza un servicio de catálogo para localizar el fragmento primario para cada clave. Maneja el traspaso de fragmentos entre servidores eXtreme Scale cuando los servidores físicos fallan y posteriormente se recuperan. Por ejemplo, si el servidor que contiene un fragmento de réplica falla, eXtreme Scale asigna un nuevo fragmento de réplica. Si un servidor que contiene un fragmento primario falla, el fragmento de réplica pasa a ser el fragmento primario. Como anteriormente, se construye un nuevo fragmento de réplica.