You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/10/03 02:42:13 UTC

lucene-solr:jira/http2: Update ref-guide for http2 changes

Repository: lucene-solr
Updated Branches:
  refs/heads/jira/http2 c1957e241 -> f6f40462c


Update ref-guide for http2 changes


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f6f40462
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f6f40462
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f6f40462

Branch: refs/heads/jira/http2
Commit: f6f40462c83a47eefacdc21072f36b047c549618
Parents: c1957e2
Author: Cao Manh Dat <da...@apache.org>
Authored: Wed Oct 3 09:41:59 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Wed Oct 3 09:41:59 2018 +0700

----------------------------------------------------------------------
 .../src/distributed-requests.adoc               |  3 --
 solr/solr-ref-guide/src/format-of-solr-xml.adoc |  3 --
 .../src/major-changes-in-solr-8.adoc            | 35 +++++++++++++++++++-
 3 files changed, 34 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f6f40462/solr/solr-ref-guide/src/distributed-requests.adoc
----------------------------------------------------------------------
diff --git a/solr/solr-ref-guide/src/distributed-requests.adoc b/solr/solr-ref-guide/src/distributed-requests.adoc
index 842a021..56c2d1d 100644
--- a/solr/solr-ref-guide/src/distributed-requests.adoc
+++ b/solr/solr-ref-guide/src/distributed-requests.adoc
@@ -96,9 +96,6 @@ The amount of time in ms that is accepted for binding / connecting a socket. The
 `maxConnectionsPerHost`::
 The maximum number of concurrent connections that is made to each individual shard in a distributed search. The default is `100000`.
 
-`maxConnections`::
-The total maximum number of concurrent connections in distributed searches. The default is `100000`
-
 `corePoolSize`::
 The retained lowest limit on the number of threads used in coordinating distributed search. The default is `0`.
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f6f40462/solr/solr-ref-guide/src/format-of-solr-xml.adoc
----------------------------------------------------------------------
diff --git a/solr/solr-ref-guide/src/format-of-solr-xml.adoc b/solr/solr-ref-guide/src/format-of-solr-xml.adoc
index 2a77c95..27cc1cb 100644
--- a/solr/solr-ref-guide/src/format-of-solr-xml.adoc
+++ b/solr/solr-ref-guide/src/format-of-solr-xml.adoc
@@ -174,9 +174,6 @@ The URL scheme to be used in distributed search.
 `maxConnectionsPerHost`::
 Maximum connections allowed per host. Defaults to `100000`.
 
-`maxConnections`::
-Maximum total connections allowed. Defaults to `100000`.
-
 `corePoolSize`::
 The initial core size of the threadpool servicing requests. Default is `0`.
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f6f40462/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc
----------------------------------------------------------------------
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc b/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc
index 5df38de..8b7566d 100644
--- a/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc
+++ b/solr/solr-ref-guide/src/major-changes-in-solr-8.adoc
@@ -22,4 +22,37 @@
 // *****   Until then it's a place for upgrade notes     *****
 // *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
 
-* Due to LIR redesign in SOLR-11702, all users must be on Solr 7.3 or higher to upgrade to Solr 8
+Solr 8 is a major new release of Solr which introduces new features and a number of other changes that may impact your existing installation.
+
+== Upgrade Planning
+
+Due to the introduction of LIR redesign since Solr 7.3 (SOLR-11702) and the removing of old LIR implementation in Solr 8.
+Rolling updates are not possible unless all nodes must be on Solr 7.3 or higher. If not updates can be lost.
+
+Solr nodes can now listen and serve HTTP/2 and HTTP/1 requests. However  nodes with HTTPS setup still can only serve
+HTTP/1.1 requests. By default, most of internal requests are sent by using HTTP/2 (except for HTTPS case as mentioned above),
+therefore Solr 8.0 nodes can't talk to old nodes (7.x).
+
+However we can follow these steps to do rolling updates:
+
+* Do rolling updates as normally, but the Solr 8.0 nodes must start with `-Dsolr.http1=true` as startup parameter.
+  By using this parameter internal requests are sent by using HTTP/1.1
+* When all nodes are upgraded to 8.0, restart them, this time `-Dsolr.http1` parameter should be removed.
+
+== HTTP/2
+
+Until Solr 8, Solr nodes only support HTTP/1 requests. HTTP/1.1 practically allows only one outstanding request
+per TCP connection this means that for sending multiple requests at the same time multiple TCP connections must be
+established. This leads to waste of resources on both-sides and long GC-pause. Solr 8 with HTTP/2 support overcomes that problem by allowing
+multiple requests can be sent in parallel using a same TCP connection.
+
+`Http2SolrClient` with HTTP/2 and async capabilities based on Jetty Client is introduced. This client replaced
+`HttpSolrClient` and `ConcurrentUpdateSolrClient` for sending most of internal requests (sent by `UpdateShardHandler`,
+`HttpShardHandler`). An interesting benchmark result showing gain of using `Http2SolrClient` had been posted
+https://issues.apache.org/jira/browse/SOLR-12642?focusedCommentId=16606648&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16606648[here]. However this leads to several changes in configuration and authentication setup
+
+* `UpdateShardHandler.maxConnections` parameter is no longer being used
+* `HttpShardHandlerFactory.maxConnections` parameter is no longer being used
+*  Custom `AuthenticationPlugin` must provide its own setup for `Http2SolrClient` through
+   `SolrHttpClientBuilder.setHttp2Configurator`, if not internal requests can't be authenticated
+