Overview
Comment: | Increased the number of clients to 520, added random wait and run times for clients |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | interleaved-queries |
Files: | files | file ages | folders |
SHA1: |
5258070648b1b4fbad734a8c28e0bbb3 |
User & Date: | matt on 2012-11-17 16:20:20 |
Other Links: | branch diff | manifest | tags |
Context
2012-11-17
| ||
17:07 | Increased rigour of mocktest, added timeout and retry on dbaccess and added count of all accesses check-in: 79ae44c0b4 user: matt tags: interleaved-queries | |
16:20 | Increased the number of clients to 520, added random wait and run times for clients check-in: 5258070648 user: matt tags: interleaved-queries | |
15:17 | Made mockup more realistic, works. check-in: a742cdc5a5 user: matt tags: interleaved-queries | |
Changes
Modified testzmq/mockupclient.scm from [b38730b037] to [1b460b4b52].
1 2 3 4 | (use zmq posix) (define cname "Bob") (let ((args (argv))) | > | | > | > < | | < < | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | (use zmq posix) (define cname "Bob") (define runtime 10) (let ((args (argv))) (if (< (length args) 3) (begin (print "Usage: mockupclient clientname runtime") (exit)) (begin (set! cname (cadr args)) (set! runtime (string->number (caddr args)))))) ;; (define start-delay (/ (random 100) 9)) ;; (define runtime (+ 1 (/ (random 200) 2))) (print "Starting client " cname " with runtime " runtime) (include "mockupclientlib.scm") (set! endtime (+ (current-seconds) runtime)) (let loop () (let ((x (random 15)) (varname (list-ref (list "hello" "goodbye" "saluton" "kiaorana")(random 4)))) (case x ;; ((1)(dbaccess cname 'sync "nodat" #f)) ((2 3 4 5)(dbaccess cname 'set varname (random 999))) ((6 7 8 9 10)(print cname ": Get \"" varname "\" " (dbaccess cname 'get varname #f))) (else (thread-sleep! 0.1))) (if (< (current-seconds) endtime) (loop)))) |
︙ | ︙ |
Modified testzmq/mockupserver.scm from [cab71edb67] to [49da501f89].
︙ | ︙ | |||
49 50 51 52 53 54 55 | (execute db "UPDATE clients SET num_accesses=num_accesses+1 WHERE id=?;" cid))) (define db (open-db)) ;; (define queuelst '()) ;; (define mx1 (make-mutex)) (define (process-queue queuelst) | > | | | | | | | | | | | | | | | | | | | | | | | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | (execute db "UPDATE clients SET num_accesses=num_accesses+1 WHERE id=?;" cid))) (define db (open-db)) ;; (define queuelst '()) ;; (define mx1 (make-mutex)) (define (process-queue queuelst) (let ((queuelen (length queuelst))) (for-each (lambda (item) (let ((cname (vector-ref item 1)) (clcmd (vector-ref item 2)) (cdata (vector-ref item 3))) (send-message pub cname send-more: #t) (send-message pub (case clcmd ((sync) (conc queuelen)) ((set) (apply execute db "INSERT OR REPLACE INTO vars (var,val) VALUES (?,?);" (string-split cdata)) "ok") ((get) (let ((res "noval")) (for-each-row (lambda (val) (set! res val)) db "SELECT val FROM vars WHERE var=?;" cdata) res)) (else (conc "unk cmd: " clcmd)))))) queuelst))) (define th1 (make-thread (lambda () (let ((last-run 0)) ;; current-seconds when run last (let loop ((queuelst '())) (let* ((indat (receive-message* pull)) (parts (string-split indat ":")) |
︙ | ︙ | |||
100 101 102 103 104 105 106 | "server thread")) (include "mockupclientlib.scm") ;; send a sync to the pull port (define th2 (make-thread (lambda () | > | | < | > > > > | > | > > | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | "server thread")) (include "mockupclientlib.scm") ;; send a sync to the pull port (define th2 (make-thread (lambda () (let ((last-action-time (current-seconds))) (let loop () (thread-sleep! 5) (let ((queuelen (string->number (dbaccess "server" 'sync "nada" #f))) (last-action-delta (- (current-seconds) last-action-time))) (print "Server: Got queuelen=" queuelen ", last-action-delta=" last-action-delta) (if (> queuelen 1)(set! last-action-time (current-seconds))) (if (< last-action-delta 15) (loop) (print "Server exiting, 15 seconds since last access")))))) "sync thread")) (thread-start! th1) (thread-start! th2) (thread-join! th2) (print "Server exited!") |
Modified testzmq/testmockup.sh from [422a24aae3] to [0f5907e5cc].
︙ | ︙ | |||
9 10 11 12 13 14 15 | echo Starting server ./mockupserver & sleep 1 echo Starting clients IVALS= | | > > | | > > | | > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | echo Starting server ./mockupserver & sleep 1 echo Starting clients IVALS= for i in a b c d e f g h i j k l m n o p q s t u v w x y z; do for k in a b; do for j in 0 1 2 3 4 5 6 7 8 9; do waittime=`random 0 20` runtime=`random 5 20` echo "Starting client $i$k$j with waittime $waittime and runtime $runtime" (sleep $waittime;./mockupclient $i$k$j $runtime) & done done done wait # echo "Running for one minute then killing all mockupserver and mockupclient processes" # sleep 60 # killall -v mockupserver mockupclient |