Overview
Comment: | Fixed overlapping calls to sync to on disk db |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80 |
Files: | files | file ages | folders |
SHA1: |
4c15e85b4d8d34707e81c740004e9554 |
User & Date: | matt on 2023-04-11 08:21:23 |
Other Links: | branch diff | manifest | tags |
Context
2023-04-11
| ||
14:23 | added exception handler to deletion of .servinfo file check-in: c96bc5893d user: mmgraham tags: v1.80 | |
08:21 | Fixed overlapping calls to sync to on disk db check-in: 4c15e85b4d user: matt tags: v1.80 | |
2023-04-10
| ||
19:36 | Improved run away server throttling check-in: 4115ca72bc user: matt tags: v1.80 | |
Changes
Modified dbmod.scm from [2c4a7875e4] to [7169609c84].
︙ | ︙ | |||
147 148 149 150 151 152 153 154 155 156 157 158 159 160 | (lambda () (let* ((db (sqlite3:open-database dbfullname)) (handler (sqlite3:make-busy-timeout 136000))) (sqlite3:set-busy-handler! db handler) (if write-access (init-proc db)) db)))) ;; Open the inmem db and the on-disk db ;; populate the inmem db with data ;; ;; Updates fields in dbstruct ;; Returns dbstruct ;; | > > | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | (lambda () (let* ((db (sqlite3:open-database dbfullname)) (handler (sqlite3:make-busy-timeout 136000))) (sqlite3:set-busy-handler! db handler) (if write-access (init-proc db)) db)))) (define *sync-in-progress* #f) ;; Open the inmem db and the on-disk db ;; populate the inmem db with data ;; ;; Updates fields in dbstruct ;; Returns dbstruct ;; |
︙ | ︙ | |||
192 193 194 195 196 197 198 | ;; (assert (sqlite3:database? db) "FATAL: open-dbmoddb: db is not a db") (dbr:dbstruct-inmem-set! dbstruct inmem) (dbr:dbstruct-ondiskdb-set! dbstruct db) (dbr:dbstruct-dbfile-set! dbstruct dbfullname) (dbr:dbstruct-dbfname-set! dbstruct dbfname) (dbr:dbstruct-sync-proc-set! dbstruct (lambda (last-update) | | > > > | | > > | 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | ;; (assert (sqlite3:database? db) "FATAL: open-dbmoddb: db is not a db") (dbr:dbstruct-inmem-set! dbstruct inmem) (dbr:dbstruct-ondiskdb-set! dbstruct db) (dbr:dbstruct-dbfile-set! dbstruct dbfullname) (dbr:dbstruct-dbfname-set! dbstruct dbfname) (dbr:dbstruct-sync-proc-set! dbstruct (lambda (last-update) (if *sync-in-progress* (debug:print 0 *default-log-port* "WARNING: overlapping calls to sync to disk") (begin (set! *sync-in-progress* #t) (dbmod:sync-gasket tables last-update inmem db dbfullname syncdir) (thread-sleep! 0.5) ;; ensure at least 1/2 second down time between sync calls (set! *sync-in-progress* #f))))) ;; (dbmod:sync-tables tables #f db inmem) ;; (if db (dbmod:sync-gasket tables #f inmem db dbfullname 'fromdest) ;; ) ;; load into inmem (dbr:dbstruct-last-update-set! dbstruct (current-seconds)) ;; should this be offset back in time by one second? dbstruct)) ;; (if (eq? syncdir 'todisk) ;; sync to disk normally, sync from in dashboard |
︙ | ︙ | |||
223 224 225 226 227 228 229 | (else (case direction ((todisk) (dbmod:sync-tables tables last-update inmem dbh) ) (else (dbmod:sync-tables tables last-update dbh inmem)))))) | < | 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | (else (case direction ((todisk) (dbmod:sync-tables tables last-update inmem dbh) ) (else (dbmod:sync-tables tables last-update dbh inmem)))))) (define (dbmod:close-db dbstruct) ;; do final sync to disk file ;; (do-sync ...) (sqlite3:finalize! (dbr:dbstruct-ondiskdb dbstruct))) ;;====================================================================== |
︙ | ︙ |