Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
 
{scrollbar}

O3 Server utilizauses losresources recursosin dean formaefficient eficienteway. LaThe formaefficient eficienteway deto utilizaruse laO3 memoriaServer delmemory O3allows Serverfor permiteflexibility flexibilidadand yscalability
escalabilidad.

h2. GeneralidadesOverview

PruebasDetailed detalladastests hanhave probadoproved quethat una cantidadconsiderable importanteamount deof tiempotime esis consumidawasted cadaevery veztime quea uncube cubois se abre desde elopened from O3 Server. EstoThis seis debedue ato lathe cargaphysical físicaloading deof lathe metadata, asías comowell tambiénas elto establecimientothe deestablishment lasof estructurasdata de datosstructure. EntoncesThen, porwhy quénot noreuse reutilizarthe elwork trabajoalready quedone? yaThis hasimple sidoquestion hecho?and Estaits simpleanswer preguntalead yus suto respuestathe noscreation conducenof a la creación de una cubes cache de cubos residente en elresident in O3 Server. EstaThis cachécubes decache cuboskeeps mantienecubes losopen cuboseven abiertoswhen aun cuando no hayusers usuariosare conectadosconnected ato ellosthem. 

EstosThese cuboscubes puedencan serbe monitoreados utilizando el Administrador delmonitored using O3 Server Administrator, debajoin delthe sub árbol-tree "CubosOpen AbiertosCubes".

Con el Administrador del Through O3 Server, tambiénit esis posiblealso controlarpossible lato cantidadcontrol dethe cubosnumber queof soncubes mantenidosmaintained enin esethis estadostate (abiertosopen, sinnot conexiónconnected). EsteThis parámetroparameter seis llamacalled ""*CantidadNumber deof CubosCubes enin cache*") yand seis encuentrafound enin elthe editorcube de servicios del cuboservices editor, juntoalong conwith elthe parámetro  *"*Status"*" parameter.

UnA tamañocache desize cache deof *n* cuboscubes, indicaindicates quethat, at comothe máximomost, se mantendrán *n* cubos sin conexión, esperando por nuevos usuarios que los utilicen nuevamente. Como esos cubos no utilizados consumen recursos de memoria que pueden ser requeridos por otros cubos, cuando la caché está llena, eventualmente serán cerrados y descartados.

Con el Administrador del O3 Server siempre es posible forzar la eliminación de cualquier cubo de la caché,  simplemente removiéndolo del subárbol "*Cubos Abiertos*".

h2. Abriendo cubos al iniciar el Servidor

Otra característica interesante, es "*La prioridad de lectura al iniciar*". Este parámetro puede ser fijado utilizando el Administrador del O3 Server, para cada cubo publicado en el O3 Server. Se encuentra en el mismo editor en donde se ingresa el camino al archivo local.

El propósito de este parámetro es sugerir al O3 Server que cada vez que es levantado, ciertos cubos deberían ser cargados automáticamente. Esto asegura que, cuando el primer usuario se conecte a cualquiera de esos cubos, todo el proceso de carga inicial ya fue hecho, por lo cual la consulta inicial toma considerablemente menos tiempo.

Este parámetro puede tomar uno de los siguientes 6 valores:
* Ninguna
* Muy baja
* Baja
* Normal
* Alta
* Muy Alta

"Ninguna" es el valor por defecto para cubos nuevos, y significa que el cubo no será cargado al iniciar el servidor. Los otros ayudan al O3 Server a saber en qué orden serán cargados. Se pueden levantar en el inicio como máximo *n* cubos, siendo *n* el tamaño de la caché mencionado anteriormente.

h2. ¿Cómo funciona la caché de cubos?

La característica principal es que distribuye automáticamente los recursos disponibles de memoria entre los cubos abiertos, cerrando automáticamente los cubos sin conexiones si se necesita más memoria.

Se utilizan tres variables para controlar su comportamiento: una propiedad del sistema para especificar la máxima cantidad de memoria disponible, la cantidad mínima de bloques de memoria que los cubos necesitan para correr, y la máxima cantidad de bloques que los cubos pueden utilizar en memoria.

La propiedad del sistema mencionada anteriormente es cubes will be maintained open without connection, waiting for new users to use them again. As these unused cubes use up memory resources that might be required by other cubes, when the cache is full, they will eventually be closed and discarded.

With O3 Server Administrator, it is always possible to force the elimination of any cube in the cache, just  by removing it from the *"Open Cubes"* subtree.


h2. Loading cubes on Server startup.

Another interesting feature is the "Load priority on startup". This parameter can be set for each cube published in O3 Server by means of the O3 Sever Administrator. It is found in the same editor where the path to the local file is entered.


The purpose of this parameter is to suggest O3 Server that each time it is uploaded, certain cubes should be automatically loaded. This ensures that, when the first user logs in to any of these cubes, all the initial load process has already been done, thus reducing the time of the initial query considerably.  

This parameter can take one of the following 6 values:

* None
* Very low
* Low
* Normal
* High
* Very High

"None" is the default value for new cubes and it means that the cube will not be loaded on server startup.The other values help O3 Server sort out the loading sequence. A maximum of *n* cubes can be loaded on startup, with *n* being the size of the cache mentioned above.


h2. How does the Cubes cache work?

The main feature is that memory resources are automatically distributed among open cubes, automatically closing cubes with no connections if more memory is needed. 

Three variables are used to control its operation: a system property to specify the maximum available memory, the minimum number of memory blocks the cubes need to run, and the maximum number of blocks the cubes can use in the memory.


The aforementioned system property is "*ideasoft.o3.pool.totalMaxCache*", quewith tienea undefault valor por defecto devalue of 25000 bloquesblocks. EstoThis significameans que,that porby defectodefault, O3 Server utilizará solamente hastawill use only up to 25000 bloquesmemory deblocks memoriato paradistribute distribuiramong entreall todosits suscubes, cubos,whether tenganthey estoshave conexionesopen abiertasconnections oor no.

La cantidad mínima de bloques necesarios para los cubos es calculada, sumando la cantidad mínima de bloques necesaria para abrir cada cubo. Este número resultado debe ser menor que el especificado en la propiedad anterior. Cada vez que un cubo nuevo va a ser utilizado, el mínimo es recalculado y si el resultado excede el máximo permitido,  y no hay cubos abiertos sin conexiones, el pedido es denegado. En situaciones como esta, se genera un log para que el Administrador del Server pueda saber que está pasando. Si por el contrario, existen cubos abiertos sin conexiones, estos son cerrados, liberando así recursos.

La máxima cantidad de bloques para cada cubo es utilizado para distribuir la memoria disponible entre los cubos abiertos. El criterio utilizado para esta distribución es que mayor máximo significa más memoria con respecto a los otros cubos abiertos.

La cantidad mínima de bloques necesarias para un cubo, y el máximo permitido, son especificados en tiempo de diseño, con *{_}O3 Designer{_}*, utilizando los parámetros "Min Cache" y "Max Cache". Cuando los cubos son publicados en el O3 Server, estos parámetros pueden modificarse en tiempo de ejecución, para controlar la cantidad de memoria que cada cubo recibe.not. 

The minimum number of blocks necessary for the cubes is calculated by adding up the minimum number of blocks needed to open each of them. This resulting number must be smaller than the one specified in the previous property. Each time a new cube is going to be used, the minimum is recalculated and if the result exceeds the allowed maximum, and there are not any open cubes without connection, the request is denied. In these situations, a log is generated so that the Server Administrator knows what is going on. If on the contrary, there are open cubes without connections, they are closed, thus freeing resources. 


The maximum number of blocks for each cube is used to distribute the available memory among open cubes. The criteria used for this distribution is that a greater maximum, means more memory with regards to other open cubes. 

The minimum number of blocks and the maximum allowed are specified at the time of the design, with O3 Designer, through the use of the "Mincache" and "Max Cache" parameters. When the cubes are published in *{_}O3Server{_}*, these  parameters can be modified at the time of execution, to control the amount of memory each cube receives.


----
{children}
{scrollbar}