You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2021/02/03 20:13:55 UTC
[lucene-solr] 02/02: @1327 Distrib updates and log replay hardening.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit f4b5c6f48061574d66051be7b2bb6867c0876010
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Feb 3 14:07:19 2021 -0600
@1327 Distrib updates and log replay hardening.
---
solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java | 8 ++++----
.../src/java/org/apache/solr/update/DirectUpdateHandler2.java | 2 +-
solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java | 2 +-
solr/core/src/java/org/apache/solr/update/UpdateLog.java | 2 +-
.../solr/update/processor/DistributedZkUpdateProcessor.java | 7 +++----
5 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
index b89bb51..9bd2a31 100644
--- a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
+++ b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
@@ -121,7 +121,7 @@ public class AddUpdateCommand extends UpdateCommand {
final boolean ignoreNestedDocs = false; // throw an exception if found
SolrInputDocument solrInputDocument = solrDoc;
if (!isInPlaceUpdate() && getReq().getSchema().isUsableForChildDocs()) {
- addRootField(solrInputDocument, getRootIdUsingRouteParam(getHashableId()));
+ addRootField(solrInputDocument, getRootIdUsingRouteParam());
}
return DocumentBuilder.toDocument(solrInputDocument, req.getSchema(), isInPlaceUpdate(), ignoreNestedDocs);
}
@@ -175,8 +175,8 @@ public class AddUpdateCommand extends UpdateCommand {
*
* @return value of _route_ param({@link ShardParams#_ROUTE_}), otherwise doc id.
*/
- public String getRootIdUsingRouteParam(String id) {
- return req.getParams().get(ShardParams._ROUTE_, id);
+ public String getRootIdUsingRouteParam() {
+ return req.getParams().get(ShardParams._ROUTE_, getHashableId());
}
/**
@@ -226,7 +226,7 @@ public class AddUpdateCommand extends UpdateCommand {
return null; // caller should call getLuceneDocument() instead
}
- final String rootId = getRootIdUsingRouteParam(getHashableId());
+ final String rootId = getRootIdUsingRouteParam();
final SolrInputField versionSif = solrDoc.get(CommonParams.VERSION_FIELD);
for (SolrInputDocument sdoc : all) {
diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
index 5efbe32..11af6e5 100644
--- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
+++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
@@ -995,7 +995,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
Iterable<Document> nestedDocs = cmd.getLuceneDocsIfNested();
boolean isNested = nestedDocs != null; // AKA nested child docs
- Term idTerm = getIdTerm(isNested? new BytesRef(cmd.getRootIdUsingRouteParam(cmd.getHashableId())): cmd.getIndexedId(), isNested);
+ Term idTerm = getIdTerm(isNested? new BytesRef(cmd.getRootIdUsingRouteParam()): cmd.getIndexedId(), isNested);
Term updateTerm = hasUpdateTerm ? cmd.updateTerm : idTerm;
if (isNested) {
log.debug("updateDocuments({})", cmd);
diff --git a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
index b2fc33d..20ce790 100644
--- a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
+++ b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
@@ -280,7 +280,7 @@ public class PeerSyncWithLeader implements SolrMetricProducer {
List<Object> updates = (List<Object>)rsp.get("updates");
if (updates.size() < numRequestedUpdates) {
- log.error("{} Requested {} updated from {} but retrieved {} {}", msg(), numRequestedUpdates, leaderUrl, updates.size(), rsp);
+ log.error("{} Requested {} updated from {} but retrieved {}", msg(), numRequestedUpdates, leaderUrl, updates.size());
return false;
}
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateLog.java b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
index ef24e9b..0eff8ea 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
@@ -1475,7 +1475,7 @@ public class UpdateLog implements PluginInfoInitialized, SolrMetricProducer {
if (writeCommit) {
// record a commit
if (log.isDebugEnabled()) log.debug("Recording current closed for {} log={}", uhandler.core, theLog);
- CommitUpdateCommand cmd = new CommitUpdateCommand(new LocalSolrQueryRequest(uhandler.core, new ModifiableSolrParams((SolrParams)null)), false);
+ CommitUpdateCommand cmd = new CommitUpdateCommand(new LocalSolrQueryRequest(uhandler.core, new ModifiableSolrParams()), false);
theLog.writeCommit(cmd);
}
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
index 1a0f37a..d4f316e 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
@@ -304,8 +304,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
if (isLeader && !isSubShardLeader) {
DocCollection coll = clusterState.getCollection(collection);
- String id = cmd.getHashableId();
- List<SolrCmdDistributor.Node> subShardLeaders = getSubShardLeaders(coll, cloudDesc.getShardId(), cmd.getRootIdUsingRouteParam(id), cmd.getSolrInputDocument());
+ List<SolrCmdDistributor.Node> subShardLeaders = getSubShardLeaders(coll, cloudDesc.getShardId(), cmd.getRootIdUsingRouteParam(), cmd.getSolrInputDocument());
// the list<node> will actually have only one element for an add request
if (subShardLeaders != null && !subShardLeaders.isEmpty()) {
ModifiableSolrParams params = new ModifiableSolrParams(filterParams(req.getParams()));
@@ -315,7 +314,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
cmdDistrib.distribAdd(cmd, subShardLeaders, params, true);
}
- final List<SolrCmdDistributor.Node> nodesByRoutingRules = getNodesByRoutingRules(clusterState, coll, cmd.getRootIdUsingRouteParam(id), cmd.getSolrInputDocument());
+ final List<SolrCmdDistributor.Node> nodesByRoutingRules = getNodesByRoutingRules(clusterState, coll, cmd.getRootIdUsingRouteParam(), cmd.getSolrInputDocument());
if (nodesByRoutingRules != null && !nodesByRoutingRules.isEmpty()) {
ModifiableSolrParams params = new ModifiableSolrParams(filterParams(req.getParams()));
params.set(DISTRIB_UPDATE_PARAM, DistribPhase.FROMLEADER.toString());
@@ -641,7 +640,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
zkCheck();
if (cmd instanceof AddUpdateCommand) {
AddUpdateCommand acmd = (AddUpdateCommand)cmd;
- nodes = setupRequest(acmd.getRootIdUsingRouteParam(((AddUpdateCommand) cmd).getHashableId()), acmd.getSolrInputDocument());
+ nodes = setupRequest(acmd.getRootIdUsingRouteParam(), acmd.getSolrInputDocument());
} else if (cmd instanceof DeleteUpdateCommand) {
DeleteUpdateCommand dcmd = (DeleteUpdateCommand)cmd;
nodes = setupRequest(dcmd.getId(), null);