PDF de programación - Firebird 2.5 - ¿SuperServer, ClassicServer o SuperClassic?

Imágen de pdf Firebird 2.5 - ¿SuperServer, ClassicServer o SuperClassic?

Firebird 2.5 - ¿SuperServer, ClassicServer o SuperClassic?gráfica de visualizaciones

Actualizado el 22 de Junio del 2017 (Publicado el 14 de Enero del 2017)
947 visualizaciones desde el 14 de Enero del 2017
214,8 KB
6 paginas
Creado hace 14a (12/04/2010)
Firebird 2.5 – ¿SuperServer, ClassicServer o

SuperClassic?



Tomado del blog de www.sinatica.com

Link: http://www.sinatica.com/blog/en/index.php/articles/firebird-superserver-classicserver-or-superclassic

Autor: Douglas Tosi

Traducido por: Javier Oros para www.clubdelphi.com a 09/Abril/2010

Revisión de la traducción: Casimiro Notevi ([email protected])

Versión del documento: 1.1 a 12/Abril/2010



Nota del traductor: Este documento fue creado originalmente haciendo un análisis cuando

estaba disponible Firebird 2.5 Alpha 1. Cuando se hizo esta traducción ya estaba disponible

Firebird 2.5 Release Candidate 2.

Firebird 2.5 – ¿SuperServer, ClassicServer o

SuperClassic?



Una de las decisiones más importantes al implementar un

servidor Firebird es la elección del tipo de servidor. Esta

elección se realiza durante la instalación.

Si a usted se le hace demasiado difícil tomar una decisión

informada hoy, solo espere a que Firebird 2.5 esté fuera.

Habrá

tres opciones: SuperServer, ClasiccServer

y

SuperClassic.

Las grandes diferencias entre ellos son la página de caché y la forma en que el servidor maneja

los procesos e hilos que ejecutan sus declaraciones.

SuperServer

En SuperServer hay solamente una página de caché y se comparte entre todas las conexiones de

los clientes.

Debido a que es compartida, esta caché es muy eficiente. Cuando varios clientes acceden a las

mismas áreas de la base de datos cada cliente se beneficia de una gran y bien alimentada

caché.

Por ejemplo, cuando el cliente “A” cuestiona:

SELECT NAME FROM CUSTOMERS WHERE ID = 1;

algunas páginas relacionadas a la tabla CUSTOMERS y a la clave primaria (primary key) se

cargan en caché.

Cuando el cliente “B” cuestiona:

SELECT NAME, ADDRESS, PHONE FROM CUSTOMERS WHERE ID = 2;

se beneficia de la caché compartida, porque las páginas que esta declaración necesita ya están

en caché.

También tenga en cuenta que solo hay un único proceso que conecta a todos los clientes.

Verifique el diagrama:



SuperServer tiene problemas de escalabilidad. Si usted lo instala en una computadora multi-

procesador (lo cual es muy probable hoy en día) este solo usará uno de los procesadores1. Esto

no es un problema para pequeñas implementaciones o entornos donde el servidor tiene más

actividades que la base de datos.

Por ejemplo, usted tiene un servidor Dual-Core y desea utilizarlo como un Servidor de archivo,

web, de impresión y de base de datos. No es problema que Firebird use solo un procesador,

porque el servidor tiene otras actividades que ocuparon el otro procesador. Y usted obtiene el

beneficio de una ligera y poco espaciosa base de datos.

Pero para grandes operaciones, donde usted quiere que la base de datos use cada ciclo del

procesador del servidor, SuperServer puede ser frustrante.

1 Excepto si se ejecuta más de una base de datos. A partir de Firebird 2.5, SuperServer usará más de un procesador de
esa manera. Uno por cada base de datos.

ClassicServer

En ClassicServer cada cliente tiene su propia página de caché y está conectado a un proceso

dedicado.

Esta caché dedicada es mucho menos eficiente. Si dos clientes acceden a la misma área de la

base de datos, esta área se copiara en la caché de cada cliente. Utilizando el ejemplo anterior,

cuando el cliente “B” cuestione la declaración, no obtendrá el beneficio de una caché ya llena.

En su lugar, Firebird tendría que acceder de nuevo al disco para responder a la petición.

Además, sincronizaciones caché son hechas en el disco. Esto aumenta considerablemente los

costos de E/S en entornos de alta concurrencia.

Verifique el diagrama:



Una gran ventaja de este modelo es la flexibilidad ofrecida por los múltiples procesos. Si uno de

ellos tiene problemas solo el cliente unido a él se desconectará. Todo lo demás sigue

funcionando.

Otro gran beneficio es la escalabilidad. Creo que esto es responsable de la mayoría de las

implementaciones Classic que andan por ahí. Incluso en los casos donde la caché dedicada es

inferior a la caché compartida, la escalabilidad de Classic lo compensa. Sólo agregue hardware

y bingo, su servidor de base de datos es más rápido.

Pero esta escalabilidad no es gratuita. Imagine que tiene 200 clientes simultáneos. Estos son

201 procesos. Uno para cada cliente y otro adicional para escuchar las nuevas conexiones. Su

sistema operativo debe manejar todos los procesos y mantenerlos sincronizados. Estos

procesos consumen una gran cantidad de recursos del kernel lo cual quiere decir que Classic

puede ser relativamente lento.

Compruebe este ejemplo: Firebird 2.5 Alpha 1 Classic con 7 clientes unidos. Esto es 8 procesos,

18 hilos, 1050 manejadores.

(En la ventana de abajo verá que mi Vista está en portugués de Brasil ;)



SuperClassic


A partir Firebird 2.5

El equipo de desarrollo Firebird decidió construir Firebird 3.0 basado en Classic. Firebird 3.0

será completamente amigable con SMP. SuperClassic es el primer paso en esa dirección. Es una

evolución y resuelve el problema más grande de Classic: todos aquellos procesos que lo hacen

lento y hacen difícil el mantenimiento.

Bienvenido a SuperClassic: Un proceso único con una caché dedicada.



Viendo de esta manera y considerando el nombre, esto puede sonar como un híbrido entre

Classic y Super pero no lo es. Lo que hicieron fue poner todos los procesos dentro de los hilos.

Ahora cada cliente tiene un hilo dedicado dentro de un solo proceso.

La creación de cientos de hilos es mucho más barato que la creación de cientos de procesos y

no hay pérdida de escalabilidad. La sincronización de la caché se realiza directamente en

memoria con lo cual se reducen costos de E/S. Otros controles que solían ser inter-procesos

ahora son inter-hilos y mucho más rápido.

Compruebe un ejemplo comparable: Firebird 2.5 Alpha 1 SuperClassic con 7 clientes unidos, 1

proceso, 6 hilos, 172 manejadores.



Conclusión

Esta recopilación de los casos más comunes es una sugerencia y sirve como guía, un punto de

partida en su elección. Su implementación puede tener detalles no representados aquí.

SuperServer

Bases de datos pequeñas o bases de datos con poco acceso

Servidores pequeños

Entornos donde la caché compartida es más deseable que la escalabilidad de SuperClassic.

ClassicServer

Entornos donde la estabilidad es la prioridad principal

Servidores multi-procesadores

Grandes bases de datos con cientos de usuarios

SuperClassic

Servidores multi-procesadores

Grandes bases de datos con cientos de usuarios

Entornos donde la caché dedicada es más deseable que la caché compartida de

SuperServer.

Entornos donde ClassicServer ya no escala bien
  • Links de descarga
http://lwp-l.com/pdf1828

Comentarios de: Firebird 2.5 - ¿SuperServer, ClassicServer o SuperClassic? (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad