Page MenuHomePhabricator

Begin improving modularity of IndexEngine, add locks
ClosedPublic

Authored by epriestley on Dec 21 2015, 1:50 PM.

Details

Summary

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

Indexing:

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

Locking:

  • 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

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
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.