You are on page 1of 5
siwe0ts ‘Spanner: una 8D do escalaplanolria | holaMundo fWholaMundo_ Revista de Ingenieria, Tecnologias de la hifcrmacion y la Comunicacion © Mowvilidad y Comunicaciones © Industria © Biotecnologia © Robitica © Procesamiento © Opinién «© Descargas + Login Buscar Buscar Spanner: una BD de escala planetaria Concurso Otofio2014 Actualmente, la demanda de almacenamiento de medios digitales es cada vez mayor. Queremos un lugar seguro donde podamos guardar nuestras fotos, tareas, correos y toda nuestra vida digital. Alfonso Kim 26 noviembre 2014 Femando Aguilar Reyes 1. Introduccién ‘Actualmente, la demanda de almacenamiento de medios digitales es cada vez mayor. Queremos un lugar seguro donde podamos ‘guardar nuestras fotos, tareas, correos y toda nuestra vida digital, {Que seria de nosotros si no tuvigramos a la mano esa foto de ‘cuando teniamos 3 afios? No sélo eso, ademés de querer almacenar maltiples copias de nuestros archivos en distintos lugares: itpahewwolamundo mxtspannor-bolamundo-2 45 ‘nitea01s ‘Spanner: una 8D do escalaplanolria | holaMundo computadora, celular, memoria USB, etc, queremos que cada copia esté sineronizada con todas las dems. ‘Al guardar fisicamente nuestros archivos en distintos dispositives de almacenamiento, enfrentamos el problema de cémo organizar «30s datos. Sin embargo, cuando se trabgja con una infinidad de datos, las cosas se complican. Primero, tenemos que distribuir los datos entre varios discos duras y varias computadoras. De esta forma, los problemas de fallos en l hardware, como cuando se quema un CPU, dejan de ser primordiales. Luego, hay que lidiar con los errores de corrupcin de datos. Por ejemplo, cuando accidentalmente borramos un registro dela base de datos © cuando la computadora no fue apagada correctamente, Por esta razin, es mejor replicar nuestra informacién para sortear esta fllas. Aunque, ;e6mo es posible replicar millones de servidores alrededor del mundo autométicamente? ;Qué debemos hacer para que la informacion entre réplias sea consistente? 2. Antecedentes Imagina una empresa fundada por dos personas que, en menos de 15 afios, es ccapaz de influir en los resultados de las clecciones de los Estados Unidos [1]. Asi es, se trata de nada mas y de nada menos que de Google. ‘Se estima que en el 2013, se realizaron en el buscador de Google 5,922 millones en promedio de consultas por dia [2]. Si cada consulta produce | megabyte de datos en bitécoras de biisqueda y més informacién relacionada, entonces podemos estimar que se produjeron en promedio 6,000 terabytes diarios de datos. Algunas bases de datos modemas como SQL Server pueden soportar estas cargas de trabajo [3], pero seria impréctico mantener diariamente una base de este tipo, sin mencionar el esfuerzo administrativo de respaldo que esto implica, asi como el hardware especializado necesario para dicha tarea, {Qué tal MongoDB, CouchDB o Cassandra? Se trata de bases de datos NoSQL que no tienen un esquema asoviado y que gracias a su disefo, son répidas y baratas, Sin embargo, las aplicaciones, el software, programas y sistemas evolucionan con el paso del tiempo; y con ello, la forma de estructurar los datos dentro de las aplicaciones, también. Muchas veces, las ventajas de las bases de datos no telacionales se convierten en desventajas cuando el software evoluciona y no hay un esquema que imponga estabitidad relacional Debido a la inmensa carga de trabajo que reciben los productos de Google, sus ingenieros empezaron a construir herramientas, plataformas y software especializado disefiado a la medida de sus requisites, enfocandose principalmente en cl rendimiento. Uno de los primeros productos es el Google File System [4]. Se trata de un sistema de archivos distribuido y optimizado para el rendimiento y la tolerancia a fallas. Después, llegé BigTable [5] el cual aparecié en escena como una base de datos NoSQL que funcionaba con los servicios de bajo nivel proporcionados por Google File System. Todos estos productos, que se destacan por ser libres de las restricciones de consistencia de las bases de datos relacionales, han resultado éptimos para ciertas aplicaciones. Sin embargo, los beneficios de los sistemas relacionales, como la capacidad de restringir tipos de datos y Ia seméntica de los mismos, son muy itiles a la hora de desarrollar software. Ast que de esta forma, Google diseiié y ereé Spanner, una base de datos distribuida,tolerante a fallos y con gran capacidad de replicacién automética a nivel intercontinental. En este articulo, haremos una introduccién a las principales caracteristicas de Spanner. 3. Replicacién y disponibilidad {Cual es la ventaja de replicar? Resulta sencillo responder a la pregunta: si tienes varias copias de los datos, puedes mantener el funcionamiento de tu sistema en caso de que algin servidor con una réplica falle y detenga su funcionamiento, Por ello, Spanner utiliza esta idea para garantizar la disponibilidad de los datos, incluso ante la falla de un centro de datos entero. A.un despliegue de Spanner se le denomina universo, Recordemos que un despliegue de Spanner puede comprender varios centros de datos distribuidos entre continentes. A su vez, un universo se divide en unidades administrativas llamadas zonas. Cada zona es hpthewaholamundo.mx'spane-olamundo-2) as siwe0ts ‘Spanner: una 8D do escalaplanolria | holaMundo ‘encargada de administrar un centro de datos con miles de servidores; sin embargo, un centro de datos puede tener varias zonas desplegadas. Finalmente, cada zona tiene un universemaster, utilizado para monitorizar y depurar el despliegue, y un placement drive, cuyo propésito es administrar la migracién de datos entre varias zonas, Ahora bien, una zona esta compuesta de varios componentes descritos a continuacién: Zonemaster: encargado de los algoritmos para coordinar las replicaciones. Location proxies: se utilizan para que los clientes conectados a la zona puedan localizar a los spanservers que tienen los datos que necesitan ‘Spanservers: son las unidades de almacenamiento de datos, los cuales pueden tener varias copias de los datos. ‘Analicemos a los spanservers, puesto que almacenar datos distribuidamente tiene sus complicaciones. En las bases de datos relacionales, la tabla cs cl conjunto de datos primordial compuesta por varias filas, las cuales tienen un nimero fijo de datas, de tal ‘modo que la tabla tenga un numero fijo de columnas, Por otzo lado, en Spanner el conjunto de datos principal es un directorio, el cual se compone de un grupo de tuplas, de la forma , que tienen un prefijo comin en la llave. De esta forma, un directorio es similar una tabla. Cuando es necesario mover datos, lo que se mueven son directorio. Las tuplas y los directorios se almacenan en los spanservers mediante una estructura de datos llamada tablet. Cada spanserver puede almacenar entre cien y mil tablets, y para coordinar la replicacién de datos entre spanservers de la misma zona, se utiliza una biblioteca que implementa el algoritmo de Paxos [6]. Este algoritmo permite que los spanservers lleguen a un acuerdo comiin con el valor a escribir en la tablet. En el caso de que se necesite mover o replicar datos entre varias zonas, se utiliza al placement driver ‘como lider del algoritmo de Paxos, asi como a los lideres de cada zona (que son los lideres elegidos a través del algoritmo de Paxos) para coordinar la operacién. Cabe resaltar que esta administracién de réplicas es totalmente automitica, de esta manera los ingenieros de Google solo tienen que preocuparse por la configuracién inicial y el monitoreo del sistema en general. ;Magia! 4. Tiempo y consistencia {Qué es el tiempo? Desde épocas remotas, este concepto ha sido un objeto de estudio, a tal grado que casi todas las reas del onocimiento humano tienen su propia definicién de lo que es el tiempo. En cuanto al cémputo distribuido, podemos definir el tiempo como una dimensién en la que ordenamos los eventos en pasado y futuro a través del presente, Cuando almacenamos, actualizamos y recuperamos datos es importante considerar el orden temporal de las operaciones, ya que queremos actualizar datos que fueron previamente almacenados, y si consultamos los datos después de una actualizacién, queremos ver reflejados los itimos cambios en la informacién. Cuando los datos reflejan correctamente las ‘operaciones que sc han hecho en ellos a través del tiempo, podemos considerar que son consistentes. Para ordenar las operaciones que se efectiian sobre la informacién en ambientes distribuidos, se usan estampas de tiempo 0 timestamps; esto es, cada operacién hecha en los datos se transite con una etiqueta que indica la hora en la que la operacién fue realizada. Un ejemplo de una operacién con un timestamp es {“Actualizar registro 1072", “2014-03-25 10:24:47"). De esta forma, todas las computadoras pueden ordenar los eventos y mantener una consistencia entre las distintas réplicas, ‘Sin embargo, mantener esta consistencia cuando la base de datos est distribuida en millones de computadoras, como en Spanner, puede ser muy complicado, ya que cada computadora puede tener una hora distinta, o peor, el reloj de las computadoras que almacenan la informacién puede trabajar a distintas frecuencia, lo que provocaria que las computadoras ordenen los eventos en una secuencia diferente a la que realmente ocurrieron. De aqui, surge la necesidad de mantener actualizados los relojes de las computadoras donde estin distribuidos los datos. Google usa intermamente un servicio que provee la hora exacta: TrueTime, la cual esté implementada bajo 2 estindares: GPS y Tiempo Atémico. El primero, basado en scitales de 3 o mis satélites que cn conjunto indican la posicién geogrifica exacta de un receptor en la Tierra; para hacerlo se basa en la medicién de fos retrasos temporales, en la entrega y recepcién de dichas sefales. De esta manera, GPS brinda una medicién de tiempo de alta precisién, Por otro lado, tiempo atémico esta dado por un conjunto de relojes atémicos en la Tierra, aunque en realidad, los satélites GPS usan relojes atémicos para el edleulo de la hora exacta, En la implementacién de Spanner, la mayoria de los servidores zonemasters estin equipadas con antenas GPS y fisicamente estin separados entre si para reduc la interferencia ent las sefales y reducir el riesgo de fallas en las antenas y del servicio de GPS en si. El resto de los servidores estin equipados con relojes atémicos, {Pero qué es un reloj atémico? Es un dispositivo de muy alta precisién que mide el tiempo, especificamente mide los segundos. Para hacerlo, el reloj usa dtomos de algim elemento quimico estable, generalmente el Cesio. Dentro del reloj hay un oscilador y un ‘gas que altera los electrones de los atomos de Cesio, y cuando estos electrones cambian en sus niveles de energia emiten una radiacién periédica, Al completar 9,192,631,770 periodos, se considera que ha transcurrido un segundo, Este esquema de redundancia entre ambos protocolos, asegura la disponibilidad de la hora exacts, ya que los dos sistemas de tiempo tienen mecanismos de fallas que no se correlacionan entre ellos, asegurando la mejor sineronia en todos sus servidores, De esta forma, los ingenicros de Google pueden estar tranguilos de que los relojes de sus mAquinas siempre tendrin la hora correcta, evitando errores en la sineronizacién de informacion en ambientes distribuidos, de tal suerte que aunque las actualizaciones de los datos ocurran en computadoras distintas, se puede asignar un orden total (global) de eventos que le indique a cada servidor como actualizar los datos. 5. Conelusiones El esfuerzo por mantener la consistencia y el tiempo entre los centros de datos que mantienen Spanner es enorme, La razén de este trabajo se debe a que, utilizando la replicacién automatica y una medicién precisa del tiempo global a través de las zonas de hpthewaholamundo.mx'spane-olamundo-2) Po siwe0ts ‘Spanner: una 8D do escalaplanolria | holaMundo ‘Spanner, es posible manejar transacciones en las operaciones de la base de datos, garantizando la consistencia de los datos entre operaciones. Con ello, tenemos una base de datos con un rendimiento excepcional, capacidades planetarias y caracteristicas de cconsistencia de una base relacional, Incluso, Spanner ha dado origen a una nueva categoria de sistemas de bases de datos: NewSQL. Referencias [1] Ferenstein, Gregory (2014, Mayo 19) "Google search results could actually change election, , study shows". [En line], Disponible en: hitp//venfurcheat.com/2014/05/13/poogle-search-resuls-could-actually-change-cletions-study-shows [2] Google Official History, Comscore 2011, Mayo 20). "Google Annual Search Statistis | Statistic Brain. [En linea]. Disponible en: htips/Awww. staistichrain,com/google-searches! [3] Cox, Kevin (2014, Mayo 20) "Largest SQL Server Projects inthe world - QSSUG org". [En linea). Disponible en: hipi/www qssug.ore/Content/Media/DB323%420SOLCAT%20COX420L argest¥4208Q1.%420projects’420in%420the™420World.ppix [4] S. Ghemawat,, Howard GobiofT, and Shun-Tak Leung. "The Google file system.” ACM SIGOPS Operating Systems Review, 2005, pp. 29-43. [5] F. Chang, cal. "Bigtable: A distributed storage system for structured data.” ACM Transactions on Computer Systems (TOCS), 2008. [6] L. Lamport, "The part-time parliament", ACM Transactions on Computer Systems (TOCS), 1998, pp. 133-169. ‘Comparte este articulo: Alfonso Kin Maestria de Ciencias en Computacién fernando Assia teus © [EM Ingenieria en Computacién Code monkey de holaMundo € ose También En HolaMundo: hpthewaholamundo.mx'spane-olamundo-2) 48 ‘nitea01s ‘Spanner: una 8D do escalaplanolria | holaMundo ina solucién a los grandes datos Google: Disefiando centros de datos a escala global 3 Una Pyzca de Python Los Comentarios estin cerrados. Siguenos en: * FAQs \- au]. + 2013 © Todos los derechos reservados. holaMundo es una revista universitaria, sin fines de lucro, cuyo tiraje es de 1000 ejemplares por numero y su reproduccién es gratuita, Prohibida la reproduccién total o parcial de esta publicacién o de cualquier articulo o imagen que la conforman sin autorizacién previa y por escrito del titular de los derechos y cl conscjo editorial. Las “opiniones reflejadas en los articulos son responsabilidad de su(s) autor(es) y no reflejan, necesariamente, la opinién de holaMundo, Este sitio web fue disefiado, especialmente para holaMundo, por V. Martinez y F. Aguilar. hpthewaholamundo.mx'spane-olamundo-2)

You might also like