A Wednesday 15 August 2007, David Worrall escrigué:
> On 15/08/2007, at 5:36 PM, [EMAIL PROTECTED] wrote:
> > On Wed, Aug 15, 2007 at 08:40:28AM +1000, David Worrall wrote:
> >> My RAM is 256Mb on OSX 10.4.10 (the latest).
> >
> > Mmmm, not so good ;)  I think what is happening is that your
> > computer is getting out of memory resources.  A Table node should
> > use around 1 MB of memory, and the number of slots in the PyTables'
> > node cache (NODE_MAX_SLOTS) is 256 by default.  This means that
> > with 256 MB you are completely filling it (i.e. the system will
> > start using swap), and that could be the source of the problem you
> > are experiencing. My advice is that you should try with a machine
> > with at least 512 MB, or better yet, try lowering NODE_MAX_SLOTS
> > to, say, 64.
>
> Arrrrrh! I made a mistake - it is actually 512Mb - sorry.

Mmm, in that case the memory should not be a problem.  In my tests with 
a 64-bit machine running Linux, your script doesn't consume more than 
340 MB to complete (and completes the 100,000 leaves without problems, 
as I said in a previous message), but in a 32-bit machine should be 
less than this.  So no clues on what is happening in your MacOSX box.

> >> Also, is there any reason why I can't/shouldn't use 2 or more .h5
> >> files in parallel (split the 3500+ top-level groups into two DBs)?
> >
> > As Ivan has already said, this perfectly fine with PyTables. 
> > However, this will only worse the memory problem, as each opened
> > file will have its own node cache, raising still more your memory
> > needs.  So, if you are dealing with a very large amount of nodes
> > and have not much memory available, it is better to stay with only
> > one opened file at a time.
>
> I understand that, however it means I might be able to find a way to
> meaningfully segment the DB so each segment-DB  is smaller.
> As I think I mentioned earlier, I did success in generating a
> complete DB by loading 1/2 of it, closing the file, quitting python
> and then starting again with the same file, adding the 2nd 1/2.

Ah, ok.  I understand now what you are trying to do.

> All that aside,
> 1. it is a worry that there is no exception generated, by python, at
> least,  don't you agree?

Yes, I do.

> 2. Is there a way of purging memory after a flush or are we up
> against python's memory management?

I think the thing to try first would be lowering NODE_MAX_SLOTS.  Have 
you tried this already?

Cheers,

-- 
>0,0<   Francesc Altet     http://www.carabos.com/
V   V   Cárabos Coop. V.   Enjoy Data
 "-"

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to