Page MenuHomePhabricator

Allow index extensions to skip indexing if the object has not changed
ClosedPublic

Authored by epriestley on Dec 21 2015, 7:18 PM.
Tags
None
Referenced Files
F14387998: D14845.id35880.diff
Sat, Dec 21, 3:28 PM
Unknown Object (File)
Tue, Dec 10, 2:03 AM
Unknown Object (File)
Sat, Dec 7, 3:55 PM
Unknown Object (File)
Thu, Dec 5, 8:02 AM
Unknown Object (File)
Wed, Dec 4, 6:44 AM
Unknown Object (File)
Tue, Dec 3, 10:03 AM
Unknown Object (File)
Fri, Nov 29, 5:35 PM
Unknown Object (File)
Fri, Nov 29, 5:35 PM
Subscribers
None

Details

Summary

Fixes T9890. This allows IndexExtensions to emit an object version.

Before we build indexes, we check if the indexed version is the same as the current version. If it is, we just don't call that extension.

T9890 has a case where this is useful: a script went crazy and posted thousands of comments to a single task.

Without versioning, that results in the same comments being indexed over and over again. With versioning, most of the queue could just exit without doing any work.

Test Plan
  • Added a sleep(1) to the actual indexing, used bin/search index --background to queue up a lot of tasks, ran them with bin/phd debug task, saw them complete very quickly with only one actual index operation performed.
  • Used bin/search index --trace and bin/search index --trace --background to observe the behavior of queries against the index version store, which looked sensible.
  • Made comments/transactions, saw versions update.
  • Used bin/remove destroy, verified index versions were purged.

Diff Detail

Repository
rP Phabricator
Branch
index8
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 9699
Build 11635: Run Core Tests
Build 11634: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Allow index extensions to skip indexing if the object has not changed.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
This revision is now accepted and ready to land.Dec 21 2015, 8:33 PM
This revision was automatically updated to reflect the committed changes.