[Buildbot] #3235: not efficient event stream asked by the UI

Buildbot trac trac at buildbot.net
Tue Mar 17 12:58:03 UTC 2015


#3235: not efficient event stream asked by the UI
-------------------+-------------------------------
Reporter:  tardyp  |      Owner:
    Type:  task    |     Status:  new
Priority:  minor   |  Milestone:  0.9.+
 Version:  master  |   Keywords:  web, optimization
-------------------+-------------------------------
 Switching to websocket allows easier debugging of the message stream:
 {{{
     {"message": {"stepid": 957, "num_lines": 217, "name": "stdio",
 "logid": 951, "type": "s", "slug": "stdio", "complete": true}, "key":
 "steps/957/logs/stdio/finished"}       165
     13:41:25.775
     {"message": {"stepid": 957, "num_lines": 218, "name": "stdio",
 "logid": 951, "type": "s", "slug": "stdio", "complete": true}, "key":
 "steps/957/logs/stdio/append"} 163
     13:41:25.782
     {"message": {"stepid": 957, "complete_at": null, "complete": false,
 "buildid": 239, "number": 2, "results": null, "urls": [], "state_string":
 "'/bin/bash -c ...'", "hidden": false, "started_at": 1426596039, "name":
 "pip install -r re..."}, "key": "builds/239/steps/957/updated"}      278
     13:41:25.790
     {"message": {"stepid": 957, "num_lines": 219, "name": "stdio",
 "logid": 951, "type": "s", "slug": "stdio", "complete": true}, "key":
 "steps/957/logs/stdio/append"} 163
     13:41:25.799
     {"message": {"stepid": 957, "complete_at": 1426596085, "complete":
 true, "buildid": 239, "number": 2, "results": 0, "urls": [],
 "state_string": "'/bin/bash -c ...'", "hidden": false, "started_at":
 1426596039, "name": "pip install -r re..."}, "key":
 "builds/239/steps/957/finished"}   281
     13:41:25.822
     {"message": {"buildrequestid": 237, "complete_at": null, "complete":
 false, "buildslaveid": 6, "builderid": 11, "buildid": 239, "results":
 null, "number": 10, "masterid": 1, "state_string": "finished",
 "started_at": 1426596037}, "key": "builders/11/builds/10/update"} 267
     13:41:25.876
     {"message": {"buildrequestid": 237, "complete_at": null, "complete":
 false, "buildslaveid": 6, "builderid": 11, "buildid": 239, "results":
 null, "number": 10, "masterid": 1, "state_string": "finished",
 "started_at": 1426596037}, "key": "builds/239/update"}    256
     13:41:25.878
     {"message": {"buildrequestid": 237, "complete_at": 1426596085,
 "complete": true, "buildslaveid": 6, "builderid": 11, "buildid": 239,
 "results": 0, "number": 10, "masterid": 1, "state_string": "finished",
 "started_at": 1426596037}, "key": "builders/11/builds/10/finished"}
 271
     13:41:25.899
     {"message": {"buildrequestid": 237, "complete_at": 1426596085,
 "complete": true, "buildslaveid": 6, "builderid": 11, "buildid": 239,
 "results": 0, "number": 10, "masterid": 1, "state_string": "finished",
 "started_at": 1426596037}, "key": "builds/239/finished"}        260
     13:41:25.905
     {"message": {"buildrequestid": 237, "complete_at": 1426596085,
 "complete": true, "builderid": 11, "waited_for": true, "claimed_at":
 1426596037, "results": 0, "priority": 0, "submitted_at": 1426596037,
 "claimed": true, "claimed_by_masterid": 1, "buildsetid": 237}, "key":
 "buildrequests/237/complete"}        300
     13:41:25.936
     {"message": {"stepid": 954, "complete_at": null, "complete": false,
 "buildid": 238, "number": 1, "results": null, "urls": [{"url":
 "https://metabuildbot.tl.intel.com/travis/#buildrequests/237", "name":
 "android_update-job #237"}, {"url":
 "https://metabuildbot.tl.intel.com/travis/#builders/11/builds/10", "name":
 "success: android_update-job #10"}], "state_string": "triggered
 android_update-job", "hidden": false, "started_at": 1426596036, "name":
 "trigger"}, "key": "builds/238/steps/954/updated"} 499
     13:41:25.996
     {"message": {"stepid": 954, "complete_at": null, "complete": false,
 "buildid": 238, "number": 1, "results": null, "urls": [{"url":
 "https://metabuildbot.tl.intel.com/travis/#buildrequests/237", "name":
 "android_update-job #237"}, {"url":
 "https://metabuildbot.tl.intel.com/travis/#builders/11/builds/10", "name":
 "success: android_update-job #10"}], "state_string": "triggered
 android_update-job", "hidden": false, "started_at": 1426596036, "name":
 "trigger"}, "key": "builds/238/steps/954/updated"} 499
     13:41:26.060
     {"message": {"stepid": 954, "complete_at": 1426596085, "complete":
 true, "buildid": 238, "number": 1, "results": 0, "urls": [{"url":
 "https://metabuildbot.tl.intel.com/travis/#buildrequests/237", "name":
 "android_update-job #237"}, {"url":
 "https://metabuildbot.tl.intel.com/travis/#builders/11/builds/10", "name":
 "success: android_update-job #10"}], "state_string": "triggered
 android_update-job", "hidden": false, "started_at": 1426596036, "name":
 "trigger"}, "key": "builds/238/steps/954/finished"}      502
     13:41:26.117
     {"message": {"buildrequestid": 236, "complete_at": null, "complete":
 false, "buildslaveid": 3, "builderid": 12, "buildid": 238, "results":
 null, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builders/12/builds/7/update"}   265
     13:41:26.224
     {"message": {"buildrequestid": 236, "complete_at": null, "complete":
 false, "buildslaveid": 3, "builderid": 12, "buildid": 238, "results":
 null, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builders/12/builds/7/update"}   265
     13:41:26.226
     {"message": {"buildrequestid": 236, "complete_at": null, "complete":
 false, "buildslaveid": 3, "builderid": 12, "buildid": 238, "results":
 null, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builds/238/update"}     255
     13:41:26.228
     {"message": {"buildrequestid": 236, "complete_at": 1426596085,
 "complete": true, "buildslaveid": 3, "builderid": 12, "buildid": 238,
 "results": 0, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builders/12/builds/7/finished"}
 269
     13:41:26.234
     {"message": {"buildrequestid": 236, "complete_at": 1426596085,
 "complete": true, "buildslaveid": 3, "builderid": 12, "buildid": 238,
 "results": 0, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builders/12/builds/7/finished"}
 269
     13:41:26.260
     {"message": {"buildrequestid": 236, "complete_at": 1426596085,
 "complete": true, "buildslaveid": 3, "builderid": 12, "buildid": 238,
 "results": 0, "number": 7, "masterid": 1, "state_string": "finished",
 "started_at": 1426596034}, "key": "builds/238/finished"} 259
     13:41:26.263
     {"message": {"buildrequestid": 236, "complete_at": 1426596085,
 "complete": true, "builderid": 12, "waited_for": false, "claimed_at":
 1426596034, "results": 0, "priority": 0, "submitted_at": 1426596034,
 "claimed": true, "claimed_by_masterid": 1, "buildsetid": 236}, "key":
 "buildrequests/236/complete"}       301
     13:41:26.284
     {"message": {"bsid": 236, "complete_at": 1426596085, "submitted_at":
 1426596034, "sourcestamps": [{"project": "", "ssid": 91, "repository":
 "ssh://sys_bbmain@android.intel.com:29418/a/buildbot/android_update",
 "created_at": 1426241484, "patch": null, "codebase": "android_update",
 "branch": "", "revision": ""}], "results": 0, "reason": "A build was
 forced by 'user': force build", "external_idstring": null, "complete":
 true}, "key": "buildsets/236/complete"}        460
     13:41:26.300

     1
     {"message": {"stepid": 957, "complete_at": null, "complete": false,
 "buildid": 239, "number": 2, "results": null, "urls": [], "state_string":
 "pending", "hidden": false, "started_at": 1426596039, "name": "pip install
 -r re..."}, "key": "builds/239/steps/957/started"}
     Name
     Path
 }}}

 We can see several bottlenecks.

 * Messages are sent twice: probably because they are listen via several
 mean, e.g build/*/* and build/1/*

 * lots of repeated information in json due to use of dictionaries.
    as our messages are completly specified, this might be a good idea to
 use an optional binary serialization like protobuf or amp, which are
 capable of ommiting attribute name by means of shared specification.

--
Ticket URL: <http://trac.buildbot.net/ticket/3235>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list