Ah, that's good to know.  Yes, I see definitely the warning is helping 
people to flush periodically and helping preventing data corruption.

Thanks for the feedback,
Francesc

On 6/10/13 5:16 PM, Edward Vogel wrote:
> I initially didn't sync at all until after completing writing - about 
> 1 million rows total. My main concern was preventing data corruption. 
> After seeing the warning I had a sync for every iteration of the inner 
> loop, which was slow. Syncing after the inner loop is a little slower 
> than not syncing, but seems fine.
> Thanks,
> Ed
>
>
> On Mon, Jun 10, 2013 at 4:37 PM, Francesc Alted <fal...@gmail.com 
> <mailto:fal...@gmail.com>> wrote:
>
>     Hi Ed,
>
>     After fixing the issue, does performance has been enhanced?  I'm
>     the one
>     who put the warning, so I'm curious on whether this actually helps
>     people or not.
>
>     Thanks,
>     Francesc
>
>     On 6/10/13 3:28 PM, Edward Vogel wrote:
>     > Yes, exactly.
>     > I'm pulling data out of C that has a 1 to many relationship, and
>     > dumping it into pytables for easier analysis. I'm creating extension
>     > classes in cython to get access to the C structures.
>     > It looks like this (basically, each cv1 has several cv2s):
>     >
>     > h5.create_table('/', 'cv1', schema_cv1)
>     > h5.create_table('/', 'cv2', schema_cv2)
>     > cv1_row = h5.root.cv1.row
>     > cv2_row = h5.root.cv2.row
>     > for cv in sf.itercv():
>     >     cv1_row['addr'] = cv['addr']
>     >     ...
>     >     cv1_row.append()
>     >     for cv2 in cv.itercv2():
>     >         cv2_row['cv1_addr'] = cv['addr']
>     >         cv2_row['foo'] = cv2_row['foo']
>     >         ...
>     >         cv2_row.append()
>     >     h5.root.cv2.flush()  # This fixes issue
>     >
>     > Adding the flush after the inner loop does fix the issue. (Thanks!)
>     > So, my followup question, why do I need a flush after the inner
>     loop,
>     > but not when moving from the outer loop to the inner loop?
>     >
>     > Thanks!
>     >
>     >
>     >
>     > On Mon, Jun 10, 2013 at 2:48 PM, Anthony Scopatz
>     <scop...@gmail.com <mailto:scop...@gmail.com>
>     > <mailto:scop...@gmail.com <mailto:scop...@gmail.com>>> wrote:
>     >
>     >     Hi Ed,
>     >
>     >     Are you inside of a nested loop?  You probably just need to
>     flush
>     >     after the innermost loop.
>     >
>     >     Do you have some sample code you can share?
>     >
>     >     Be Well
>     >     Anthony
>     >
>     >
>     >     On Mon, Jun 10, 2013 at 1:44 PM, Edward Vogel
>     >     <edwardvog...@gmail.com <mailto:edwardvog...@gmail.com>
>     <mailto:edwardvog...@gmail.com <mailto:edwardvog...@gmail.com>>>
>     wrote:
>     >
>     >         I have a dataset that I want to split between two
>     tables. But,
>     >         when I iterate over the data and append to both tables,
>     I get
>     >         a warning:
>     >
>     > /usr/local/lib/python2.7/site-packages/tables/table.py:2967:
>     >         PerformanceWarning: table ``/cv2`` is being preempted from
>     >         alive nodes without its buffers being flushed or with some
>     >         index being dirty.  This may lead to very ineficient use of
>     >         resources and even to fatal errors in certain situations.
>     >          Please do a call to the .flush() or .reindex_dirty()
>     methods
>     >         on this table before start using other nodes.
>     >
>     >         However, if I flush after every append, I get awful
>     performance.
>     >         Is there a correct way to append to two tables without
>     doing a
>     >         flush?
>     >         Note, I don't have any indices defined, so it seems
>     >         reindex_dirty() doesn't apply.
>     >
>     >         Thanks,
>     >         Ed
>     >
>     >
>     
> ------------------------------------------------------------------------------
>     >         This SF.net email is sponsored by Windows:
>     >
>     >         Build for Windows Store.
>     >
>     > http://p.sf.net/sfu/windows-dev2dev
>     > _______________________________________________
>     >         Pytables-users mailing list
>     > Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>
>     >         <mailto:Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>>
>     > https://lists.sourceforge.net/lists/listinfo/pytables-users
>     >
>     >
>     >
>     >
>     
> ------------------------------------------------------------------------------
>     >     This SF.net email is sponsored by Windows:
>     >
>     >     Build for Windows Store.
>     >
>     > http://p.sf.net/sfu/windows-dev2dev
>     >     _______________________________________________
>     >     Pytables-users mailing list
>     > Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>
>     >     <mailto:Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>>
>     > https://lists.sourceforge.net/lists/listinfo/pytables-users
>     >
>     >
>     >
>     >
>     >
>     
> ------------------------------------------------------------------------------
>     > This SF.net email is sponsored by Windows:
>     >
>     > Build for Windows Store.
>     >
>     > http://p.sf.net/sfu/windows-dev2dev
>     >
>     >
>     > _______________________________________________
>     > Pytables-users mailing list
>     > Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/pytables-users
>
>
>     --
>     Francesc Alted
>
>
>     
> ------------------------------------------------------------------------------
>     This SF.net email is sponsored by Windows:
>
>     Build for Windows Store.
>
>     http://p.sf.net/sfu/windows-dev2dev
>     _______________________________________________
>     Pytables-users mailing list
>     Pytables-users@lists.sourceforge.net
>     <mailto:Pytables-users@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/pytables-users
>
>
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
>
>
> _______________________________________________
> Pytables-users mailing list
> Pytables-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pytables-users


-- 
Francesc Alted


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to