Base de Datos Distribuidas Clase 1: Sistemas Distribuidos.

  • Published on
    24-Jan-2016

  • View
    216

  • Download
    0

Transcript

  • Base de Datos Distribuidas

    Clase 1: Sistemas Distribuidos

    C1-Sistemas Distribuidos

  • Tolerancia a FallasFallos en SW o HW produce resultados incorrectos.Podemos utilizar dos aproximacionesRedundancia de HWHW en standby CostosGranularidad FinaUtilizacin en operaciones no-crticas cuando no hay fallas Duplicacin de base de datosEl server detecta errores y redirecciona a los peersRecuperacin de SWDatos permanentes pueden hacer rollback (Transacciones)Puntos de recuperacinExepcionesRed no redundateRedes tolerantes a fallas

    C1-Sistemas Distribuidos

  • NetworkingProveen comunicacin entre componentes del SDHW->circuitos, switches e interfaces.SW->Protocolos HW & SW->comunication subsystem (CS)Caractersticas del (CS)Parametros de PerformanceLatencia (L)Data Transfer Rate (TR)Tiempo de Transferencia de MSG=L+Length/TR Requerimientos de PerformanceAcceso similar al centralizado (15 ms)

    C1-Sistemas Distribuidos

  • Networking

    Caractersticas del (CS)Requerimientos de ConfiabilidadPara comunicacionesRealizado por SWTipos de RedesLANNo RoutingConecciones Directas10 y 100 msWANConectadas con HOSTSInvolucran paises, continentesPacket Switching (HW dedicado)

    C1-Sistemas Distribuidos

  • NetworkingTipos de RedesWANNecesidad de RoutingLatencia entre < 0.5 seg.Integrated Services Digital Networks (ISDN)->64 Kbits seg.Asyncronous Transfer Mode (ATM)->600 Mbits seg.Banda Ancha ISDN->150 Mbits seg. (point-to-point) packetPacketsUnidad lgica de transmisin->mensajeSe subdivide en paquetesTiene tamao fijoInformacin suficiente para indentificarReceptorEmisor

    C1-Sistemas Distribuidos

  • NetworkingInternetworksSD tienen como caracteristicas la escalabilidadNecesidad de tener mas computadorasIntegracin de redesVarias redes se integran dando facilidades comunes de comunicacinSe integran intercomunicando RoutersGatewayBridges ProtocolosTenemos una red virtualEjemplo: Internet

    C1-Sistemas Distribuidos

  • NetworkingTransmission Control Protocol / Internet Protocol (TCP/IP)En una red TCP/IP cada nodo esta relacionado a la red mediante al menos una interfaz. Cada una de esas inerfaces esta identificada por un numero de Internet Protocol (IP). Cada interfaz esta conectada a una subred con cierta tecnologia (Ethernet, Token Ring, frame relay, etc.). Si no tenemos TCP/IP cada nodo solo puede dialogar con otras maquinas que se encuentran en la subred.Cualquier par de nodos de la red puede hacer intercambio de datagramas de acuerdo al formato definido por IP. Estos datagramas van etiquetados con las direcciones IP del emisor y receptor y un protocolo.

    C1-Sistemas Distribuidos

  • NetworkingIPEl tipo de comunicacin basado en IP no satisface el tipo de aplicaciones en las que estamos intersados. IP puede:perder, romper, desordenar o duplicar datagramas.. No ofrece garantias de confiabilidad necesaria para las aplicaciones. Lleva datagramas de una maquina a otra, no puede determinar a que proceso dentro de la maquina. Esto es serio para una platadorma tipo UNIX en donde hay multiples procesos concurrentes.Por encima de IP se desarrollo Transmission Control Protocol (TCP) que soluciona los problemas descriptos. canal bidireccional confiable para el intercambio de bytes (no datagramas), no pierde datos y no los desordena. es capaz de atender varios procesos a la vez, manteniendo mltiples conexiones simultaneas. Para esto utiliza el puerto.

    C1-Sistemas Distribuidos

  • NetworkingTCPPor encima de IP se desarrollo (TCP) que soluciona los problemas descriptos. canal bidireccional confiable para el intercambio de bytes (no datagramas), no pierde datos y no los desordena. es capaz de atender varios procesos a la vez, manteniendo mltiples conexiones simultaneas. Para esto utiliza el puerto. Una conexin TCP se identifica con :dos direcciones IP (emisior y receptor) dos numeros de puertosAntes de utilizar TCP un proceso debe asociarse a uno de sus puertos, luego puede solicitar conexin.

    C1-Sistemas Distribuidos

  • NetworkingTCPTCP esta basado en el intercambio de paquetes. Esto se realiza a travs de IP, Los paquetes se encapsulan en datagramas IPTCP en el campor de protocolo de IP.Tambien se desarrollo el protocolo User Datagram Protocol (UDP) orientado a datragrama (no a conexin), es similar a IP solo que soporta la comunicacin sin conexin pero utilizando el concepto de puerto para comunicar procesos. UDP va encapsulado en datagramas IP pero con UDP en el campo protocolo de IP.

    C1-Sistemas Distribuidos

  • NetworkingTCP

    C1-Sistemas Distribuidos

  • NetworkingTCP/IPLos puertos TCP y UDP son disjuntos. Existen una serie de operaciones para comunicarse mediante TCP o UDP. basadas en sockets (Berkley) o TSAP si se aplica TLI (System V).Si un proceso necesita comunicarse con otro utilizando UDP necesita conocer el IP y el numero de puerto de su interlocutor. Tambien necesitaria los valores suyos Se dispone de una funcin para el envio de datagramas con al menos tres parametros (datos, IP y port del destinatario). Tambien tendremos una funcin para recibir datagramas.Con TCP la interaccin es ms complicada (orientada a conexin) apertura, intercamio de datos y cierre de la conexin.

    C1-Sistemas Distribuidos

  • NetworkingTCP/IPUn proceso debe asumir un actitud pasiva y otro una actitud activa.El pasivo queda esperando a que alguien quiera comunicarse con l, facilitando el puerto TCP en el que espera. La parte activa utiliza una funcin para abrir la conexin facilitando la direccin IP y el puero del extremo pasivo. El activo facilita su direccin IP y purto para que el activo tenga esta informacin.Cuando la conexin ya esta abierta se dispone de un canal bidireccional para el intercambio de bytes. Cada extremo puede leer y escribir de la conexin lo que el otro extremo haga.Cualquiera de los dos puede cortar la conexin. el extremo que corta debe dejar de enviar datos, pero puede seguir leyendo lo que quedo. El cierre no implica perdida de informacin.

    C1-Sistemas Distribuidos

  • NetworkingDirecciones IPEn TCP se debe manejar direcciones IP y nmeros de puertos. Hay algunos problemas con esto. Una direccin IP son 32 bits (long int) en formato big endian (primero el byte mas significativo). No todos los nodos representan los datos de la misma forma.Los puertos TCP o UDP son 16 bits int() en formato big endian.Para realizar codigo compatible existen funciones para traducitr numeros.u_long htonl(u_long hostlong); /* long, host to net */u_long htons(u_short hostshort); /* short, host to net */u_long ntosl(u_long hostlong); /* long, net to host */u_long ntoss(u_short hostshort); /* short, net to host */A pesar de ser direcciones representadas en 32 bits los numero IP tiene tambien una notacin de punto, por ejemplo 163.10.20.2

    C1-Sistemas Distribuidos

  • NetworkingNombresTodo el software esta basado en el uso de nmeros IP A los usuarios les he mas natural la utilizacin de nombres. Muchas maquinas en la red tienen asociado uno o mas nombres. por ejemplo pc10.lidi.info.unlp.edu.ar identifica la maquina pc10 del dominio lidi.info.unlp.edu.ar. No hay ninguna relacin con los nmeros de IP. Existen mecanismos de traduccin de nombre-IP, los mas habituales son:Utilizacin del fichero /etc/hosts en donde hay un conjunto de lineas con (nombre, nmero de IP). El problema que tiene es que todas las maquinas de la red necesitan tener este archivo y es dificil de mantener.Servicio de paginas amarilas com el Network Information Service (NIS) de SUN, que consiste en una base de datos equivalente a /etc/hostsDNS que es una base de datos distribuida.

    C1-Sistemas Distribuidos

  • NetworkingFunciones que permiter manipular los nombre y direccionesint gethostname(char *name, int namelen); /* Retorna nombre de la maquina en la que se ejecuta */unsigned long inet_addr(const char *cp); /* Traduce entre una direccion IP de punto y el orden de la red */unsigned long inet_network(const char *cp); /*hace los mismo pero da la direccion de la red */struct in_addr inet_makeaddr(const int net, const int lna); /* constriye a partir de una direccion de red y de computador una direccion completa de red */int inet_lnaof(const struct in_addr in); /* separan la direccion en dos partes, red y host */int inet_netof(const struct in_addr in); /* separan la direccion en dos partes, red y host */char *inet_ntoa(const struct in_addre in); /* retorna la notacion en punto de la direccion pasada como parametro */struct hostent *gethostbyname(const char name); /* */struct hostent *gethostbyaddr(const char *addr, int len, int type);

    C1-Sistemas Distribuidos