From commits-return-103927-archive-asf-public=cust-asf.ponee.io@lucene.apache.org Wed Oct 3 04:42:15 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 9AEAD180638 for ; Wed, 3 Oct 2018 04:42:14 +0200 (CEST) Received: (qmail 88347 invoked by uid 500); 3 Oct 2018 02:42:13 -0000 Mailing-List: contact commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list commits@lucene.apache.org Received: (qmail 88337 invoked by uid 99); 3 Oct 2018 02:42:13 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Oct 2018 02:42:13 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5B2CADFEAD; Wed, 3 Oct 2018 02:42:13 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: datcm@apache.org To: commits@lucene.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: lucene-solr:jira/http2: Update ref-guide for http2 changes Date: Wed, 3 Oct 2018 02:42:13 +0000 (UTC) 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 Authored: Wed Oct 3 09:41:59 2018 +0700 Committer: Cao Manh Dat 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 +