You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
with a nested catalog at each directory; and a transaction that adds TOP/L1/4 with a lease path of TOP/L1/4. DiffRec will make the early recursion stop check
I think that's a good idea! If I'm not mistaken, TOP/L1/{1,2,3} are even ignored paths, not only unreportable paths. For ignored paths, we know that the recursion will stop and that we never report them. Looks like it is safe to immediately move on when old_path or new_path should be ignored (while still moving the iterators i_from, i_to accordingly).
I think it does the job. Yes, it should be fine to move it up. And it is sufficient to check for old_path or new_path because we already know that they are identical.
We can also, I think, make a similar optimization for the ReportAddition and ReportRemoval branches. We then may want to remove the IsIgnoredPath() check at the beginning of the method.
I think it does the job. Yes, it should be fine to move it up. And it is sufficient to check for old_path or new_path because we already know that they are identical.
We can also, I think, make a similar optimization for the ReportAddition and ReportRemoval branches. We then may want to remove the IsIgnoredPath() check at the beginning of the method.
I agree, the changes would essentially replace the check at the start of the function as an even early recursion stop. Provided it's implemented correctly (i.e. as you mentioned do it for ReportAdditional and ReportRemoval as well)
Consider the directory structure:
with a nested catalog at each directory; and a transaction that adds
TOP/L1/4
with a lease path ofTOP/L1/4
.DiffRec
will make the early recursion stop checkcvmfs/cvmfs/catalog_diff_tool_impl.h
Lines 186 to 196 in 47a223e
for all directories
1,2,3
. This is a relatively slow operation, and can be a bottleneck whenL1
has very many nested catalogs.Would it be possible to further short-circuit this check based on whether the path being considered is in the lease path (IsReportablePath()==true?)
The text was updated successfully, but these errors were encountered: