Ticket #1953 (closed enhancement: fixed)
add aggressive caching in the db layer
| Reported by: | dustin | Owned by: | |
|---|---|---|---|
| Priority: | critical | Milestone: | 0.8.4 |
| Version: | master | Keywords: | database, performance |
| Cc: |
Description
This should be implemented at master.db.cache and should have a configurable global size limit. It should probably also be able to cache process objects (the results of fromSsdict, fromChdict, etc.)
A few details:
- lots of tables are write-only, so those can be cached easily and newly-written records should go into the cache too (write-through)
- dynamic state should be written through a write-coalescing cache
- scheduler state
- build request / buildset results
Change History
comment:2 Changed 2 years ago by dustin
beaker doesn't seem to implement what we need, yet brings a lot of baggage to implement things we don't need (web sessions, pluggable backends, etc.)
Options with compatible licenses:
comment:3 Changed 2 years ago by catlee
It would be nice if you could configure buildbot to use an external memcached or redis cache.
comment:4 Changed 2 years ago by Dustin J. Mitchell
- Status changed from new to closed
- Resolution set to fixed
Implement caching
This is conservative in how it caches database dictionaries, but more aggressive with process objects.
- bug1953: cache Change instances cache BuildRequest? instances cache SourceStamps?; add a fakemaster module to help tests cache db results Add @base.cached for DBConnectorComponents add master.caches, so-far unused AsyncLRUCache changes
Fixes #1953.
Changeset: 9e2408449d0fb9d10807ab03bb0cd4cb38a42800
Note: See
TracTickets for help on using
tickets.
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
Amar recommends http://beaker.groovie.org/