Page MenuHomePhabricator

Begin improving modularity of IndexEngine, add locks

Authored by epriestley on Dec 21 2015, 1:50 PM.
Referenced Files
Unknown Object (File)
Sat, Apr 6, 9:11 PM
Unknown Object (File)
Mon, Apr 1, 1:19 PM
Unknown Object (File)
Mon, Apr 1, 1:19 PM
Unknown Object (File)
Mon, Apr 1, 1:19 PM
Unknown Object (File)
Fri, Mar 29, 3:00 PM
Unknown Object (File)
Mon, Mar 25, 6:51 AM
Unknown Object (File)
Mar 10 2024, 8:23 PM
Unknown Object (File)
Mar 5 2024, 3:41 PM



Ref T9890. Ref T9979. Several adjacent goals:

  • The SearchEngine vs ApplicationSearchEngine thing is really confusing. There are also a bunch of confusing class names and class relationships within the fulltext indexing. I want to rename these classes to be more standard (IndexEngine, IndexEngineExtension, etc). Rename SearchIndexer to IndexEngine. A future change will rename SearchEngine.
  • Add the index locks described in T9890.
  • Structure things a little more normally so future diffs can do the "EngineExtension" thing more cleanly.
Test Plan


  • Renamed a task to have a unique word in the title.
  • Ran bin/search index Txxx.
  • Searched for unique word.
  • Found task.


  • Added a sleep(10) after the lock() call.
  • Ran bin/search index Txxx in two windows.
  • Saw first one lock, sleep 10 seconds, index.
  • Saw second one give up temporarily after failing to grab the lock.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

chad edited edge metadata.
This revision is now accepted and ready to land.Dec 21 2015, 3:41 PM
This revision was automatically updated to reflect the committed changes.