Georeferencias: almacenamiento

Chema Cortes pych3m4 en gmail.com
Mie Mar 1 10:14:54 CET 2006


On 3/1/06, Sebastian Lezica <slezica en fibertel.com.ar> wrote:

>     Me estoy volviendo loco armando una solución 'liviana', para la
> búsqueda de puntos geográficos próximos a unas coordenadas.
> [...]
>     Mis premisas eran las siguientes:
>     - Lo mas multiplataforma posible, si fuese puro Python mejor (el
> objetivo es ejecutarlo dentro de un hardware muy limitado en RAM y
> velocidad, con linux, y con una buena capacidad de almacenamiento).
>     - Una base de datos liviana y rápida, teniendo que cuenta que el
> acceso generalmente es solo lectura (mis pruebas las hice con Berkeley DB).
>     - El menor de uso en memoria posible, no me preocupa tanto el acceso
> al disco aunque si la velocidad final.
>[...]
> El problema:
>     Estoy probando con 250.000 registros (en realidad van a ser cerca de
> un millón), y mas allá del 'índice' (uso una lista de con las lat/lon de
> cada punto y el nro. de registro) con el cual la búsqueda es de lo mas
> veloz, a la hora de recuperar el registro de la base (tipo BTree, aunque
> según la doc. cuando son muchos registros, no hace diferencia si es de
> ese tipo o Hash) se pone muy lento.

Creo entender que la búsqueda la haces sobre una lista estándar, y
luego buscas el registro en la BSDDB por índice (btree/hash). ¿Has
probado con rnopen()? (recuperar registros por número de registro)

De todos modos, parace que el problema lo tienes en el sistema de
almacenamiento, no en el python o en la Berkeley.

Pytables es apropiado para realizar agregaciones geográficas (o
jerárquicas), pero no sé si es lo que necesitas o si es posible que
funcione en entornos de poca memoria (Francesc te lo podría asegurar).




Más información sobre la lista de distribución Python-es