- name + property:
Foo.html
- CAS on
revision
property, HTTP transaction- also used for listing of MW revisions per page
- updated as dependent of CAS, possibly using pre-generated oldid
Need to look into access patterns
- key-value bucket (not revisioned) with JSON blob for values
- alternatively, a set bucket type for more efficient updates
Ordered key-value bucket - ordered -> single partition (or at least a skip list on single partition) - if data is not very sparse, can bucket by date or the like to limit size per partition
Ordered key-value bucket
user -> namespace / title
- queue bucket
- value: blob
- unordered key-value
- key: blob, int, tid
- value: blob, set, map
- ordered [revisioned] key-value
- key: blob, int, tid
- value: blob, set, map
- pages: everything needed to back a wiki's textual content, but not media
- revisioned page store
- link tables
- recentchanges?
- search? might want to index this globally with domain attribute, then query with domain for per-wiki search
Potentially global:
- media
- users
- timeline / notifications
- contributions
- blocking
- watchlist with inverted index url -> watchers
- subscriptions
- url pattern, event -> list of urls
- url, event -> list of urls
- jobs
- rest job queues with execution in restbase
- recent changes
- search
- persistent caches
- i18n
- RL
- analytics
- logging
- counters
- search / action=query type stuff
- citation service; actually likely to use storage later (cache)
- PHP API:
- feeds: recent changes, contributions
- purge
- emailuser
- globalblock
- abusefilter*
- pagetriage*
- titleblacklist