Re: [IRC-DEV] Base de datos distribuida y arranque "frío" de nodos

Jesus Cea jcea at argo.es
Mon Feb 6 20:05:44 CET 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Internet Relay Chat wrote:
> El método más sencillo que se me ocurre es, simplemente, que cuando se 
> agreguen nuevos registros no nulos a la tabla n, el nodo verifique si tiene 
> de forma local algún usuario con ese nick y sin el flag +r, y, en el caso de 
> que tenga alguno, efectúe un KILL con un motivo como "Uso no autorizado de 
> nick registrado".

El problema es que lo que propones es válido para la tabla "n", pero hay
más tablas y en el futuro podrían ser interesantes. Un ejemplo evidente
es el registro que indica si un nick puede tener 15 caracteres o está
limitado a 9. O el control de IPs virtuales personalizadas. Y a saber
qué se añadirá mañana. El esquema propuesto en mis mensajes anteriores
garantiza que la BDD es estable y está actualizada, sea cual sea su
semántica. Considero que eso es MUY importante.

Y no creo que la gente sepa evaluar la razón de un "KILL", y mucho menos
si no lo ve porque la conversación va por privado, y no en un canal :).
Por cierto, yo haría un rename, no un "KILL". Pero sigo prefieiendo mi
propuesta. Me parece más genérica.

>   -No sé cuando tomaste esos datos, pero en estos momentos los datos de la 
> tabla n en hispano son:
> Tabla 'n' S=010399753 R=000111503 (hace un rato era Tabla 'n' S=010399668 
> R=000111498), esto es: 5 nuevos registros y 85 modificaciones!!! Ciertamente 
> parece interesante compactarla...

Obviamente no has visto la tabla "n" en el disco duro de tu servidor de
IRC :-p. Sabras que es "append only", así que cuando se elimina un
registro o se le da un valor viejo, los datos antiguos siguen ahí,
ocupando sitio. Por eso hace falta compactar, para que la carga de la
BDD sea más rápida (algo que soluciona también la BDD persistente por
MMAP, que fue de lo último que hice para IRC-Hispano), no se te llene el
disco duro y los netjoin sean "razonables".

En otras palabras, si repites un millón de veces "dar del alta el
usuario X", "dar de baja el usuario X", tendrás un único registro en la
base de datos (el usuario X), pero dos millones de registros en el disco
duro que tendrás que releer y procesar al reiniciar el servidor (a menos
que uses mi funcionalidad de BDD persistente), y transferir cuando entra
un nodo en un split y tiene la BDD anticuada o no tiene BDD alguna.

Los datos que di en el email anterior los obtuve en "directo" del disco
duro de un servidor de IRC-Hispano. Osea, van a misa :).

Por favor, limita tu "quoteo" :). No repitas todo mi mensaje ENTERO :-p

Sobre lo de si entro o no al IRC, o si me expira el nick, queda entre yo
y mi novia :-p. Por supuesto cualquier cosa que dijese hace un año está
anticuada en, al menos, once meses y tres semanas :-p

- --
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBQ+eeCJlgi5GaxT1NAQKMEgP+MDqBdhAukCX3YqAYfYFb8ueeCMAiR7H+
NfWFvSEXyEdnJkS2AwcGb+haIHZMtJYdQYlHc36DRzz+DVuarsorIGz2hyx1Bfa6
zT3DxqsPCKSpfn7t415rEwRQGJZxMx7nN4NOpdeEYbub1iJW2haT1gl9eXBtRCi4
aOwb0k2Jh60=
=HXK4
-----END PGP SIGNATURE-----



More information about the IRC-Dev mailing list