+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
package main
import (
)
var exampleConfigFile = []byte(`
- {
- "Client": {
- "APIHost": "zzzzz.arvadosapi.com:443",
- "AuthToken": "xyzzy",
- "Insecure": false
- },
- "KeepServiceTypes": [
- "disk"
- ],
- "RunPeriod": "600s"
- }`)
+Client:
+ APIHost: zzzzz.arvadosapi.com:443
+ AuthToken: xyzzy
+ Insecure: false
+KeepServiceTypes:
+ - disk
+Listen: ":9005"
+ManagementToken: xyzzy
+RunPeriod: 600s
+CollectionBatchSize: 100000
+CollectionBuffers: 1000
+RequestTimeout: 30m`)
func usage() {
fmt.Fprintf(os.Stderr, `
positions (according to the rendezvous hash algorithm) so clients find
them faster.
-Usage: keep-balance -config path/to/config.json [options]
+Usage: keep-balance [options]
Options:
`)
Use the -commit-pull and -commit-trash flags to implement the
computed changes.
+Tuning resource usage:
+
+ CollectionBatchSize limits the number of collections retrieved per
+ API transaction. If this is zero or omitted, page size is
+ determined by the API server's own page size limits (see
+ max_items_per_response and max_index_database_read configs).
+
+ CollectionBuffers sets the size of an internal queue of
+ collections. Higher values use more memory, and improve throughput
+ by allowing keep-balance to fetch the next page of collections
+ while the current page is still being processed. If this is zero
+ or omitted, pages are processed serially.
+
+ RequestTimeout is the maximum time keep-balance will spend on a
+ single HTTP request (getting a page of collections, getting the
+ block index from a keepstore server, or sending a trash or pull
+ list to a keepstore server). Defaults to 30 minutes.
+
Limitations:
keep-balance does not attempt to discover whether committed pull