On 2012年08月20日 13:15, MORITA Kazutaka wrote: > At Thu, 9 Aug 2012 13:27:41 +0800, > levin li wrote: >> >> From: levin li <xingke....@taobao.com> >> >> The new joined node doesn't have the vdi copy list, or have >> incomplete vdi copy list, so we need to fetch the copy list >> data from other nodes > > It makes code complex to store the copy list in local store because > it's difficult to keep consistency of the data. > > I'd suggest gathering both vid and copy list with SD_OP_READ_VDI > requests at the same time. Then we can remove this patch and simplify > 5th patch a lot. > > Thanks, > > Kazutaka >
How about this: We don't store the VDI copy list locally, but read it from the local VDI inode object when a node starts up, and in update_cluster_info() we collect the entire VDI copy list from other nodes just as what get_vdi_bitmap() does, but a little different from get_vdi_bitmap(), we can not make it perform asynchronously if the node needs recovery, because we need the VDI copy list in recovery, the solution is that in prepare_object_list() we make sheep sleeps until it find that the get_vdi_copy_list() is finished. thanks, levin -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog