Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

MANEJO DE TRANSACCIONES Y CONCURRENCIA EN POSTGRES

No description
by

cristiam henriquez ramirez

on 4 November 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of MANEJO DE TRANSACCIONES Y CONCURRENCIA EN POSTGRES

Transacciones
Una transacción es una unidad de programa que accesa y posiblemente actualiza varios elementos de datos a la vez, en postgreSQL se pueden realizar transacciones utilizando las siguientes instrucciones SQL:

BEGIN: se utiliza para indicar explícitamente el inicio de una transacción. Todas las instrucciones siguientes a BEGIN deben completarse correctamente para que sean registradas permanentemente.

COMMIT: Se utiliza para registrar los cambios hechos en una transacción permanentemente.

ROLLBACK: Se utiliza para descartar todas las operaciones realizadas en una transacción.


Estado de una transaccion
*Active : es el estado inicial y permanece durante toda la ejecución.

*Partially committed : después de que se ha ejecutado el último statement

*Failed : después de algún error, no se puede continuar.

*Aborted : se hace un "rollback" hacia un estado anterior consistente.

*Committed : después del éxito


Programacion
Crear Conexión

Abrir Conexión
(Openconnection)
Iniciar Transacción
(Begin Transaction)
(Insert, Select, Update, Delete...)
-Error
(Abort Transaction) rollback
Procesar resultados
(Print, a= , b= )
Asegurar Transacción
(End Transaction) commit
Cerrar Conexión
(Closeconnection)
Caracteristicas de MVCC
*La data nunca es “visible” por otros usuarios hasta que no sea “commiteada”.

*La principal ventaja es que las operaciones de R nunca bloquean a las de W, y viceversa, podemos obtener backups en caliente sin bloquear la db.

*Como desventaja: consumimos mas disco duro.
Cuando Usar MVCC?
• Aplicaciones que procesan transacciones en línea en gran escala.

• Aplicaciones mixtas que usan reportes contra datos sobre tablas en línea.

• Aplicaciones donde se ejecutan consultas largas mientras que simultaneamente se realizan operaciones sobre ella.
Las transacciones deben cumplir el criterio ACID
*Atomicity: todas las acciones en la transacción se cumplen o no se cumple ninguna.

*Consistency: la transacción solo termina si la data es consistente.

*Isolation: la transacción es independiente de otras transacciones.

*Durability: cuando la transacción termina el resultado de la
misma es perdurable.

MANEJO DE TRANSACCIONES Y CONCURRENCIA EN POSTGRES

Cristiam Henriquez; C.I 19224168
Katherine Zabala; C.I 19.223.703

Control de concurrencia
El control de concurrencia es el que asegura que muchos usuarios puedan acceder a la data al mismo tiempo. Al realizar procesos de transacciones.
Ninguna transacción debe ver el resultado de otras transacciones inconclusas, si esto no fuera así estaríamos leyendo datos inconsistentes.



MVCC (Multiversion Concurrency Control) de PostgreSQL
Postgres mantiene la consistencia de los datos con un modelo multiversión (MVCC). Esto significa que mientras se consulta una base de datos, cada transacción ve una imagen de los datos (una versión de la base de datos) como si fuera tiempo atrás, sin tener en cuenta el estado actual de los datos que hay por debajo. Esto evita que la transacción vea datos inconsistentes que pueden ser causados por la actualización de otra transacción concurrente en la misma fila de datos, proporcionando aislamiento transaccional para cada sesión de la base de datos.
Escenarios donde no generalmente debería usarse MVCC
• Aplicaciones de datawarehousing que extraen información sobre tablas históricas donde no hay escritura.

• Aplicaciones que procesan datos en línea con poca concurrencia.

• Aplicaciones realtime, donde la velocidad es mas importante aun que la consistencia de información.
Ventajas de usar el Control de Concurrencia
Mejor respuesta en ambientes de grandes volúmenes. Los principales proveedores de sistemas de bases de datos comerciales usan también esta tecnología, por las mismas razones.

Desventajas de usar en Control de Concurrencia

* Puntos de recuperación dentro de transacciones. Actualmente, las transacciones abortan completamente si se encuentra un fallo durante su ejecución.

*consumimos mas disco duro.
Full transcript