Thanks for the question; I didn't personally work on the MVCC code and the
discussions I'd been on didn't specifically discuss handling of children. So,
had to chat with Jason Greene and look into the code, both of which are always
good. :-)
As you said getChildren(Names) is a read operation,
Indirectly, the parent node *does* include state information like info about
number of nodes. Not directly, i.e. in the node's attribute map. But
indirectly, via the getChildren() and getChildrenNames() methods. If your
application uses those methods and counts on transactional consistency in
Thanks Brian. I think I kind of get the implication. However, arent
getChildren or getChildrenNames methods considered read operations, and if so,
with mvcc, the reads wouldnt need a write lock anyway. The read calls would
return something that is based on isolation level (REPEATABLE_READ)