summaryrefslogtreecommitdiffstats
path: root/src/server/serverconfig.h
diff options
context:
space:
mode:
authorSimon Rettberg2017-08-26 16:24:07 +0200
committerSimon Rettberg2017-08-26 16:24:07 +0200
commit897615c6e926eefe2ef78dc7cc00fe633d2ab332 (patch)
tree60625ea05c0bda4a3a09286d91932d6bf5e52634 /src/server/serverconfig.h
parent[SERVER] Change handling of nonworking images, check for size change (diff)
downloaddnbd3-897615c6e926eefe2ef78dc7cc00fe633d2ab332.tar.gz
dnbd3-897615c6e926eefe2ef78dc7cc00fe633d2ab332.tar.xz
dnbd3-897615c6e926eefe2ef78dc7cc00fe633d2ab332.zip
[SERVER] Split server-only defs from config.h to serverconfig.h
Diffstat (limited to 'src/server/serverconfig.h')
-rw-r--r--src/server/serverconfig.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/server/serverconfig.h b/src/server/serverconfig.h
new file mode 100644
index 0000000..efb8476
--- /dev/null
+++ b/src/server/serverconfig.h
@@ -0,0 +1,39 @@
+#ifndef _SERVERCONFIG_H_
+#define _SERVERCONFIG_H_
+
+#include "../config.h"
+
+// +++++ Performance related
+#define SERVER_MAX_CLIENTS 4000
+#define SERVER_MAX_IMAGES 5000
+#define SERVER_MAX_ALTS 250
+#define SERVER_MAX_UPLINK_FAILS 8 // How many times may a server fail until it is considered bad
+#define SERVER_BAD_UPLINK_IGNORE 120 // How many seconds is a server considered bad?
+#define SERVER_MAX_UPLINK_QUEUE 1500 // Maximum number of queued requests per uplink
+#define SERVER_UPLINK_QUEUELEN_THRES 900 // Threshold where we start dropping incoming clients
+#define SERVER_MAX_PENDING_ALT_CHECKS 50
+#define SERVER_CACHE_MAP_SAVE_INTERVAL 90
+
+// Time in ms to wait for a read/write call to complete on an uplink connection
+#define SOCKET_TIMEOUT_UPLINK 5000
+// Same for client connections. Be a bit more liberal here
+#define SOCKET_TIMEOUT_CLIENT 15000
+// When waiting for the next request header from client, allow the timeout from above
+// to expire this many times. This allows for greater idle times without also increasing
+// the timeout for cases where we wait for additional data or are actively sending a reply
+#define SOCKET_TIMEOUT_CLIENT_RETRIES 3
+
+// +++++ Other magic constants
+#define SERVER_RTT_PROBES 5
+#define SERVER_RTT_DELAY_INIT 5
+#define SERVER_RTT_DELAY_MAX 45
+#define SERVER_RTT_DELAY_FAILED 180
+
+#define SERVER_REMOTE_IMAGE_CHECK_CACHETIME 120 // 2 minutes
+#define SERVER_MAX_PROXY_IMAGE_SIZE 100000000000LL // 100GB
+
+// Which is the minimum protocol version the server expects from the client
+#define MIN_SUPPORTED_CLIENT 2
+
+#endif
+