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