Base de Datos Orientadas a Objetos - "GemStone/S el Oracle de las OODBMS"
Las bases de datos relaciones son mucho más usadas que las bases de objetos, esto no quita que las OODBMS tenga sistemas muy grandes en producción, no son meramente algo teórico, ni tampoco han fracasado como se publica en algunos papers. En esta publicación voy a contar el caso de GemStone/S y sus historias exitosas.GemStone/S es una backend comercial (con licencias free para proyectos comerciales) al estilo Oracle pero es una OODBMS. Su primera versión salio al mercado en 1986, hace ya 20 años, por lo que tiene su tiempo en el mercado.
La licencia free tienen restricciones de tamaño, por más info vistar http://seaside.gemstone.com/ y el sitio oficial del producto es http://www.gemstone.com/products/smalltalk/.
La arquitectura básica consta de 3 partes:
1. El repositorio en disco.
Puede estar distribuido en diferentes maquinas y soporta 8.192 TeraBytes - ninguna aplicación ha llegado a este limite.
2. La VM (virtual machine) que confiere vida a los objetos del repositorio.
Un sistema puede tener multiples VM, en una misma maquina o distruibuido en varias.
3. SPC (shared page cache) es el cache que usa GemStone/S para los objetos accedidos más frecuentemente.
Soporta hasta 32.768 GB de SPC.
No hay mapeo de objetos a una base de datos relacional. Puede ser accedida por Java, C, aplicaciones CORBA, etc.
Cuando se hace: Cliente new (se crea un objeto), el objeto cliente ya nace persistente. Es decir, no hay un servicio no hay un llamada para persistir los objetos. Esto nos lleva a un interesante tema teorico:
* La persistencia es una característica de un objeto ? o
* La persistencia es una característica del medio donde residen los objetos ?
GemStone/S se basa en la segunda, donde GS es un medio (OODBMS) persistente y por lo tanto cualquier objeto que se crea ya nace persistente, y puede ser accedido por multiples usuarios. Tiene transacciones, loqueos, ... y todos los "demás chiches" de las RDBMS.
Sistemas en Producción por más de 10 años usando GemStone/S
La lista de sistemas que sigue tiene más de 10 años en producción y por lo tanto han crecido a lo largo del tiempo y ha afrontado muchos cambios en sus requerimientos.
IRIS-2
Es un sistema creado por la OOCL (orient overseas container line), y luego el sistema fue comprado por una empresa de la competencia COSCO, estas empresas se dedican al transporte de cargas usando containers. COSCO (China Ocean Shipping) mueve el 20% de todos los containers del mundo !!!.
La aplicación:
* 3 millones de lineas de código GemStone/S (que es código Smalltalk)
* 500 GB de repositorio
* 24 GB de cache (SPC)
* Más de 2000 VM (virtual machines)
* 700 transacciones por segundo
* Costo hora por bajada de la aplicación U$ 852.000 (no me gustaria ser el DBA !!!, je je)

TheICE
London Petroleum Exchange. Es la aplicación más grande que usa GemStone/S como backend.
La aplicación:
* Corre sobre un solo servidor AIX Power 6.
* 512 GB de RAM
* 128 procesadores
* Entre 10.000 y 13.000 transacciones de escritura por segundo (en horas pico)
* 8.000 usuarios concurrentes
* 2-3ms de respuesta

Kapital
JP Morgan. El sistema esta en constantes cambios debido a la naturaleza de las finanzas, pero no requiere downtime para incorporarle funcionalidades, se "programa" y se usa al mismo tiempo.
La aplicación:
* Corre sobre un cluster con 500 maquinas Linux.
* 450.000 lineas de cóidgo GemStone/S
* 4.700 clases
* 70.000 métodos
* 20.000 transacciones por día
* Mueve 50 billones de dólares por dia !!!
* Hace unos años era mantenida por 7 desarrolladores !!!, ahora son más pero no tengo el número. JP Morgan hace años hizo una presentación llamada "7 developers move billions".
* Da un promedio de 2 billones de dólares en ganancia, esto es porque la competencia necesita 6 meses más que Kapital para aprovechar nuevas oportunidades de negocios.

Hay muchas otras aplicaciones corriendo en GemStone/S pero sería demasiado largo enumerarlas a todos. Lo interesante es notar el tamaño de las aplicaciones y como esta tecnología se puede adaptar a diferentes arquitecturas.
TheICE corre sobre un solo servidor con 512 GB de RAM y 128 procesadores, en cambio Kapital usa escalabilidad horizontal con cluster de 500 máquinas Linux. Esto demuestra la flexibilidad de la arquitectura de GemStone/S.
Es claro que Oracle tiene muchas más aplicaciones que GemStone/S, pero esto demuestra que se puede utilizar bases de datos orientadas a objetos en sistemas mega grandes y con gran exito.
Tambien existe Versant y otras ODBMS pero puse GemStone/S porque es la que conosco más y la he usado.
Saludos,
Bruno
No hay comentarios:
Publicar un comentario