martes, 19 de mayo de 2015

ACTIVIDAD 18

Actividad #18 
Investigar, Analizar y comprobar los algoritmos de control de concurrencia, tales como: los basados en bloqueo,los basados en estampas de tiempo y las pruebas de validación optimistas. Presentando sus resultados en clase y publicados en el blog





Algoritmos de Control de Concurrencia






En un sistema distribuido, cada transacción debe tener una estampilla de tiempo unica para usar en la decisión del orden de desestabilizad. 
Para la generación de estampillas únicas, en el modelo distribuido: cada transaccion tiene una estampilla de tiempo que surge de concatenar la estampilla de tiempo local con el identificador de sitio.

El problema del modelo distribuido es que un sitio podría generar estampillas de tiempo a mayor velocidad que otros sitios. En ese caso, las estampillas de tiempo generadas por el sitio mas rápido serán mayores que las generadas por otros sitios.

 Esto se evita si cada sitio utiliza un reloj lógico, implementado mediante un contador que se incrementa cada vez que se genera una nueva estampilla de tiempo local.

 Para sincronizar los relojes lógicos, se requiere que cada sitio Si avance su reloj logico   cuando arriba una nueva transacción a ese sitio.




  1. Existen varias formas en que las estampas de tiempo se pueden asignar. Un metodo es usar un contador global monotonicamente creciente
  2. El administrador de transacciones asigna tambien una estampa de tiempo a todas las operaciones
    solicitadas por una transaccion






    BLOQUEOS

    Un bloqueo en general es cuando una acción que debe ser realizada está esperando a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención, detección, y recuperación. También es necesario considerar factores como que hay sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la detección del bloqueo es demasiado costosa.

    En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los maneja dores de transacciones y el calenda rizador  Para esto existen dos formas básicas:

    • Autónoma: cada nodo es responsable por sus propios bloqueos de recursos.
      • Una transacción sobre un elemento con n replicas requiere 5n mensajes
      • Petición del recurso
      • Aprobación de la petición
      • Mensaje de la transacción
      • Reconocimientos de transacción exitosa
      • Peticiones de liberación de recursos
    • Copia Primaria: un nodo primario es responsable para todos los bloqueos de recursos
      • Una transacción sobre un elemento con n copias requiere 2n+3 mensajes
      • Una petición del recurso
      • Una aprobación de la petición
      • n mensajes de la transacción
      • n reconocimientos de transacción exitosa
      • Una petición de liberación de recurso
    Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas por transacciones distintas.






    ALGORITMOS BASADOS EN MARCAS DE TIEMPO
    A diferencia de los algoritmos basados en candados, los algoritmos basados en marcas de tiempo no pretenden mantener la seriabilidad por la exclusión mutua. 

    En su lugar eligen un orden de serializacion en primera instancia y ejecutan las transacciones de acuerdo a ese orden.       En estos algoritmos cada transacción lleva asociada una marca de tiempo. Cada dato lleva asociado dos marcas de tiempo: uno de lectura y otro de escritura, que reflejan la marca de tiempo de la transacción que hizo la ultima operación de ese tipo sobre el dato.                         

        Para leer la marca de tiempo de escritura del dato, debe ser menor que el de la transacción, si no aborta. Para escribir las marcas de tiempo de escritura y lectura del dato, deben ser menores que el de la transacción, sino se aborta.                                                                                        Esta técnica esta libre de Ínterbloqueos pero puede darse que halla que repetir varias veces la transacción. En los sistemas distribuidos se puede usar un mecanismo como, los relojes de Lamport para asignar marcas de tiempo.    




    Los algoritmos basados en estampas de tiempo no pretenden mantener la seriabilidad por exclusión mutua. En lugar de eso, ellos seleccionan un ordende serialización a prioridad y ejecutan las transacciones, de acuerdo a ellas. Para establecer este ordenamiento, el administrador de transacciones le asigna a cada transacción T1 una estampa de tiempo única t1 (T1) cuando ésta inicia.Una estampa de tiempo es un identificador simple que sirve para identificar cada transacción de manera única.


    Pruebas de validación optimistas















                           

jueves, 14 de mayo de 2015

actividad 17



Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio.
 Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado.
Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.
  • BEGIN TRAN: Especifica que va a empezar una transacción.
  • COMMIT TRAN: Le indica al motor que puede considerar la transacción completada con éxito.
  • ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
En un sistema ideal, las transacciones deberían garantizar todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades se simplifica o debilita con vistas a obtener un mejor rendimiento.

Transacciones planas: Consisten en una secuencia de operaciones primitivas encerradas entre las palabras clave BEGIN  y END

Transacciones Anidadas: Consiste en tener transacciones que dependen de otras, estas transacciones están incluidas dentro de otras de un nivel superior y se las conoce como subtransacciones. La transacción de nivel superior puede producir hijos (subtransacciones) que hagan más fácil la programación del sistema y mejoras del desempeño.


Estados de una Transacción
  • Transacción Activa: se encuentra en este estado justo después de iniciar su ejecución.
  • Transacción Parcialmente Confirmada: en este punto, se efectúan diferentes operaciones de verificación para asegurar que la transacción no interfiera con otras transacciones en ejecución.
  • Transacción Confirmada: Ha concluido su ejecución con éxito.
  • Transacción Fallida: En este caso, es posible que la transacción deba ser cancelada.
  • Transacción Terminada: indica que la transacción a abandonado el sistema.


Planificaciones
  • Conservar el orden de la transacción.
  • P1 y P2 son secuénciales.
  • N! Plantaciones válidas para N transacciones.
  • No consistencia
  • Dejar concurrencia al SO.
  • Se puede asegurar la consistencia.
  • Secuencialidad
  • El sistema debe controlar la ejecución concurrente de las transacciones para asegurar que el estado de la base sigue siendo consistente.
Planificaciones que aseguran consistencia
  • Se debe tener en cuenta:
  • No se verifican todas las instrucciones, sólo las operaciones de lectura y de escritura de la base de datos.
  • Cuando se poseen operaciones secuenciales de lectura y de escritura en el mismo punto de la base de datos entonces la planificación puede generar inconsistencias.
  • La mejor forma de asegurar planificaciones correctas es asegurando las equivalencias de planificación y esto se logra con dos posibles técnicas: Secuencialidad en cuanto a conflictos y Secuencialidad en cuanto a vistas.

jueves, 30 de abril de 2015

ACTIVIDAD 3 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS


 METODOLOGIA DE PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

Primeramente se debe de contar con heterogenidad de los datos, para que puedan ser usados para formular consultas. Tenemos los sigueintes ejemplos:

BD CENTRALIZADA



BD DISTRUIBUIDA


Asi como tambien necesitamos contar con:

-Localizacion de los datos para generar reglas heuristicas
-Descomposicion de consultas en paralelo en cada nodo
-Reducir la cantidad de datos a transferir en la red


ESTRATEGIAS DE PROCESAMIENTO DE CONSULTAS DE BASES DE DATOS DISTRIBUIDAS
Contamos con la estategia de Reformulacion de consultas, que nos sirve para encontrar q la informacion que nos va a proveer sea solo la que se le pidio por la fuente


Tambien se cuenta con la estrategia de descomposicion de las fuentes, que consiste en que segun las fuentes que pidan cierto tipo de datos sean las atentidas con mayor velocidad.


El procesamiento de consultas tiene como objetivo principal transformar una consulta escrita en un lenguaje de alto nivel en una estrategia de ejecución correcta y eficiente expresada en un lenguajede bajo nivel y ejecutar la estrategia para extraer los datos requeridos. Particularmente, para construir la respuesta a una consulta, el usuario no tiene que especificar de manera precisa elprocedimiento que se debe seguir. 


OPTIMIZACION DE CONSULTAS DISTRIBUIDAS

Para poder optimizar una consulta necesitamos tener claras las propiedades del algebra relacional para asegurar la reformulacion de la consulta, al optimizar una consulta obtenemos los siguientes beneficios:

-minimizar costos
-Reducir espacios de comunicaciones
-Seguridad en envios de informacion









El problema de optimización de consultas es altamente demandante en
tiempo de ejecución y, en el caso general, es un problema de la clase
NP. Así existen dos estrategias para su solución: búsqueda exhaustiva oel uso de heurísticas. Los algoritmos de búsqueda exhaustiva tienen una
complejidad combinatorial en el número de relaciones de la consulta.
Obtienen la transformación óptima, pero sólo se aplican a consultas
simples dado su tiempo de ejecución.


Optimización Global de Consultas
Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa
es hallar una estrategia de ejecución para la consulta cercana a la
óptima. La estrategia de ejecución para una consulta distribuida puede
ser descrita con los operadores del álgebra relacional y con primitivas de
comunicación para transferir datos entre nodos. Para encontrar una
buena transformación se consideran las características de los
fragmentos, tales como, sus cardinalidades.


Optimización Local de Consultas
El trabajo de la última capa se efectúa en todos los nodos con
fragmentos involucrados en la consulta. Cada subconsulta que se ejecuta
en un nodo, llamada consulta local, es optimizada usando el esquema
local del nodo. Hasta este momento, se pueden eligen los algoritmos
para realizar las operaciones relacionales. La optimización local utiliza los
algoritmos de sistemas centralizados