Patches
Old Patch: Full Patch to 1.5.8 (uses the shelve - indexed by pattern storage)
Current Patch: Full Patch to 1.5.8 - as above, but with PEP8 names and using the MoinMoin locking
Stats:
exact page match subscriptions: 5986
regex patch match subscriptions: 330
unique users with subscriptions: 2075
unique users: 6929
Page edit network traces - this is to show the full transaction of editing a page
subscribers indexed by page - Elapsed time: 2023 ms (request to content ACKed)
moin 1.5.8 - Elapsed time: 4547 ms (request to content ACKed)
Common interface for all the below storage types
Directed tests - this is to show what the costs are for handling various subscriber-related functions
| test name | MoinMoin | MoinMoin, full check | tab+newline plaintext | cPickle dictionary | shelve (berkeleydb) | shelve - indexed by pattern |
|---|---|---|---|---|---|---|
| import-fedora-data | ||||||
| importing from watchlist | N/A | N/A | 142.834416s | 78.874324s | 4.154548s | 5.031032s |
| importing from watchregex | N/A | N/A | 0.524732s | 0.277272s | 0.207381s | 0.202354s |
| watchlist filesize | N/A | N/A | 237985 bytes | 247781 bytes | 413696 bytes | 368640 bytes |
| watchregex filesize | N/A | N/A | 24569 bytes | 24762 bytes | 53248 bytes | 86016 bytes |
| get-data | ||||||
| watch.getSubscribers(testpage) | 2.651502s | 3.916488s | 0.255608s | 0.208103s | 0.246036s | 0.193384s |
| watch.getSubscribers(Anaconda/YumBackend) | 2.646521s | 4.005000s | 0.253721s | 0.203917s | 0.196500s | 0.182879s |
| watch.getSubscribers(littlematch) | 2.630049s | 3.914399s | 0.252461s | 0.202844s | 0.194842s | 0.182977s |
| watch.getPatterns(1196818182.37.52713) | 0.000444s | 0.000446s | 0.066916s | 0.018142s | 0.000226s | 0.056860s |
| watch.getPatterns(1196818182.37.52719) | 0.000187s | 0.000131s | 0.067105s | 0.017750s | 0.000133s | 0.012631s |
| modify-data | ||||||
| adding three watches | skipped | skipped | 0.106339s | 0.075090s | 0.016419s | 0.018474s |
| removing one watch | skipped | skipped | 0.004368s | 0.001989s | 0.000521s | 0.000514s |
| removing all watchers by page | skipped | skipped | 0.060128s | 0.033408s | 0.111032s | 0.000501s |
| removing all watchers by user | skipped | skipped | 0.062856s | 0.034067s | 0.000831s | 0.122439s |
re-run directed tests, with spam regexes removed - this is to see how bad regexes affect runtime
exact page match subscriptions: 5986
regex patch match subscriptions: 204
unique users with subscriptions: 2075
unique users: 6929
| test name | shelve (berkeleydb) | shelve - indexed by pattern | |||
|---|---|---|---|---|---|
| import-fedora-data | |||||
| importing from watchlist | 4.015771s | 4.355164s | |||
| importing from watchregex | 0.108120s | 0.090643s | |||
| watchlist filesize | 413696 bytes | 368640 bytes | |||
| watchregex filesize | 12288 bytes | 24576 bytes | |||
| get-data | |||||
| watch.getSubscribers(testpage) | 0.090334s | 0.032994s | |||
| watch.getSubscribers(Anaconda/YumBackend) | 0.040205s | 0.031246s | |||
| watch.getSubscribers(littlematch) | 0.039993s | 0.028733s | |||
| watch.getPatterns(1196818182.37.52713) | 0.000193s | 0.057344s | |||
| watch.getPatterns(1196818182.37.52719) | 0.000133s | 0.011818s | |||