warperwolf commented on a change in pull request #324:
URL: https://github.com/apache/solr/pull/324#discussion_r790769421



##########
File path: solr/core/src/java/org/apache/solr/update/UpdateHandler.java
##########
@@ -115,12 +115,9 @@ public UpdateHandler(SolrCore core, UpdateLog updateLog)  {
     boolean skipUpdateLog = core.getCoreDescriptor().getCloudDescriptor() != 
null && !core.getCoreDescriptor().getCloudDescriptor().requiresTransactionLog();
     if (updateLog == null && ulogPluginInfo != null && 
ulogPluginInfo.isEnabled() && !skipUpdateLog) {
       DirectoryFactory dirFactory = core.getDirectoryFactory();
-      if (dirFactory instanceof HdfsDirectoryFactory) {
-        ulog = new 
HdfsUpdateLog(((HdfsDirectoryFactory)dirFactory).getConfDir());
-      } else {
-        ulog = ulogPluginInfo.className == null ? new UpdateLog():
-                core.getResourceLoader().newInstance(ulogPluginInfo, 
UpdateLog.class, true);
-      }
+
+      ulog = ulogPluginInfo.className == null ? new UpdateLog():

Review comment:
       I had a discussion with @risdenk on this one. Indeed the code currently 
picks the standard UpdateLog.class unless the sorlconfig.xml explicitely 
specifies the class of the updateLog definition. This can lead to the update 
logs being written to the local FS while the index of the same collection is 
being written to HDFS. While this is technically possible (it worked during my 
basic tests), this is likely not what we want. 
   The Solr tests use the solr.tests.ulog variable for this, I took care of the 
correct setting for Hdfs tests.
   <updateLog class="${solr.tests.ulog:solr.UpdateLog}">
   This should be documented. 
   With Kevin we also discussed that we could look into the Hdfs directory 
factory intialization and verify if we can check if an inconsistent update log 
class is used and error out in this case. I checked the directory factory code 
and to me it seems that we have no access to the update log type there, likely 
because they can also be defined per update handler and initialized later.
   I think we could also consider the following: add a new method like 
getDefaultUpdateLogClassName to the DirectoryFactory class. This method which 
would return "solr.UpdateLog" in the base class, and the HdfsDirectoryFactory 
could override this by returning "solr.HdfsUpdateLog". In the UpdateHandler 
part, if we detect that the solrconfig did not specify any class, we could fall 
back to the one returned by this method. This would ensure compatibility with 
the existing solrconfigs for HDFS and non-HDFS configs (less pain during an 
upgrade), and at the same time it would allow the user to override the value in 
SolrConfig. @risdenk , @dsmiley what do you think? 
   
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to