Cargando
2006-11-13

El equipo de desarrollo de Firebird liberó oficialmente la versión final 2.0 de la base de datos Firebird durante la inauguración de la conferencia internacional de Firebird en Praga, República Checa. Esta liberación trae consigo una gran cantidad de mejoras que impactan positivamente en el rendimiento, la funcionalidad, la seguridad y el soporte a idiomas, así como varias mejoras muy solicitadas al lenguaje SQL.

Además, Firebird 2.0 también cuenta con una plataforma de código mucho más robusta desde la cual se llevará a cabo la rearquitectura planeada para Firebird 3.0. Se han quitado varias limitaciones heredadas por código anterior, tales como el límite de 252 bytes para los índices y un uso no óptimo de estadísticas de índices que podían ralentizar el rendimiento. El tamaño de las tablas ya no está limitado a 30 Gb. La indexación ha sufrido una reestructuración para acelerar el rendimiento y reducir o eliminar los efectos de la selectividad pobre. Una característica importante es la introducción de una nueva interfase para conectar conjuntos de caracteres internacionales, incluyendo soporte mejorado a Unicode, junto con un número de nuevos y mejorados ordenamientos de caracteres. Firebird 2.0 ahora soporta plataformas de 64 bits, con binarios ya liberados para AMD64 e Intel EM64T sobre Linux. Los binarios para Windows de 64 bits están listos para ser probados y serán liberados en breve. Varios aspectos de la seguridad del servidor han recibido una reconstrucción intensa, al cerrarse un gran número de vulnerabilidades en la API. La API de Servicios está plenamente integrada a la arquitectura Clásica. Todas las funciones de la API están ahora disponibles tanto en Linux como en Windows, sin limitaciones, para tal arquitectura. [b][size=large][font=Arial]Mejoras del Lenguaje SQL[/font][/size][/b] Se han realizado muchas mejoras al lenguaje SQL, incluyendo soporte a tablas derivadas (SELECT ... FROM ( SELECT ... FROM)) con múltiples capas de anidamiento y la capacidad de unir conjuntos anidados, como se define en SQL200X. También se ha agregado una nueva característica para ejecutar bloques de SQL procedimental (PSQL) en instrucciones dinámicas de SQL, mediante la sintáxis de EXECUTE BLOCK. Una instrucción adicional (RETAIN) se agregó a la instrucción ROLLBACK de DSQL para hacerla consistente con COMMIT (RETAIN). Todas las versiones de Firebird proveen dos modos transaccionales: NO WAIT (sin bloqueo, dando una excepción inmediatamente en un conflicto), y WAIT (con bloqueo, esperando hasta que termine la transacción en conflicto). Una nueva característica extiende el modo WAIT permitiendo un intervalo finito de espera y entonces reportando un error (isc_lock_timeout). Los intervalos de espera se especifican por transacción y están disponibles en la API usando la instrucción LOCK TIMEOUT y mediante la instrucción SET TRANSACTION. Se trabajó para resolver los problemas de las vistas que son actualizables implícitamente, pero que tienen disparadores de actualización. Este es un cambio importante que puede afectar a los sitemas escritos para tomar ventaja de los comportamientos no documentados en versiones anteriores. Los operadores de búsqueda de cadenas han sido reimplementados y ahora trabajan correctamente con BLOBs de cualquier tamaño. La introducción de un algorito de un solo paso Knuth-Morris-Pratt para igualación de patrones mejora el rendimiento cuando se utilizan patrones complejos. Desde Firebird 1.0 hasta la fecha, las operaciones de concatenación eran verificadas para un posible desborde en el momento de la preparación y dan una excepción si era posible un desborde de acuerdo a las longitudes declaradas de los operandos. De esta manera, una expresión como "CAST('qwe' AS VARCHAR(30000)) || CAST('rty' AS VARCHAR(30000))" causaría una excepción debido a que 60,000 byttes excede el límite de las variables CHAR/VARCHAR. Ahora, esta condición solo causará una advertencia en el tiempo de preparación y será desplegada si la verificación en tiempo de ejecución detecta un desborde. Algunas nuevas extensiones se han agregado al PSQL, incluyendo múltiples cursores explícitos, que están también disponibles dentro de las instrucciones de DSQL EXECUTE BLOCK. El rastreo de invariantes en PSQL y la lógica de clonado de solicitudes se modificaron para corregir varios detalles de rendimiento y precisión con procedimientos recursivos. [b][size=large][font=Arial]Seguridad[/font][/size][/b] El cifrado de las contraseñas ahora usa un algoritmo más seguro (SHA-1), y el cifrado ahora está completamente basado en el servidor, y se requiere validarse con contraseña desde cualquier cliente remoto, sin importar los privilegios del usuario en la plataforma. Los accesos de fuera del servidor a la base de datos de seguridad son rechazados, ya que el servidor rechazará cualquier intento de acceso a la base de datos de autenticación, incluso por la utilería GSEC del SYSDBA, con excepción de la API de Servicios. El SYSDBA es el resguardador de la base de datos de seguridad aunque los usuarios ahora pueden modificar sus propias contraseñas por medio de una vista que utiliza la nueva y tabla RDB$USERS. Los intentos para obtener el acceso al servidor usando técnicas de fuerza bruta en cuentas y contraseñas ahora son detectados y bloqueados, con la ayuda de la base de datos y la API de servicios. [b][size=large][font=Arial]Conexiones y redes[/font][/size][/b] La capacidad de redirección del servidor (multi-hop), que fue deshabilitada por el desuso, ha sido restaurada y puesta a disposición mediante un parámetro de configuración para que sea utilizado con cuidado por quien entienda su utilización e implicaciones. Firebird 2.0 reemplaza la implementación anterior del transporte local en Windows (conocida como IPC, o IPServer), con una nueva implementación, más robusta, llamada XNET. Funciona exactamente igual, brindando una manera eficiente para conectar el servidor localizado en la misma máquina con el cliente. Esta nueva implementación no sufre de la inestabilidad de su antecesor. Trabaja con el servidor Classic, para servicios no interactivos y sesiones de terminal, y elimina bloqueos cuando se intentan varias conexiones simultáneas. También se espera una ligera mejora en velocidad. Cuando las versiones anteriores utilizaban el protocolo WNET (también conocido como NETBEUI), se realizaban solicitudes remotas en el contexto del token de seguridad del cliente. Ya que el servidor atiende cada conexión de acuerdo a sus credenciales de seguridad del cliente, esto significa que , si la máquina cliente está ejecutando algún usuario del sistema desde un dominio de NT, ese usuario requería permisos apropiados para acceder el archivo de base de datos físico, librerías UDF, etc, en el sistema de archivos del servidor. Esta situación, conocida como client-impersonation, es opuesta al protocolo normal para una configuración cliente-servidor, con una base de datos protegida y no es soportado en esta nueva versión. En Firebird 2.0, las conexiones WNET se comportan de la misma manera que las TCP, sin tomar en cuenta los derechos de los usuarios del sistema operativo. El manejo de conexiones en la arquitectura Super Server bajo POSIX ha sido mejorada y ahora utilizará SIGTERM y SIGINT para apagar todas las conexiones de manera natural. [b][size=large][font=Arial]Funcionamiento interno[/font][/size][/b] Firebird 2.0 cuenta por primera vez con direccionadores de 40 bits (64 bits internamenente) para superar el límite te tamaño de tablas de 30GB (aproximadamente) impuesto por el direccionamiento de registros de 32 bits. Recolección de basura: Desde Firebird 1.0 y versiones anteriores (Léase InterBase 6.0 y anteriores), la maquinaria Super Server ha realizado recolección de basura en procesos de fondo, abandonando el mecanismo de "cooperación" que maneja a la recolección de basura en la arquitectura Classic. Se ha reconocido que la recolección de basura cooperativa, si estuviese disponible, sería de utilidad para la arquitectura Super Server para algunas condiciones y configuraciones donde la espera para la recolección de basura en procesos de fondo cause cuellos de botella en el rendimiento. En Firebird 2.0 Super Server, por omisión se realizan ambos tipos de recolección de basura (en proceso de fondo, y cooperativa). Para administrarlos, se encuentra un nuevo parámetro de configuración (GCPolicy) para poder configurar la recolección de basura para que sea solo cooperativa o sólo en proceso de fondo. La contención de bloqueos ha sido reducida tanto en el administrador de bloqueos como en el administrador de hilos de SuperServer. También los volcados de memoria del administrador de bloqueos ahora cuentan con mejor información. Se agregaron varias mejoras de depuración, incluyendo el nombre de archivo y la línea en los mensajes de registro (BUGCHECK). Se cuenta con nuevas utilerías de depuración y la capacidad de copiar los mensajes de sistema (syslog) a la consola del usuario. La búsqueda de la carpeta/directorio raíz ha cambiado por lo que los procesos del servidor en Windows ya no hacen uso del registro, aunque las utilerías de línea de comandos aún lo utilizan. [b][size=large][font=Arial]UDFs, Utilerías y Herramientas de Línea de Comandos[/font][/size][/b] Las funciones externas ahora tienen la capacidad de señalar un NULL SQL mediante un apuntador a NULL y la biblioteca nativa de funciones ib_udf se mejoró para permitir que las funciones de cadena ASCII_CHAR, LOWER, LPAD, LTRIM, RPAD, RTRIM, SUBSTR y SUBSTRLEN retornen nulos y sean interpretadas correctamente. Muchas de las herramientas de línea de comando han sido reestructuradas y esta versión introduce las completamente nuevas herramientas de respaldo incremental NBak y Nbackup. Los modos de shutdown para un solo usuario y shutdown completo ahora son posibles mediante los nuevos parámetros STATE para los comandos gfix -shut y gfix -online. Se eliminaron varios problemas de versiones anteriores de Firebird cuando se usaba el reporte de errores de gsec a través de la API de Servicios. Las descargas, aquí: http://web.firebird.com.mx/modules/mydownloads/viewcat.php?cid=8 [size=x-small][color=CCCCCC]Fuente: IBPhoenix (http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1163527202:232083&page=fb_firebird20_info2)[/color][/size]

Firebird