Page MenuHomePhabricator

After a fulltext write to a particular service fails, keep trying writes to other services
ClosedPublic

Authored by epriestley on Apr 2 2017, 4:59 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, May 24, 4:17 AM
Unknown Object (File)
Apr 10 2017, 8:24 AM
Unknown Object (File)
Apr 10 2017, 8:24 AM
Unknown Object (File)
Apr 10 2017, 8:24 AM
Unknown Object (File)
Apr 9 2017, 12:17 AM
Unknown Object (File)
Apr 4 2017, 4:32 PM
Unknown Object (File)
Apr 3 2017, 10:10 PM
Unknown Object (File)
Apr 2 2017, 6:01 PM
Subscribers
None

Details

Summary

Ref T12450. Currently, if a write fails, we stop and don't try to write to other index services. There's no technical reason not to keep trying writes, it makes some testing easier, and it would improve behavior in a scenario where engines are configured as "primary" and "backup" and the primary service is having some issues.

Also, make "no writable services are configured" acceptable, rather than an error. This state is probably goofy but if we want to detect it I think it should probably be a config-validation issue, not a write-time check. I also think it's not totally unreasonable to want to just turn off all writes for a while (maybe to reduce load while you're doing a background update).

Test Plan
  • Configured a bad ElasticSearch engine and a good MySQL engine.
  • Ran bin/search index ... --force.
  • Saw MySQL get updated even though ElasticSearch failed.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from After a fulltext write fails, keep trying writes to After a fulltext write to a particular service fails, keep trying writes to other services.Apr 2 2017, 5:05 PM

Yes this seems reasonable.

This revision is now accepted and ready to land.Apr 2 2017, 8:39 PM
This revision was automatically updated to reflect the committed changes.