[pyar] Me recomiendan un diccionario?

Gustavo Campanelli gedece en gmail.com
Vie Feb 28 11:39:35 ART 2014


2014-02-28 11:35 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:

> Las consultas son archi- dispersas, en realidad
>
>
> 2014-02-27 22:07 GMT-03:00 Ezequiel Brizuela [aka EHB or qlixed] <
> qlixed en gmail.com>:
>
> Totalmente... arma paquetes de datos y mantenel9s en diaco. Despues, si
>> las consultas no son muy dispersas respecto a los rows q seleccione anda
>> levantando la data a memoria mmapeando el archivo.
>>
>> Si son varias las consultas a hacer, podrias hacer (para arrancar) una
>> cache lru en memoria, xon eso las primeras consultas serian lentas... pero
>> en base al cache hit ratio se van a ir acelerando.
>>  El feb 27, 2014 7:39 PM, "Gustavo Campanelli" <gedece en gmail.com>
>> escribió:
>>
>>
>>>
>>>
>>> 2014-02-27 19:34 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>>>
>>>> sin repeticiones. como dije, es algo que tiene la semantica basica de
>>>> un dict() en python.
>>>>
>>>>
>>>> 2014-02-27 19:32 GMT-03:00 Gustavo Campanelli <gedece en gmail.com>:
>>>>
>>>>
>>>>>
>>>>>
>>>>> 2014-02-27 17:46 GMT-03:00 Daniel Moisset <dmoisset en machinalis.com>:
>>>>>
>>>>>> Hola,
>>>>>>    ando necesitando algo que, por un ratito me guarde varias
>>>>>> asignaciones clave valor y despues poder consultarlo por clave, para
>>>>>> obtener el valor asociado.
>>>>>>
>>>>>> O sea, necesito un dict().
>>>>>>
>>>>>> Mi problema es que:
>>>>>>  - tengo que guardar >40 millones de asociaciones, donde cadena+valor
>>>>>> son en promedio 50 bytes de utf8
>>>>>>  - tengo que hacer ~20 millones de consultas
>>>>>>
>>>>>> Con lo cual un dict() me anda en una maquina con de 64-bits con buena
>>>>>> RAM, y prefiría que los requerimientos sean un poco mas modestos
>>>>>>
>>>>>> Mi patron de uso es bien simplon. Primero genero todos los datos y
>>>>>> los cargo, despues hago todas las consultas, despues tiro el "diccionario"
>>>>>> a la basura (no me interesa persistirlo ni nada).
>>>>>>
>>>>>> Se me ocurren infinitas (muchas) formas de hacerlo. Puedo usar un
>>>>>> sqlite, un mongo, una berkeleydb, y muchas mas. La pregunta es:
>>>>>>
>>>>>> ¿que usarian ustedes que tenga una buena combinación de performance y
>>>>>> simpleza? [dentro del use-case que mencioné]
>>>>>>
>>>>>> Gracias,
>>>>>>     D.
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> pyar mailing list pyar en python.org.ar
>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>
>>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>>
>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>
>>>>>
>>>>>
>>>>> Te hago una consulta más, porque una segunda lectura del problema me
>>>>> hizo pensar. Hablas de asociaciones. ¿Eso sería tipo A:B C:D E:F, etc, etc,
>>>>> sin repeticiones, o sería del tipo A:B A:C E:F B:F, etc, etc? Porque son
>>>>> casos muy distintos y ambos son asociaciones de dos valores.
>>>>>
>>>>> Gedece
>>>>>
>>>>> _______________________________________________
>>>>> pyar mailing list pyar en python.org.ar
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>> Segunda consulta ¿Podes generar datos en varios grupos separados o hay
>>> que generarlos todos de un saque por alguna razón distinta a "Comodidad"?
>>>
>>> Gedece
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

¿Y si encaras el problema en forma inversa? Como los datos no se repiten, a
medida que los usas poder borrar la entrada, con lo que el programa ocupa
cada vez menos memoria.

Gedece
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140228/8d0a9068/attachment.html>


More information about the pyar mailing list