Overview
Comment: | basic stats capture working |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.81-journal-based-throttling |
Files: | files | file ages | folders |
SHA1: |
f86e5d30825f641f34dfd784de02f1e7 |
User & Date: | matt on 2024-07-10 03:20:32 |
Other Links: | branch diff | manifest | tags |
Context
2024-07-10
| ||
09:17 | Added docs/csirc which works with both chicken 4 and 5 check-in: e75a04de3e user: mrwellan tags: v1.81-journal-based-throttling | |
03:20 | basic stats capture working check-in: f86e5d3082 user: matt tags: v1.81-journal-based-throttling | |
2024-07-09
| ||
20:07 | wip check-in: 62d878791d user: matt tags: v1.81-journal-based-throttling | |
Changes
Modified tcp-transportmod.scm from [1868d597df] to [2f9da6d8df].
︙ | ︙ | |||
1132 1133 1134 1135 1136 1137 1138 | (equal? (address-info-type x) "tcp")) (address-infos (get-host-name))))) ;;====================================================================== ;; Other Utils ;;====================================================================== | > > > > | > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > < < | > > > > > > > > > > > | 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 | (equal? (address-info-type x) "tcp")) (address-infos (get-host-name))))) ;;====================================================================== ;; Other Utils ;;====================================================================== (defstruct jstats (count 0) (jcount (make-hash-table)) ;; 1.db => journal_count ) ;; timeblk => jstats (define *journal-stats* (make-hash-table)) ;; monte-carlo-esque random sampling of journal files ;; for all the files: ;; if .journal ;; update stats +1 +1 ;; update stats +1 0 ;; (define (tt:write-load-tracking dbdir) (let* ((cs (current-seconds)) (key (inexact->exact (quotient cs 10))) (old (- key 4)) ;; 4 x 10 seconds ago (jstat (if (hash-table-exists? *journal-stats* key) (hash-table-ref *journal-stats* key ) (let ((new (make-jstats))) (hash-table-set! *journal-stats* key new) new)))) ;; clear out records over 30s old (for-each (lambda (key) (if (< key old) (hash-table-delete! *journal-stats* key))) (hash-table-keys *journal-stats*)) ;; increment our count of observations (jstats-count-set! jstat (+ (jstats-count jstat) 1)) ;; now find and increment journal file counts (directory-fold (lambda (fname res) ;; is it a journal file? (let ((parts (string-match "^(.*\\.db)-journal.*" fname))) (match parts ((_ dbfname) (hash-table-set! (jstats-jcount jstat) dbfname (+ (hash-table-ref/default (jstats-jcount jstat) dbfname 0) 1) )) ))) '() dbdir ))) ;; megatest> (import tcp-transportmod) ;; megatest> (tt:write-load-tracking ".mtdb") ;; megatest> (hash-table-keys *journal-stats*) ;; (172060297) ;; megatest> (jstats->alist (hash-table-ref *journal-stats* 172060297)) ;; ((count . 1) (jcount . #<hash-table (1)>)) ;; megatest> (jstats-jcount (hash-table-ref *journal-stats* 172060297)) ;; #<hash-table (1)> ;; megatest> (hash-table->alist (jstats-jcount (hash-table-ref *journal-stats* 172060297))) ;; (("1.db" . 4)) ) |