El propósito de este post es aumentar un poco la documentación(de usuario (?)) en español acerca de Tokyo Cabinet y Tokyo Tyrant, al principio me ha desanimado mucho el echo de que no se haya escrito casi nada acerca de esta joyita.
porque tokyo?? pues, simplemente por puras ganas, nada mas, me lo ha recomendado un profesor muy conocedor del tema y pues me enganche sin pensarlo, a pesar de haber leído y estudiado varios sistemas nosql, y a sabiendas que otros como Redis, Cassandra, MongoDB etc tienen mas documentación (en ingles) simplemente me quede, tal vez por testarudez.
Tokyo cabinet
escrito por uno de estos japoneses listillos llamado Mikio Hirabayashi, y patrocinado por Mixi inc, algo aso como un facebook en japon, La documentación oficial y el mejor repositorio para empaparse de todo esto, es por su puesto su pagina, allí encontraras todo lo necesario para leer después de esta pequeña introducción :)
TC es simplemente una librería en C con bindings para Python, PHP, Ruby etc… para almacenar datos, nada de servicios, nada de puertos, nada de conexiones nada de nada, simplemente eso, una librería que utilizas desde tu aplicación para abrir un archivo y empezar a escribir en el como si de la función fopen() se tratara.
lo interesante de todo esto es que no solo puedes almacenar tus datos en bases de datos clave-valor, si no que tienes a disposición bds binarias B+Tree que te permiten duplicidad de claves, bds fixed-length donde todo se almacena como si fuese un arreglo y table database, la mas sencilla a mi parecer con una teoría algo parecida a la de Bigtable, cada una con su características, siendo, en mi opinión, las mas interesantes la hash database y B+Tree database.
uno de los puntos gordos de todo esto son las características técnicas pues con solo saber que se demora + o - 0.7 segundos en almacenar un millón (1.000.000) de registros en una base de datos hash, descresta a cualquiera, y no solo esto, si no las capacidades de replicación y escalabilidad harían gritar a muchos.
entonces, porque no darle una oportunidad ?? en si, la aplicación y utilización de este monstruo es sencilla, lo complicado viene a la hora de modelar un entorno real utilizando solo claves y valores.
Tokyo Tyrant
Es tan solo una interfaz en red escrita por el mismo Mikio para Tokyo Cabinet, lo que significa que aqui es donde realmente está el servicio, ya con esto es un poco mas parecido a un entorno tipo MySQL, pues TT te abre un puerto y lo enlaza con una base de datos a través de Tokyo Cabinet, proveyéndote de un sencillo protocolo que puedes hablar desde tu aplicación para setear y recuperar datos. algo interesante de esto es que no lo necesitas realmente para trabajar con TC, pues, por así decirlo, es un servicio completamente adyacente.
todo esto ha sido una muy pequeñisima introducción a Tokyo, luego publicaré un ejemplo sencillo de como utilizar TT atravez de Python, por ahora les dejo un par de enlaces (en ingles) casi que necesarios para empezar con todo esto.
Presentacion Ofical de Tokyo Cabinet y Tokyo Cabinet - lo que no se menciono acá :)
Explicacion algo tecnica y con ejemplos - un articulo recomendado, lastima que los ejemplos estén en ruby
Comments powered by Disqus