Hi, Sorry for polluting a bit the thread... =) I read again how BFS implements it's transactions, and if I understood correctly, the block cache stores all blocks of a transaction inside the transaction's list, and then the journal, when writing, simply iterates through the list to save the blocks. Did I understand correctly? If so, how can we find the difference between meta-data and data blocks? Or is this done specifically before we call the block cache (ie. setting a zero transaction ID when we get data blocks)? When running out of memory, how does the block cache handle dirty blocks (inside a transaction)? Hope I understand things a little better now =). Thanks, Janito _________________________________________________________________ Hotmail: Powerful Free email with security by Microsoft. https://signup.live.com/signup.aspx?id=60969