[ARVADOS] updated: 1.3.0-2192-g10c9f66f6

Git user git at public.arvados.org
Thu Apr 9 21:59:53 UTC 2020


Summary of changes:
 services/keepstore/command.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

  discards  28d450006ec8610000739de7bc362e2a6bf5f001 (commit)
       via  10c9f66f64d134fd60132ffc85a23a7b81f3b214 (commit)
       via  134d4293c4b62535d2c648281d810c8fa13f746b (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (28d450006ec8610000739de7bc362e2a6bf5f001)
            \
             N -- N -- N (10c9f66f64d134fd60132ffc85a23a7b81f3b214)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 10c9f66f64d134fd60132ffc85a23a7b81f3b214
Author: Ward Vandewege <ward at jhvc.com>
Date:   Thu Apr 9 17:53:31 2020 -0400

    documentation: update descriptions for MaxKeepBlobBuffers and MaxConcurrentRequests
    
    keepstore: MaxConcurrentRequests set to zero should mean no limit
    
    refs #16326
    
    Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward at jhvc.com>

diff --git a/lib/config/config.default.yml b/lib/config/config.default.yml
index 3750adcab..a0def71f7 100644
--- a/lib/config/config.default.yml
+++ b/lib/config/config.default.yml
@@ -184,12 +184,21 @@ Clusters:
       MaxItemsPerResponse: 1000
 
       # Maximum number of concurrent requests to accept in a single
-      # service process, or 0 for no limit. Currently supported only
-      # by keepstore.
+      # service process, or 0 for no limit.
       MaxConcurrentRequests: 0
 
-      # Maximum number of 64MiB memory buffers per keepstore server
-      # process, or 0 for no limit.
+      # Maximum number of 64MiB memory buffers per Keepstore server process, or
+      # 0 for no limit. When this limit is reached, up to
+      # (MaxConcurrentRequests - MaxKeepBlobBuffers) HTTP requests requiring
+      # buffers (like GET and PUT) will wait for buffer space to be released.
+      # Any HTTP requests beyond MaxConcurrentRequests will receive an
+      # immediate 503 response.
+      #
+      # MaxKeepBlobBuffers should be set such that (MaxKeepBlobBuffers * 64MiB
+      # * 1.1) fits comfortably in memory. On a host dedicated to running
+      # Keepstore, divide total memory by 88MiB to suggest a suitable value.
+      # For example, if grep MemTotal /proc/meminfo reports MemTotal: 7125440
+      # kB, compute 7125440 / (88 * 1024)=79 and configure MaxBuffers: 79
       MaxKeepBlobBuffers: 128
 
       # API methods to disable. Disabled methods are not listed in the
diff --git a/services/keepstore/command.go b/services/keepstore/command.go
index 0593460a2..c17ee35a3 100644
--- a/services/keepstore/command.go
+++ b/services/keepstore/command.go
@@ -153,10 +153,6 @@ func (h *handler) setup(ctx context.Context, cluster *arvados.Cluster, token str
 	}
 	bufs = newBufferPool(h.Logger, h.Cluster.API.MaxKeepBlobBuffers, BlockSize)
 
-	if h.Cluster.API.MaxConcurrentRequests < 1 {
-		h.Cluster.API.MaxConcurrentRequests = h.Cluster.API.MaxKeepBlobBuffers * 2
-		h.Logger.Warnf("API.MaxConcurrentRequests <1 or not specified; defaulting to MaxKeepBlobBuffers * 2 == %d", h.Cluster.API.MaxConcurrentRequests)
-	}
 	if h.Cluster.API.MaxConcurrentRequests > 0 && h.Cluster.API.MaxConcurrentRequests < h.Cluster.API.MaxKeepBlobBuffers {
 		h.Logger.Warnf("Possible configuration mistake: not useful to set API.MaxKeepBlobBuffers (%d) higher than API.MaxConcurrentRequests (%d)", h.Cluster.API.MaxKeepBlobBuffers, h.Cluster.API.MaxConcurrentRequests)
 	}

commit 134d4293c4b62535d2c648281d810c8fa13f746b
Author: Tom Clegg <tom at tomclegg.ca>
Date:   Thu Apr 9 16:58:36 2020 -0400

    Warn if MaxKeepBlobBuffers > MaxConcurrentRequests.
    
    No issue #
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at tomclegg.ca>

diff --git a/services/keepstore/command.go b/services/keepstore/command.go
index e0509393c..0593460a2 100644
--- a/services/keepstore/command.go
+++ b/services/keepstore/command.go
@@ -157,6 +157,9 @@ func (h *handler) setup(ctx context.Context, cluster *arvados.Cluster, token str
 		h.Cluster.API.MaxConcurrentRequests = h.Cluster.API.MaxKeepBlobBuffers * 2
 		h.Logger.Warnf("API.MaxConcurrentRequests <1 or not specified; defaulting to MaxKeepBlobBuffers * 2 == %d", h.Cluster.API.MaxConcurrentRequests)
 	}
+	if h.Cluster.API.MaxConcurrentRequests > 0 && h.Cluster.API.MaxConcurrentRequests < h.Cluster.API.MaxKeepBlobBuffers {
+		h.Logger.Warnf("Possible configuration mistake: not useful to set API.MaxKeepBlobBuffers (%d) higher than API.MaxConcurrentRequests (%d)", h.Cluster.API.MaxKeepBlobBuffers, h.Cluster.API.MaxConcurrentRequests)
+	}
 
 	if h.Cluster.Collections.BlobSigningKey != "" {
 	} else if h.Cluster.Collections.BlobSigning {

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list