1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-29 19:02:23 +02:00
Files
archived-doc-es/reference/mysqlnd_ms/changes.xml
Pedro Antonio Gil Rodríguez a2de3a3ec9 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337037 c90b9560-bf6c-de11-be94-00142212c4b1
2015-06-23 19:59:26 +00:00

1011 lines
38 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b2640f8900175a34675e303ac3f8878aff8d4a54 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mysqlnd-ms.changes" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title xmlns="http://docbook.org/ns/docbook">Historial de cambios</title>
<para>
Este historial de cambios es un resumen de alto nivel de los cambios seleccionados
que pueden tener un impacto sobre las aplicaciones y/o romper la retrocompatibilidad (RC).
</para>
<para>
Véase también el fichero <filename>CHANGES</filename> en la distribución del código fuente
para una lista completa de los cambios.
</para>
<section xml:id="mysqlnd-ms.changes-one-six">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.6</title>
<para>
1.6.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: TBD
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Mantenimiento y soporte inicial para MySQL Fabric
</simpara>
</listitem>
</itemizedlist>
</para>
<note>
<para>
Esta es la serie actualmente en desarrollo. Todas las
características están en una etapa primitiva. Los cambios podrían ocurrir en cualquier momento sin
previo aviso. Por favor, no use esta versión en entornos de producción.
</para>
<para>
La documentación podría no reflejar aún todos los cambios.
</para>
</note>
<para>
Corrección de errores
<itemizedlist>
<listitem>
<para>
No se podrá corregir: #66616 Falla la división de lectura/escritura: QOS con mysqlnd_get_last_gtid con GTID internos de MySQL
</para>
<para>
Esto no es un error en la implementación del complemento, sino una limitación de una característica
del lado del servidor no considerada ni documentada antes. Los GTID internos de MySQL 5.6 no pueden
usarse para asegurar la consistencia de sesión al leer desde los esclavos en cualquier caso.
En el peor de los casos, el complemento no considerará el uso de esclavos y
recurrirá al uso del maestro. No habrá resultados erróneos, excepto que no habrá el beneficio
de realizar la comprobación del GTID.
</para>
</listitem>
<listitem>
<para>
Corregido #66064 - Equilibrio de carga aleatorio una vez ignora los pesos
</para>
<para>
Debido a un error de análisis de configuración, el equilibrio de carga ha ignorado el nodo
de pesos si, y solo si, la bandera 'sticky' estaba establecida (aleatorio una vez).
</para>
</listitem>
<listitem>
<para>
Corregido #65496 - Comprobación errónea de la demora de esclavos
</para>
<para>
El filtro de calidad de servicio ha ignorado de forma errónea a los esclavos
que demoraban cero (0) segundos si se hubo establecido cualquier máximo de demora.
Aunque un esclavo no se demorara, era excluido de la lista de
equilibrio de carga si el filtro QoS estableció un máximo de edad.
Esto era debido al uso de un operador de comparación erróneo en el código fuente
del filtro.
</para>
</listitem>
<listitem>
<para>
Corregido #65408 - Fallo de compilación con -Werror=format-security
</para>
</listitem>
</itemizedlist>
</para>
<para>
Cambio en las características
<itemizedlist>
<listitem>
<para>
Se introdujo una agrupación de conexiónes interna. Al usar Fabric y cambiar
de un grupo de fragmentos A a un grupo de fragmentos B, se remplaza la lista entera de
maestros y esclavos. Esto obstaculiza a la lógica de alineamiento de estados de conexiones y
a algunos filtros. Algunos filtros almacenan información en cacé en las listas de maestros y esclavos.
La nueva abstracción de la agrupación de conexiones interna permite informar de los filtros
de cambios, de ahí que puedan actualizar sus cachés.
</para>
<para>
Más adelante, la agrupación puede también emplearse para reducir la sobrecarga de conexiones. Se asume
que se está cambiando de un grupo de fragmentos a otro y se vuelve otra vez. Siempre que
se realice un cambio, las listas de los servidores activos (y conexiones) de la agrupación son
remplazadas. Sin embargo, la conexiones que ya no se utilizan no se cierran necesariamente
de inmediato, por lo que se pueden permanecer en la agrupación para una reutilización posterior.
</para>
<para>
Obsérvese que la agrupación de conexiones es interna en este momento. Hay algunas
estadísticas nuevas para monitorizarla. Sin embargo, no se puede configurar aún el comportamiento
del tamaño de la agrupación.
</para>
</listitem>
<listitem>
<para>
Se añadió una abstracción básica para transacciones distribuidas.
Las transacciones XA están soportadas desde el empleo de llamads SQL estándar.
Esto es inadecuado debido a que los participantes de XA deben ser administrador manualmente.
PECL/mysqlnd_ms introduce llamadas a la API para controlar transacciones XA entre servidores de MySQL.
Al utilizar las nuevas funciones, PECL/mysqlnd_ms actúa como un coordinador de transacciones.
Después de iniciar una transacción distribuida, el complemento rastrea todos los servidores
involucrados hasta que la transacción finaliza y se envían las sentencias SQL apropiadas
a los participantes de XA.
</para>
<para>
Esto es útil, por ejemplo, al utilizar Fabric y la fragmentación. Cuando se emplea
Fabric, los servidores de fragmentación reales involucrados en una transacción de negocio podrían no ser conocidos
de antemano. Así, el control manual de una transacción que genere varios fragmentos sería
dificultoso.
Por favor, tenga en cuenta las <link linkend="mysqlnd-ms.concept_xa_trx">limitaciones actuales</link>.
</para>
</listitem>
<listitem>
<para>
Se introdujo un bucle de reintentos automático para
<link linkend="mysqlnd-ms.transient_errors">errores transitorios</link> y las
<link linkend="function.mysqlnd-ms-get-stats">estadísticas correspondientes</link>
para contar el número de intentos implícitos. Algunos clústeres de
bases de datos distribuidas usan erroes transitorios para sugeriri a un cliente que reintente
su operación en un momento. Muy amenudo, el cliente se supone que
para la ejecución (duerme) por un coroto momento antes del reintentar la
operación deseada. No es necesario recurrir inmediatamente a otro nodo
en respuesta al error. En su lugar, se puede realizar un blucle
de reintentos. Una situación común al usar un Clúster de MySQL.
</para>
</listitem>
<listitem>
<para>
Se introdujo un bucle de reintentos automático para
<link linkend="mysqlnd-ms.transient_errors">errores transitorios</link> y las
<link linkend="function.mysqlnd-ms-get-stats">estadísticas correspondientes</link>
para contar el número de intentos implícitos. Algunos clústeres de
bases de datos distribuidas usan erroes transitorios para sugeriri a un cliente que reintente
su operación en un momento. Muy amenudo, el cliente se supone que
para la ejecución (duerme) por un coroto momento antes del reintentar la
operación deseada. No es necesario recurrir inmediatamente a otro nodo
en respuesta al error. En su lugar, se puede realizar un blucle
de reintentos. Una situación común al usar un Clúster de MySQL.
</para>
</listitem>
<listitem>
<para>
Se introdujo el <link linkend="mysqlnd-ms.quickstart.mysql_fabric">soporte más básico</link>
para MySQL Fabric High Availability y el marco de trabajo de fragmentación.
</para>
<para>
Considere este como calidad prealfa. El código del marco de trabajo
del lado del servidor y del cliente client debe funcionar de forma precisa
considerando solamente los ejemplos del inicio rápido de MySQL Fabric. Sin embargo,
no se han realizado pruebas al nivel de versiones del complemento anteriores a alfa.
Ambos lados son objetivos móviles, los cambios en la API podrían ocurrir en
cualquier momento sin previo aviso.
</para>
<para>
Ya que se está trabajando aún en ello, el manual podría no reflejar las limitaciones
de las características permitidas y los errores conocidos.
</para>
</listitem>
<listitem>
<para>
Nuevas
<link linkend="function.mysqlnd-ms-get-stats">estadísticas</link>
para monitorizar la llamada XML RPC de Fabric <literal>sharding.lookup_servers</literal>:
<literal>fabric_sharding_lookup_servers_success</literal>,
<literal>fabric_sharding_lookup_servers_failure</literal>,
<literal>fabric_sharding_lookup_servers_time_total</literal>,
<literal>fabric_sharding_lookup_servers_bytes_total</literal>,
<literal>fabric_sharding_lookup_servers_xml_failure</literal>.
</para>
</listitem>
<listitem>
<para>
Nuevas funciones relacionadas con MySQL Fabric:
<function>mysqlnd_ms_fabric_select_shard</function>,
<function>mysqlnd_ms_fabric_select_global</function>,
<function>mysqlnd_ms_dump_servers</function>.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-five">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.5</title>
<para>
1.5.1-stable
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 06/2013
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Soporte para fragmentación, soporte mejorado para transacciones
</simpara>
</listitem>
</itemizedlist>
</para>
<note>
<para>
Esta es la serie estble actual. Use esta versión en entornos de producción.
</para>
<para>
La documentación está completa.
</para>
</note>
<para>
1.5.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 03/2013
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Soporte para fragmentación, soporte mejorado para transacciones
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Corrección de errores
<itemizedlist>
<listitem>
<para>
Corregida la violación de acceso #60605 de PHP cuando mysqlnd_ms está habilitado.
</para>
</listitem>
<listitem>
<para>
Establecer la adhesión de transacciones deshabilita todo el equilibrado de carga, incluyendo
lla tolerancia a fallos automática, durante una transacción. Por lo que
podrían ocurrir intercambios de conexiones en mitad de una transacción
en configuraciones multimaestro y durante la tolerancia a fallos automática aunque
la monitorización de transacciones haya detectado los límites de la transacción apropiadamente.
</para>
</listitem>
<listitem>
<para>
Rotura de RC y error corregido. Las sugerencias SQL que fuerzan a un tipo
específico de servidor (<constant>MYSQLND_MS_MASTER_SWITCH</constant>,
<constant>MYSQLND_MS_SLAVE_SWITCH</constant>,
<constant>MYSQLND_MS_LAST_USED_SWITCH</constant>) son ignoradas durante
una transacción si la adhesión de transacciones está habilitada y
se han detectado apropiadamente los límites de la transacción.
</para>
<para>
Este es un cambio de comportamiento. Sin embargo, también es una corrección de error y un paso
para alinear comportamiento. Si, en versiones anteriores, con adhesión de transacciones,
se combinaba una de las sugerencias SQL enumeradas el filtro de calidad de servicio,
podía ocurrir que dichas sugerencias fueran ignoradas. En algún
caso, las sugerencias SQL funcionaban, en otros no. El nuevo
comportamiento es más consistente. Las sugerencias SQL siempre serán ignoradas
durante una transacción si la
<link linkend="ini.mysqlnd-ms-plugin-config-v2.trx-stickiness">adhesión de transacciones</link>
está habilitado.
</para>
<para>
Observe que la detección de los límites de transaccoines continua basándose en la monitorización
de llamadas a la API. Los comandos SQL que controlan transacciones no son monitorizados.
</para>
</listitem>
<listitem>
<para>
Rotura de RC y error corregido. Las llamadas a <function>mysqlnd_ms_set_qos</function>
fallarán cuando se hacen en mitad de una transacción si la
<link linkend="ini.mysqlnd-ms-plugin-config-v2.trx-stickiness">adhesión de transacciones</link>
está habilitada. Los intercambios de conexión no están permitidos durante una
transacción. El cambio de la calidad de servicio probablemente resulta en un conjunto
diferente de servidores elegidos para la ejecución de consultas, posiblemente haciendo
necesario intercambiar conexiones. Así, la llamada no está permitida durante
una transacción activa. La calidad de servicio puede ser, sin embargo,
cambiada entre transacciones.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Cambios en las características
<itemizedlist>
<listitem>
<para>
Se introdujo el filtro <literal>node_group</literal>.
El filtro permite organizar servidores (maestro y esclavos)
en grupos. Las consultas se pueden dirigir a ciertos grupos de servidores
prefijando la sentencia de consulta con una sugerencia/comentario de SQL que contenga
el nombre de configuración de grupos. La agrupación se puede usar para
particionar y fragmentar, aunque también para optimizar la caché local.
En el caso de la fragmentación, se ha de pensar en un nombre grupo como una clave fragmentada.
Todas las consultas para una clave fragmentada dada serán ejecutadas en el
fragmento configurado. Nota: tanto el cliente como el servidor deben sorportar la fragmentación
para usar la misma con mysqlnd_ms.
</para>
</listitem>
<listitem>
<para>
Validación del fichero de configuración extendida durante el arranque de PHP (RINIT).
Se lanzará un error de nivel <constant>E_WARNING</constant> si no se puede leer el
fichero de configuración (permisos), si está vacío, o si el fichero (JSON) no se pudo analizar.
Las advertencias podrían aparecer el ficheros log, lo que depende de cómo esté configurado PHP.
</para>
<para>
Las distribuciones que pretenden proporcionar una configuración precofigurada, incluyendo una
rutina auxiliar de fichero de configuración, se les interroga para colocar <literal>{}</literal> en
el fichero de configuración para evitar esta advertencia sobre un fichero de
configuración inválido.
</para>
<para>
Se realiza una validación extra del fichero de configuración cuando se analizan secciones
que abran una conexión. Por favor, observe que aún podrían haber situaciones en las que
un fichero de configuración del complemento inválido no conduzca a mensajes de error apropiados,
sino a un fallo de conexión.
</para>
</listitem>
<listitem>
<para>
A partir de PHP 5.5.0, se añadió la mejora de la detección de límites de transacciones para
<literal>mysqli</literal>. La extensión <literal>mysqli</literal> ha sido
modificada para usar las nuevas llamadas a la API en C de la biblioteca <literal>mysqlnd</literal>
para comenzar, consolidar y revertir una transacción o un punto de prevención.
Si se usa <link linkend="ini.mysqlnd-ms-plugin-config-v2.trx-stickiness">trx_stickiness</link>
para habilitar transacciones que consideran equilibrado de carga, las funciones
<function>mysqli_begin</function>, <function>mysqli_commit</function> and <function>mysqli_rollback</function>
ahora serán monitorizadas por el complemento, para aceptar la función <function>mysqli_autocommit</function>
que ya estaba admitida. Todas las características de SQL para controlar
transacciones también están disponibles a través de las funciones mejoradas relacionadas
con el control de transacciones de <literal>mysqli</literal>. Esto significa que no es necesario para
emitir sentencias SQL en lugar de usar llamadas a la API. Las aplicaciones
que utilicen las llamadas apropiadas a la API pueden ser equilibradas en carga por
PECL/mysqlnd_ms de una manera completamente consciente de transacciones.
</para>
<para>
Observe que <literal>PDO_MySQL</literal> no ha sido actualizada
aún para usar las nuevas llamadas a la API de mysqlnd. Por lo tanto, la detección
de límites de transacciones con <literal>PDO_MySQL</literal> continua estando limitada a
la monitorización pasando <constant>PDO::ATTR_AUTOCOMMIT</constant> a
<methodname>PDO::setAttribute</methodname>.
</para>
</listitem>
<listitem>
<para>
Se introdujo <literal>trx_stickiness=on</literal>. Esta opción de
<link linkend="ini.mysqlnd-ms-plugin-config-v2.trx-stickiness">trx_stickiness</link>
difiere de <literal>trx_stickiness=master</literal> en que
intenta ejecutar una transacción de solo lectura en un esclavo, si la
calidad de servicio (nivel de consistencia) permite el uso de un esclavo.
Las transacciones de solo lectura fueron introducidas en MySQL 5.6 y
ofrecen ganancias de rendimiento.
</para>
</listitem>
<listitem>
<para>
El soporte para la caché de consultas se considera beta si se usa con la API de
<literal>mysqli</literal>. Debería funcionar bien con clústeres basados en copia primaria. Para
las demás API, este rasgo continua siendo experimental.
</para>
</listitem>
<listitem>
<para>
Los ejemplos de código del fichero fuente de mysqlnd_ms se actualizaron.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-four">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.4</title>
<para>
1.4.2-stable
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 08/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Modificaciones menores basadas en comentarios de usuarios
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
1.4.1-beta
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 08/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Modificaciones menores basadas en comentarios de usuarios
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Errores corregidos
<itemizedlist>
<listitem>
<para>
Corregida la construcción con PHP 5.5
</para>
</listitem>
</itemizedlist>
</para>
<para>
1.4.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 07/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Modificaciones menores basadas en comentarios de usuarios
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Cambios en las características
<itemizedlist>
<listitem>
<para>
Rotura RC: Se renombró el ajuste de configuración del complemento <literal>ini_file</literal>
a <literal>config_file</literal>. En versiones anteriores el fichero de configuración del
complemento usaba el estilo ini. Así, el ajuste de configuración se llamó en consecuencia.
Ahora se ha renombrado para reflechar el formato de fichero nuevo y para distinguirlo
del propio fichero ini de PHP (fichero de directivas de configuración).
</para>
</listitem>
<listitem>
<para>
Se introdujo el ajuste de conjunto de caracteres predeterminado <literal>server_charset</literal>
para permitir el escapado apropiado antes de abrir una conexión.
Esto es lo más útil al usar conexiones retardadas, las cuales son las predeterminadas.
</para>
</listitem>
<listitem>
<para>
Se introdujo el ajuste <literal>wait_for_gtid_timeout</literal> para estrangular
las lecturas de esclavos que necesitan consistencia de sesión. Si se usan identificadores de transacciones
globales y el nivel de servicio está establecido a consistencia de sesión, el complemento
intentará encontrar esclavos actualizados. La comprobación del estado de un esclavo se realiza mediante
una sentencia SQL. Si no se establece nada más, dicho estado se comprobará y a partir de
entonces solamente se puede continuar la búsqueda de más esclavos actualizados.
Establecer <literal>wait_for_gtid_timeout</literal> ordena al complemento
que sondee los estados de los esclavos durante <literal>wait_for_gtid_timeout</literal> segundos
si la primera ejecución de la sentencia SQL ha mostrado que el esclavo aún no
está actualizado. El sondeo se realizará una vez por segundo. De este modo, el complemento
esperará a que los esclavos se pongan al día y estrangulará al cliente.
</para>
</listitem>
<listitem>
<para>
La nueva estrategia de tolerancia a fallos <literal>loop_before_master</literal>.
De manera predeterminada, el complemento no realiza la tolerancia a fallos. Es posible habilitar
la tolerancia a fallos automática si falla un intento de conexión. Hasta la versión 1.3
solamente existía la estrategia <literal>master</literal> para realizar la tolerancia a fallos en un maestro si
fallaba una conexión a un esclavo. <literal>loop_before_master</literal> es
similar, pero realiza intentos sobre los demás esclavos antes de intentar conectarse al maestro
si una conexión a un esclavo falla.
</para>
<para>
El número de intentos se puede limitar usando la opción <literal>max_retries</literal>.
Los equipos anfitriones fallidos se pueden recordar y ser saltados en el equilibrado de carga para
el resto de la petición web. <literal>max_retries</literal> y
<literal>remember_failed</literal> son considerados experimentales, aunque
se proporciona una estabilidad decente. La sintaxis y la semántica podrían cambiar en el futuro
sin previo aviso.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-three">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.3</title>
<para>
1.3.2-stable
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 04/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: véase 1.3.0-alpha
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Corrección de errores
<itemizedlist>
<listitem>
<para>
Corregido el problema con multimaestros en donde una transacción
las consultas al maestro no se adherían y eran difundidas por todos
los demás maestros (RR). Aún no se adhiere para Random. Random_once
no se ve afectada.
</para>
</listitem>
</itemizedlist>
</para>
<para>
1.3.1-beta
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 04/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: véase 1.3.0-alpha
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Corrección de errores
<itemizedlist>
<listitem>
<para>
Corregido el problema de la construcción junto con QC.
</para>
</listitem>
</itemizedlist>
</para>
<para>
1.3.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 04/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Almacenamiento en caché de consultas a través del concepto de calidad de servicio
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
La seria 1.3 aspira a mejorar el rendimiento de las aplicaciones
y el total de la carga de un clúster MySQL asíncrono, por ejemplo, un clúster MySQL
que utiliza la Replicación MySQL. Esto se lleva a cabo de forma transparaente reemplazando
el acceso a un esclavo con un acceso a la caché local, si la aplicación lo permite
estableciendo una bandera de calidad de servicio apropiada. Cuando se usa la replicación MySQL
un esclavo puede servir datos antiguos. Una aplicación que use la replicación MySQL debe
continuar funcionando correctamente con datos antiguos. Dado que se sabe que la aplicación
funciona correctamente con datos antiguos, el acceso al esclavo se puede reemplazar de forma
transparente con un acceso a la caché local.
</para>
<para>
<link linkend="book.mysqlnd-qc">PECL/mysqlnd_qc</link> sirve como una caché
en el lado del procesamiento. PECL/mysqlnd_qc admite el uso de varias ubicaciones de almacenamiento,
entre otras la memoria principal, <literal>APC</literal> y <literal>MEMCACHE</literal>.
</para>
<para>
Cambios en las características
<itemizedlist>
<listitem>
<para>
Se añadió la opción de caché al filtro de calidad de servicio (QoS).
<itemizedlist>
<listitem>
<simpara>
La nueva opción de configuración <literal>enable-mysqlnd-ms-cache-support</literal>
</simpara>
</listitem>
<listitem>
<simpara>
La nueva constante <literal>MYSQLND_MS_HAVE_CACHE_SUPPORT</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
La nueva constante <literal>MYSQLND_MS_QOS_OPTION_CACHE</literal> para usarla
con <function>mysqlnd_ms_set_qos</function>.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Soporte para la característica del identificador de transacciones global interno de MySQL 5.6.5-m8 o posterior.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-two">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.2</title>
<para>
1.2.1-beta
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 01/2012
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: véase 1.2.0-alpha
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Cambios de pruebas menores.
</para>
<para>
1.2.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 11/2011
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Inyección de ID de Transacciones Global y concepto de calidad de servicio
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
El la versión 1.2, el foco continua siendo el soporte de clústeres de bases de datos MySQL
con replicación asíncrona. El complemento intenta hacer uso del clúster
introduciendo un filtro de calidad de servicio que pueden usar las aplicaciones para definir
la calidad de servicio que necesitan del clúster. Los niveles de servicio proporcionados son
la consistencia final con la edad máxima/demora del esclavo opcional, la consistencia de sesión
y la consistencia fuerte.
</para>
<para>
Además, el complemento puede realizar una inyección de id de transacciones global en el lado del cliente
para hacer más sencilla la tolerancia a fallos manual en el maestro.
</para>
<para>
Cambios en las características
<itemizedlist>
<listitem>
<para>
Se introdujo el filtro de calidad de servicio (QoS). Los niveles de servicio proporcionados por el filtro QoS son:
<itemizedlist>
<listitem>
<simpara>
consistenia finak, con opción de demora de esclavos
</simpara>
</listitem>
<listitem>
<simpara>
consistencia de sesión, con GTID opcional
</simpara>
</listitem>
<listitem>
<simpara>
consistencia fuerte
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Se añadió la función <function>mysqlnd_ms_set_qos</function> para establecer la
calidad de conexión requierida en tiempo de ejecución. Las nuevas constantes relacionadas con
<function>mysqlnd_ms_set_qos</function> son:
<itemizedlist>
<listitem>
<simpara>
<constant>MYSQLND_MS_QOS_CONSISTENCY_STRONG</constant>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>MYSQLND_MS_QOS_CONSISTENCY_SESSION</constant>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL</constant>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>MYSQLND_MS_QOS_OPTION_GTID</constant>
</simpara>
</listitem>
<listitem>
<simpara>
<constant>MYSQLND_MS_QOS_OPTION_AGE</constant>
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Se añadió la inyección de id de transacciones global (GTID) en el lado del cliente.
</para>
</listitem>
<listitem>
<para>
Las nuevas estadísticas relacionadas con el GTID:
<itemizedlist>
<listitem>
<simpara>
<literal>gtid_autocommit_injections_success</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>gtid_autocommit_injections_failure</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>gtid_commit_injections_success</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>gtid_commit_injections_failure</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>gtid_implicit_commit_injections_success</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>gtid_implicit_commit_injections_failure</literal>
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Se añadió <function>mysqlnd_ms_get_last_gtid</function> para obtener el último
id de transacción global.
</para>
</listitem>
<listitem>
<para>
Se habilitó el soporte para multimaestros sin esclavos.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-one">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.1</title>
<para>
1.1.0
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 09/2011
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Cubrir lo básico de la replicación con calidad de producción
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Las series 1.1 y 1.0 exponen un conjunto de características similar. Internamente,
la serie 1.1 ha sido reestructurada para planificar la incorporación de futuras
características. Se ha introducido un nuevo formato del fichero de configuración,
y se han eliminado las limitaciones. Además, se ha mejorado la calidad del código y
la seguridad de la calidad.
</para>
<para>
Cambios en las características
<itemizedlist>
<listitem>
<para>
Se añadió el (encadenable) <link linkend="mysqlnd-ms.filter">concepto de filtro</link>:
<itemizedlist>
<listitem>
<simpara>
Rotura RC:
La función <function>mysqlnd_ms_set_user_pick_server</function>
ha sido eliminada. Se ha introducido el filtro
<link linkend="mysqlnd-ms.filter"><literal>user</literal></link>
para reemplazarla.
El filtro ofrece una funcionalidad similar, aunque existen diferencias que se
explican más abajo.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<simpara>
Nueva sintaxis de configuración más potente basada en <acronym>JSON</acronym>.
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="mysqlnd-ms.pooling">Merjora de conexiones retardadas</link>:
está cubierta la seguridad relevante y los comandos de cambio de estado.
</simpara>
</listitem>
<listitem>
<simpara>
Soporte para sentencias preparadas (nativo).
</simpara>
</listitem>
<listitem>
<para>
Nuevas estadísticas: <literal>use_master_guess</literal>,
<literal>use_slave_guess</literal>.
<itemizedlist>
<listitem>
<simpara>
Rotura RC: Cambio en la semántica de las estadísticas
<literal>use_slave</literal>, <literal>use_master</literal>.
Son posibles cambios futuros. Véase
<function>mysqlnd_ms_get_stats</function>.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<simpara>
La lista de mensajes de difusión está extendida por <literal>ssl_set</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
Ahora, las llamadas a la biblioteca se monitorizan para recordar los ajustes de conexiones retaradadas:
<literal>change_user</literal>, <literal>select_db</literal>,
<literal>set_charset</literal>, <literal>set_autocommit</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
Se introdujo <link linkend="ini.mysqlnd-ms.disable-rw-split"><literal>mysqlnd_ms.disable_rw_split</literal></link>.
Este ajuste de configuración permite el uso de la funcionalidad del equilibrado de carga y
de las conexiones retardadas independientemente de la división de lecutra-escritura.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Corrección de errores
<itemizedlist>
<listitem>
<simpara>
Corregido PECL #22724 - Intercambio de servidor (mysqlnd_ms_query_is_select() sensible a mayúsculas/minúsculas)
</simpara>
</listitem>
<listitem>
<simpara>
Corregido PECL #22784 - No funcionaba mysql_connect y mysql_select_db
</simpara>
</listitem>
<listitem>
<simpara>
Corregido PECL #59982 - Extensión inusable con with --enable-mysqlnd-ms-table-filter.
El uso de la opción NO está soportado. No se debe usar. Se añadió una nota a m4.
</simpara>
</listitem>
<listitem>
<simpara>
Corregido el error #60119 - host="localhost" se perdía en mysqlnd_ms_get_last_used_connection()
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Se ha eliminado la función <function>mysqlnd_ms_set_user_pick_server</function>, y ha sido
reemplazada por el nuevo filtro <literal>user</literal>. Ya no se puede establecer una
función de llamada de retorno usando <function>mysqlnd_ms_set_user_pick_server</function> en
tiempo de ejecución, sino que se ha de configurarla en su lugar en el fichero de configuración del complemento.
El filtro <literal>user</literal> pasará los mismos argumentos que antes a la llamada de retorno.
Por lo tanto, se puede seguir usando la misma función procedimental como una llamada de retorno.
Ya no es posible usar métodos estáticos de clases, o métodos de clases de
una instancia, como una llamada de retorno. Hacerlo supondrá que la función
ejecutará una sentencia manejada por el complemento para emitir un
error de nivel <constant>E_RECOVERABLE_ERROR</constant>, el cual podría ser: "<literal>(mysqlnd_ms) Specified callback (picker) is not a valid callback</literal>."
((mysqlnd_ms) La llamada de retorno (picker) especificada no es una llamada de retorno válida).
Nota: esto podría detener la aplicación.
</para>
</section>
<section xml:id="mysqlnd-ms.changes-one-o">
<title xmlns="http://docbook.org/ns/docbook">Serie PECL/mysqlnd_ms 1.0</title>
<para>
1.0.1-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 04/2011
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: versión de corrección de errores
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
1.0.0-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 04/2011
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Cubrir lo básico de la replicación para probar los comentarios de los usuarios
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
La primera versión de uso práctico. Introduce una división básica automática de lectura-escritura,
sugerencias SQL para invalidar la redirección automática, el equilibrado de carga de
peticiones a esclavos, conexiones retardadas, y uso opcional automático del maestro
después de la primera escritura.
</para>
<para>
El conjunto público de características es similar al de la versión 1.1.
</para>
<para>
1.0.0-pre-alpha
<itemizedlist>
<listitem>
<simpara>
Fecha de publicación: 09/2010
</simpara>
</listitem>
<listitem>
<simpara>
Motivo/tema: Pruebas de conceptos
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Comprobación inicial. Esencialmente una demo de la API de complementos
<link linkend="book.mysqlnd">mysqlnd</link>.
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->