[pyar] Render de CDPedia

Alejandro J. Cura alecu en protocultura.net
Jue Nov 19 00:01:40 ART 2015


2015-11-18 10:18 GMT-03:00 Manuel Kaufmann <humitos en gmail.com>:
> Hola a todos,
>
> En PyCon estuve hablando con "pindonga" y le comenté que el server de la
> CDPedia me come la Raspi y me preguntó "No puede ser, si es todo HTML
> estático. ¿Cómo hace el render de las páginas?"
>
> Y bueno, hoy en día tengo la misma pregunta. ¿Las páginas se renderizan
> desde Python o son estáticas y Python se usa solo para el buscador?
>
> ¿Qué tan complejo puede ser migrarlo a algo más estático, o en su defecto
> quitarle Python del todo y que sea 100% estático?
>
> Es algo que personalmente me interesa tener dentro de la RaspberryPi.

El formato de archivo de la CDPedia está optimizado para comprimir lo
máximo posible cada artículo, tratando además que el tiempo de acceso sea
razonable en un CD o DVD.

No sirve usar un formato como Zip, donde cada artículo estaría comprimido
independientemente de los demás artículos, porque el algoritmo de
compresión no aprovecharía la redundancia que existe en todos ellos.

Por eso hicimos que cada archivo de CDPedia (archivo .cdp o "bloque")
contenga la concatenación de muchos artículos, uno atrás del otro. A los
algoritmos de compresión les encanta esto, y producen resultados muchos más
chicos. Además se arma un índice que dice en que "byte" de la salida
descomprimida comienza cada artículo.

Como contra, cada vez que querés acceder a un artículo, tiene que
descomprimir en promedio la mitad de los artículos que están antes.

Para el caso de uso inicial de CDPedia, esto es aceptable, porque ya es muy
lenta el mover la cabeza de lectura dentro de un artí

Pero no usamos un sólo archivo con absolutamente todos los artículos de
wikipedia, sino que hacemos un hashing y repartimos los artículos entre
muchos archivos.

El balance está en encontrar el número de archivos .cdp para que la
búsqueda sea lo suficientemente rápida, y la cantidad de compresión sea
razonable.

Todo eso para explicar qué es lo que se está comiendo tu CPU.
Ahora mando otro mail contestando las otras preguntas. Je.

abrazo,
-- 
alecu
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151119/0cba9642/attachment-0001.html>


More information about the pyar mailing list