The presence of a region can act as a "hint" about related data. Meaning a
region root node represents the lowest level of unrelated data. For example, we have a
region
/JSESSION/localhost/webapp1
In buddy backup we have:
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session1/attrA
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session1/attrB
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session2/attrA
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session2/attrB
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session3/attrA
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/session3/attrB
The background thread recognizes the existence of the
/JSESSION/localhost/webapp1 region and therefore starts iterating over the children of
/_BUDDY_BACKUP/CacheA:dead_0//JSESSION/localhost/webapp1/ migrating one child at a time.
I recognize this example is very much tailored to my particular use case, but actually in
every JBC app I've written a region has that kind of meaning.
A "structural" node marker can be used instead of a region, and more cleanly
indicates the meaning, since the region concept is so overloaded.
Re: usefulness, I think it's pretty necessary. With buddy groups / data partitions by
default having 2 members, one member leaving means only 1 copy of data. Admins have to be
very careful 1) to know what node has that backup data and 2) not to remove that node fom
service until they are sure that data isn't needed any longer -- which typically means
waiting a 1/2 hour or more. That means a simple rolling upgrade of a 4 node cluster takes
over 2 hours, which is probably longer than a lot of service windows. Larger cluster
takes longer.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4135102#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...