[Buildbot-devel] schedulerdb progress update
Brian Warner
warner at lothar.com
Tue Nov 3 20:43:35 UTC 2009
Buildbot-schedulerdb status report, 11/03/2009
= Code =
As before, latest code is published on GitHub:
http://github.com/warner/buildbot/tree/schedulerdb-REBASES
= Progress Since Last Update =
* end-to-end unit test (in test_db.py) implemented and working
* end-to-end manual system tests work, both sqlite and mysql
* moved all SQL into db.py
* added generic key-value store, for e.g. polling ChangeSources
* ported all Schedulers except Try
* BuildRequest claims are updated every 10 minutes
Code is now ready for early system testing: time to shake out the
boneheaded bugs, and find out which Status interfaces were broken.
Install a new buildmaster ("buildbot create-master" and "buildbot
upgrade-master" will create the database), give it a buildslave, and see
what happens.
= Next Steps =
* port Try
* historydb
* graceful master shutdown
* update unit tests, make them run again (currently most tests fail)
= Remaining Work =
* what history do we want to preserve? where should it be stored?
separate tables?
* change allocate-next-highest-idnumber technique
* figure out status interfaces for scheduler pieces:
BuildRequestStatus, (current) BuilderStatus. Any "statusdb" work is
explicitly deferred, but the existing interfaces need to keep working
even if their backing store has been moved from RAM to the DB
* avoid race condition in claiming buildrequests (only update if the
claimed_at/claimed_by is unchanged)
* db loss/reconnection handling
* retain compatibility with c['prioritizeBuilders']
* figure out GC: keep DB from unbounded growth, remove old/unused
SourceStamp/BuildRequest/Properties rows
* construct buildmaster identity (for buildrequest claim):
name+boottime
* clean up mixed sync/async DB access: decide on what should not block,
what can block, where the complexity of returning Deferreds is
warranted
cheers,
-Brian
More information about the devel
mailing list