Administración del Conocimiento – UML Simulation

GemStone/S el Oracle de las OODBMS

Publicado en OODBMS - Base de Objetos por smalltalkuy en octubre 19, 2009

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ónno 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 estiloOracle 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 vistarhttp://seaside.gemstone.com/ y el sitio oficial del producto es http://www.gemstone.com/products/gemstone.

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 JavaC, 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.00013.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 cambioKapital 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

Advertisement

4 comentarios

Suscríbete a los comentarios mediante RSS.

  1. [...] (GemStone systems http://www.gemstone.com) que da persistencia de forma transparente sobre una OODBMS (Gemstone/S el Oracle de las OODBMS). A esta Máquina Virtual se le pueden incorporar diferentes Web Servers, lo que permite a la [...]

  2. puentesdiaz said, on octubre 5, 2010 at 6:30 pm

    Hola, queria saber si aun estas trabajando con esta tecno.

    Si podes hacer una recomendacion al dia de hoy, sobre las opciones libres que podemos tener sin problemas de restricciones.

    Generalmente, desarrollo para la web, bajo LAMP, pero estoy usando JAVA y DB4O en unos proyectos chicos.

    Sin embargo, todo esto parece impresionante. y queria saber por donde dar unos pasitos para perderle el miedo.

    • smalltalkuy said, on octubre 5, 2010 at 7:14 pm

      Hola,

      En este momento no estoy trabajando con GemStone/S, pero me gustaría. En Argentina hay varias empresas que lo usan, como ser: http://www.caesarsystems.com/ (petroleo) y http://www.mercapsoftware.com/ (finanzas) entre otras. En su momento lo use bastante ahora no, pero cuando se presente la oportunidad lo haré nuevamente, es un producto muy muy bueno.

      Las restricciones para uso comercial libre cambiaron, las podes ver aquí: http://seaside.gemstone.com/docs/GLASS-Announcement.htm.
      Las restricciones son:
      * 16 GB para la base de datos (que es bastante) Repositorio Ilimitado
      * 2 GB de Cache de Objetos (SPC – shared page cache) – creo que es más que suficiente
      * 2 procesadores para el servidor

      Esto es lo que ofrecen ellos, pero si tenes algún problema con eso podes contactarte con ellos, ya que tratan cada licencia de forma individual y son flexibles.
      De todas formas si tu proyecto requiere más que lo que ofrece GemStone/S de forma gratuita –> es un proyecto grande por lo que no debería haber problema para invertir en el backend (recordar que es como un Oracle de las OODBMS).

      Cualquier otra duda a las ordenes…
      Si te interesa te puedo pasar el mail de un conocido en Argentina que se dedica a GemStone/S

      Me olvidaba estas a tiempo para ir a la conferencia anual que se hace en Argentina sobre esta tecnología este es el link (no es solamente GemStone/S es más amplio, pero quizás te interesa). Pero todos los años viene gente de GemStone/S y da algunas charlas y hacen laboratorios:
      http://www.fast.org.ar/

      Saludos,
      Bruno

  3. [...] para principiantes - Martin McClure,  más info sobre GemStone/S click aquí y [...]


Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.