Overview
Comment: | Increased throttle effect. Added accounting for toplevel tests in jobgroups and max_concurrent_jobs |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.55 |
Files: | files | file ages | folders |
SHA1: |
2127b1222280049f8ad7fce833d94143 |
User & Date: | matt on 2014-05-20 01:15:57 |
Other Links: | branch diff | manifest | tags |
Context
2014-05-20
| ||
01:16 | Bumped version to v1.5519 check-in: d14bc79960 user: matt tags: v1.55, v1.5519 | |
01:15 | Increased throttle effect. Added accounting for toplevel tests in jobgroups and max_concurrent_jobs check-in: 2127b12222 user: matt tags: v1.55 | |
2014-05-19
| ||
23:52 | Added .db-journal based db throttle. check-in: 1b2b31b21b user: matt tags: v1.55 | |
Changes
Modified db.scm from [cc3c722805] to [ae5afe1970].
︙ | ︙ | |||
1260 1261 1262 1263 1264 1265 1266 | (define (db:get-count-tests-running db) (let ((res 0)) (sqlite3:for-each-row (lambda (count) (set! res count)) db | | | | | > | 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 | (define (db:get-count-tests-running db) (let ((res 0)) (sqlite3:for-each-row (lambda (count) (set! res count)) db "SELECT count(id) FROM tests WHERE state in ('RUNNING','LAUNCHED','REMOTEHOSTSTART') AND run_id NOT IN (SELECT id FROM runs WHERE state='deleted') AND NOT (uname = 'n/a' AND item_path = '');") res)) (define (db:get-count-tests-running-for-run-id db run-id) (let ((res 0)) (sqlite3:for-each-row (lambda (count) (set! res count)) ;; select * from tests where run_id=1 and uname = 'n/a' and item_path=''; db "SELECT count(id) FROM tests WHERE state in ('RUNNING','LAUNCHED','REMOTEHOSTSTART') AND run_id=? AND NOT (uname = 'n/a' AND item_path = '');" run-id) res)) (define (db:get-running-stats db) (let ((res '())) (sqlite3:for-each-row (lambda (state count) (set! res (cons (list state count) res))) db "SELECT state,count(id) FROM tests GROUP BY state ORDER BY id DESC;") res)) (define (db:get-count-tests-running-in-jobgroup db jobgroup) (if (not jobgroup) 0 ;; (let ((res 0)) (sqlite3:for-each-row (lambda (count) (set! res count)) db "SELECT count(id) FROM tests WHERE state in ('RUNNING','LAUNCHED','REMOTEHOSTSTART') AND testname in (SELECT testname FROM test_meta WHERE jobgroup=?) AND NOT (uname = 'n/a' AND item_path = '');" jobgroup) res))) ;; done with run when: ;; 0 tests in LAUNCHED, NOT_STARTED, REMOTEHOSTSTART, RUNNING (define (db:estimated-tests-remaining db run-id) (let ((res 0)) |
︙ | ︙ | |||
1942 1943 1944 1945 1946 1947 1948 | (begin (thread-sleep! 0.01) (loop)))) (set! *number-of-writes* (+ *number-of-writes* 1)) (set! *writes-total-delay* (+ *writes-total-delay* (- (current-milliseconds) start-time))) got-it)) | | > > > | | | | | | | 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 | (begin (thread-sleep! 0.01) (loop)))) (set! *number-of-writes* (+ *number-of-writes* 1)) (set! *writes-total-delay* (+ *writes-total-delay* (- (current-milliseconds) start-time))) got-it)) (define (db:delay-if-busy #!key (count 6)) (let ((dbfj (conc *toppath* "/megatest.db-journal"))) (if (file-exists? dbfj) (case count ((6) (thread-sleep! 0.2) (db:delay-if-busy count: 5)) ((5) (thread-sleep! 0.4) (db:delay-if-busy count: 4)) ((4) (thread-sleep! 0.8) (db:delay-if-busy count: 3)) ((3) (thread-sleep! 1.6) (db:delay-if-busy count: 2)) ((2) (thread-sleep! 3.2) (db:delay-if-busy count: 1)) ((1) (thread-sleep! 6.4) (db:delay-if-busy count: 0)) (else (debug:print-info 0 "delaying db access due to high database load.") (thread-sleep! 12.8)))))) (define (db:process-queue-item db item) (let* ((stmt-key (cdb:packet-get-qtype item)) (qry-sig (cdb:packet-get-query-sig item)) (return-address (cdb:packet-get-client-sig item)) (params (cdb:packet-get-params item)) (query (let ((q (alist-ref stmt-key db:queries))) |
︙ | ︙ |