Page MenuHomePhabricator

Implement EntityStore service
Closed, ResolvedPublic

Description

EntityStore should abstract the storage of entities, so they could be stored in a place other than wiki pages. In effect, this means we'll avoid using EntityContent whenever possible, and eventually deprecate EntityContent::save.

Doing so will, among other things, allow unit tests for our API modules to not touch the database.

This involves several steps:

  1. factor caching out of WikiPageEntityLookup
  2. implement WikiPageEntityStore (including a purging mechanism for caching EntityLookup)
  3. refactor EditEntity to use EntityStore, decoupeling it from EntityContent
  4. move storage logic from EntityContent::save to WikiPageEntityStore::saveEntity, deprecate EntityContent::save
  5. refactor remaining uses of EntityContent::save to use an EntityStore instead.

Version: unspecified
Severity: normal
Whiteboard: u=dev c=story p=0

Details

Reference
bz61264

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 3:04 AM
bzimport set Reference to bz61264.
daniel created this task.Feb 12 2014, 2:08 PM

Change 102496 had a related patch set uploaded by Tobias Gritschacher:
(bug 61264) Introducing WikiPageEntityStore

https://gerrit.wikimedia.org/r/102496

Change 112934 had a related patch set uploaded by Daniel Kinzler:
(Bug 61264) Refactoring EditEntity to use EntityStore

https://gerrit.wikimedia.org/r/112934

Change 112934 had a related patch set uploaded by Daniel Kinzler:
(bug 61264) Refactoring EditEntity to use EntityStore

https://gerrit.wikimedia.org/r/112934

Change 102496 merged by jenkins-bot:
(bug 61264) Introducing WikiPageEntityStore

https://gerrit.wikimedia.org/r/102496