Overview
Comment: | This combo seemed about as robust as any |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80 |
Files: | files | file ages | folders |
SHA1: |
80c20a647dad148dc8bc5c273e1c4dcd |
User & Date: | matt on 2023-03-14 21:42:55 |
Other Links: | branch diff | manifest | tags |
Context
2023-03-15
| ||
10:03 | I saw a couple tcp errors with threads in flight of 500. Reducing to 200 and got clean sixtyfivek fast run. check-in: 34fa77c2e3 user: matt tags: v1.80 | |
2023-03-14
| ||
21:42 | This combo seemed about as robust as any check-in: 80c20a647d user: matt tags: v1.80 | |
11:17 | Merged fork check-in: d8ef55d077 user: mrwellan tags: v1.80 | |
Changes
Modified api.scm from [f26359a83a] to [28331a953d].
︙ | ︙ | |||
248 249 250 251 252 253 254 | (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 600) 'busy) | | | 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | (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 600) 'busy) ((> newcount 500) 'loaded) (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) (- newcount 29)) ;; call back in as many seconds |
︙ | ︙ |
Modified dbfile.scm from [7617a09c16] to [ddb0c93f5d].
︙ | ︙ | |||
1139 1140 1141 1142 1143 1144 1145 | ;; (db:with-db dbstruct run-id sqlite3:exec "select blah fgrom blaz;") ;; r/w is a flag to indicate if the db is modified by this query #t = yes, #f = no ;; (define (dbfile:with-db dbstruct run-id r/w proc params) (assert dbstruct "FATAL: db:with-db called with dbstruct "#f) (assert (dbr:dbstruct? dbstruct) "FATAL: dbstruct is "dbstruct) | > > > > > > > > | | 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 | ;; (db:with-db dbstruct run-id sqlite3:exec "select blah fgrom blaz;") ;; r/w is a flag to indicate if the db is modified by this query #t = yes, #f = no ;; (define (dbfile:with-db dbstruct run-id r/w proc params) (assert dbstruct "FATAL: db:with-db called with dbstruct "#f) (assert (dbr:dbstruct? dbstruct) "FATAL: dbstruct is "dbstruct) ;; Testing 2023, March 14th. I went from full time use of the mutext to no use at all and ;; didn't see much change in the frequency of the messages: ;; Warning (#<thread: thread14974>): in thread: (bind!) bad parameter or other API misuse ;; allowing request count to go up to 1000 and other crashes showed up: ;; Warning (#<thread: thread1889>): in thread: (deserialize) unexpected end of input: #<input port "(tcp)"> ;; ;; leave it fully on for now, test later if there is a performance issue ;; (let* ((use-mutex #t) ;; (> *api-process-request-count* 25)) ;; risk of db corruption (have-struct (dbr:dbstruct? dbstruct)) (dbdat (if have-struct ;; this stuff just allows us to call with a db handle directly (db:open-db dbstruct run-id (dbfile:db-init-proc)) ;; (dbfile:get-subdb dbstruct run-id) #f)) (db (if have-struct ;; this stuff just allows us to call with a db handle directly (dbr:dbdat-dbh dbdat) dbstruct)) |
︙ | ︙ |