Diferencias entre transactional unbuffered y transactional buffered en Informix

Vale la pena destacar la diferencia entre estos dos modos de trabajo (logging modes) de las bases de datos de Informix.

Informix siempre persiste los datos escribiendo a alguno de sus buffers de log lógico. Si la base de datos en la cual se están haciendo cambios está trabajando en modo unbuffered, estos cambios se escriben al disco duro inmediatamente después de que un registro de commit o rollback llega al log lógico. Si la base de datos está trabajando en modo buffered, el servidor mantiene estos cambios se mantienen en el log el mayor tiempo posible, hasta que ocurre alguno de los siguiente eventos:

  • Un buffer se llena
  • Se ejecuta un checkpoint
  • Se cierra la conexión contra la base de datos
  • Se hace un commit a una base que está trabajando en modo unbuffered

En el modo buffered, existen problemas si el sistema se bloquea antes de
que el buffer de log lógico sea escrito al disco duro pero después de la transacción que el usuario completó ejecutando un commit. La transacción se considerará incompleta y se ejecutará un rollback cuando el motor sea reiniciado y se recupere. En modo unbuffered esto no sucede ya que luego del commit se escribirán los datos de la transacción en el disco duro y no se perderán.

Por defecto, se trabaja en modo unbuffered. Si bien enlententece un poco el motor, es más robusto que el modo buffered frente a caídas del motor en lo que a pérdida de datos respecta.

El tamaño de los buffers de logs lógicos se pueden averiguar en el archivo onconfig (parámetro LOGBUFF).

Referencias:

Etiquetado . Bookmark the permalink.

Una respuesta a Diferencias entre transactional unbuffered y transactional buffered en Informix

  1. Gonzalo| says:

    Gracias José por tu aclaración que es muy importante, te comento que yo estaba utilizando las BD en modo buffered principalmente porque las subía con con el utilitario dbimport -l buffered, y hasta donde tengo entendido con el dbimport no se puede poner el parámetro -l unbuffered, o si se puede??? gracias..

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *