Overview
Comment: | Changed delay to linear function 0.25 * number of threads over 3. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80 |
Files: | files | file ages | folders |
SHA1: |
f42bab92862cd966e5cce731f14ada3b |
User & Date: | matt on 2023-05-22 12:09:07 |
Other Links: | branch diff | manifest | tags |
Context
2023-05-22
| ||
16:52 | Added server parameter debug-parameter (set to -:p to profile for example). check-in: d15b736af8 user: matt tags: v1.80 | |
12:09 | Changed delay to linear function 0.25 * number of threads over 3. check-in: f42bab9286 user: matt tags: v1.80 | |
11:47 | Added exception handlers back - within threads they have to be dealth with. Added handling of busy exception and it seems to be working better (buy not enough testing yet to be sure). check-in: 6c641b6f76 user: matt tags: v1.80 | |
Changes
Modified api.scm from [cdbd53a18d] to [cc67cf0a85].
︙ | ︙ | |||
250 251 252 253 254 255 256 | ((ping) #t) ;; we are fine (else (if (not ok)(debug:print 0 *default-log-port* "ERROR: "cmd", run-id "run-id", not correct for dbfname "(dbr:dbstruct-dbfname dbstruct))) (assert ok "FATAL: database file and run-id not aligned."))))) (ttdat *server-info*) (server-state (tt-state ttdat)) (status (cond | | | | 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 | ((ping) #t) ;; we are fine (else (if (not ok)(debug:print 0 *default-log-port* "ERROR: "cmd", run-id "run-id", not correct for dbfname "(dbr:dbstruct-dbfname dbstruct))) (assert ok "FATAL: database file and run-id not aligned."))))) (ttdat *server-info*) (server-state (tt-state ttdat)) (status (cond ((> newcount 3) 'busy) ;; ((> newcount 5) 'loaded) ;; this gets transmitted to the client which calls tt:backoff-incr to slow stuff down. (else 'ok))) (errmsg (case status ((busy) (conc "Server overloaded, "newcount" threads in flight")) ((loaded) (conc "Server loaded, "newcount" threads in flight")) (else #f))) (result (case status ((busy) (if (eq? cmd 'ping) (normal-proc cmd run-id params) ;; newcount must be greater than 5 for busy (* 0.25 (- newcount 3)) ;; was 15 )) ;; (- newcount 29)) ;; call back in as many seconds ((loaded) ;; (if (eq? (rmt:transport-mode) 'tcp) ;; (thread-sleep! 0.5)) (normal-proc cmd run-id params)) (else (normal-proc cmd run-id params)))) |
︙ | ︙ |
Modified tcp-transportmod.scm from [11cd5cbd4c] to [c0357a953a].
︙ | ︙ | |||
239 240 241 242 243 244 245 | (if (and (number? delay-wait) (> delay-wait 0)) (begin (debug:print 0 *default-log-port* "Server is loaded, delaying "delay-wait" seconds") (thread-sleep! delay-wait))))) (case status ((busy) ;; result will be how long the server wants you to delay | > | | | | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | (if (and (number? delay-wait) (> delay-wait 0)) (begin (debug:print 0 *default-log-port* "Server is loaded, delaying "delay-wait" seconds") (thread-sleep! delay-wait))))) (case status ((busy) ;; result will be how long the server wants you to delay (let* ((dly (if (number? result) result 0.1))) (debug:print 0 *default-log-port* "WARNING: server for "dbfname" is busy, will try again in "dly" seconds.") (thread-sleep! dly) (tt:handler ttdat cmd run-id params (+ attemptnum 1) area-dat areapath readonly-mode dbfname testsuite mtexe))) ((loaded) (debug:print 0 *default-log-port* "WARNING: server for "dbfname" is loaded, slowing queries.") (tt:backoff-incr (tt-conn-host conn)(tt-conn-port conn)) result) ;; (tt:handler ttdat cmd run-id params (+ attemptnum 1) area-dat areapath readonly-mode dbfname testsuite mtexe)) (else result))) (else ;; did not receive properly formated result |
︙ | ︙ |