mirror of
https://github.com/php/doc-es.git
synced 2026-03-29 19:02:23 +02:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337037 c90b9560-bf6c-de11-be94-00142212c4b1
1011 lines
38 KiB
XML
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
|
|
-->
|