Megatest

Check-in [80c20a647d]
Login
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: 80c20a647dad148dc8bc5c273e1c4dcd15a74d07
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
255

256
257
258
259
260
261
262
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 300) 'loaded)
			  ((> 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








1146

1147
1148
1149
1150
1151
1152
1153
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 (> *api-process-request-count* 25)) ;; risk of db corruption
  (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))