Page MenuHomePhabricator

Begin improving modularity of IndexEngine, add locks
ClosedPublic

Authored by epriestley on Dec 21 2015, 1:50 PM.
Tags
None
Referenced Files
F18085512: D14834.id.diff
Tue, Aug 5, 7:16 PM
F17947647: D14834.id.diff
Thu, Jul 31, 5:43 PM
F17928333: D14834.diff
Wed, Jul 30, 4:03 PM
F17868722: D14834.diff
Mon, Jul 28, 9:03 AM
F17668619: D14834.id35862.diff
Sat, Jul 12, 11:17 PM
Unknown Object (File)
Jun 29 2025, 3:11 PM
Unknown Object (File)
Jun 15 2025, 10:04 PM
Unknown Object (File)
Jun 1 2025, 9:03 PM
Subscribers
None

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.