Page MenuHomePhabricator

Support application partitioning across multiple masters
ClosedPublic

Authored by epriestley on Nov 16 2016, 1:17 AM.
Tags
None
Referenced Files
F13282172: D16876.diff
Sun, Jun 2, 11:46 AM
F13267005: D16876.id40633.diff
Tue, May 28, 11:32 PM
F13254538: D16876.id40633.diff
Sat, May 25, 3:29 AM
F13243807: D16876.diff
Thu, May 23, 4:14 AM
F13239014: D16876.id.diff
Tue, May 21, 11:27 PM
F13238182: D16876.id40680.diff
Tue, May 21, 5:39 PM
F13236109: D16876.diff
Tue, May 21, 8:07 AM
F13223765: D16876.id40689.diff
Sun, May 19, 4:57 AM
Subscribers
None
Tokens
"Party Time" token, awarded by thoughtpolice."Grey Medal" token, awarded by yelirekim.

Details

Summary

Ref T11044. I'm going to hold this until after the release cut, but I think it's good to go.

This allows installs to configure multiple masters in cluster.databases and partition applications across them (for example, put Maniphest on a dedicated database).

When we make a Maniphest connection we go look up which master we should be hitting first, then connect to it.

This has at least approximately been planned for many years, so the actual change is largely just making sure that your config makes sense.

Test Plan
  • Configured db001.epriestley.com and db002.epriestley.com as master/master.
  • Partitioned applications between them.
  • Interacted with various applications, saw writes go to the correct host.
  • Viewed "Database Servers" and saw partitioning information.
  • Ran schema upgrades.

Diff Detail

Repository
rP Phabricator
Branch
partition1
Lint
Lint Passed
SeverityLocationCodeMessage
Advicesrc/infrastructure/cluster/PhabricatorDatabaseRefParser.php:121XHP16TODO Comment
Unit
Tests Passed
Build Status
Buildable 14521
Build 18936: Run Core Tests
Build 18935: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Support application partitioning across multiple masters.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
  • Actually test this somewhat, tweak a few things, wordsmith the documentation.
chad edited edge metadata.
This revision is now accepted and ready to land.Nov 18 2016, 6:43 PM
This revision was automatically updated to reflect the committed changes.