You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/04/23 23:15:17 UTC

svn propchange: r1586947 - svn:log

Author: stefan2
Revision: 1586947
Modified property: svn:log

Modified: svn:log at Wed Apr 23 21:15:17 2014
------------------------------------------------------------------------------
--- svn:log (original)
+++ svn:log Wed Apr 23 21:15:17 2014
@@ -1,13 +1,17 @@
-Improve MT scalability of the FSFS DAG traversal code.
-
-Error objects are a very expensive way to control the control flow
-as they carry their own pools, created from a thread-safe root pool.
+Using error objects to control the control flow in non-errorneous
+cases is bad style. Moreover, it is very expensive as the condition
+occurs frequently and the error objects carry their own pools,
+created from a thread-safe root pool. The localization of error
+messages makes things even worse.
 
 dag_open should not return an error to open_path if the dirent
 cannot be found, pass a NULL node back instead.  This eliminates
 about 50% of all transitional error objects during log-y operations.
 As there are only 2 callers of dag_open, they are easy to adapt.
 
+This also slightly improves MT scalability of the FSFS DAG traversal
+code as the global pool allocator uses a process-wide mutex.
+
 * subversion/libsvn_fs_fs/dag.h
   (svn_fs_fs__dag_clone_root): Document the new error behavior.