Page MenuHomePhabricator
Feed Advanced Search

Nov 22 2016

epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.

I'm partitioning secure.phabricator.com now. Things will drop into read-only mode for a bit.

Nov 22 2016, 6:03 PM · Clusters, Prioritized
epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.
  • T11908 is a followup for executing queries for multiple applications on a single connection. I believe the pathway for that is straightforward and fairly short, but that no install would really reap substantial benefits from it today, so I don't expect to pursue it for some time.
  • I believe everything else is now complete, so I'll put this in production as soon as everything here lands and we can see what catches on fire.
Nov 22 2016, 2:58 PM · Clusters, Prioritized
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 22 2016, 2:55 PM · Clusters, Prioritized
epriestley added a revision to T11672: Evaluate persistent connections from HTTP contexts: Restricted Differential Revision.
Nov 22 2016, 2:41 PM · Restricted Project, Performance, Clusters, Database
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 22 2016, 2:07 PM · Clusters, Prioritized
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 22 2016, 12:36 PM · Clusters, Prioritized
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 22 2016, 2:08 AM · Clusters, Prioritized
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 22 2016, 1:05 AM · Clusters, Prioritized

Nov 21 2016

epriestley closed T10759: Run PhabricatorDatabase/MySQLSetupCheck against all configured replicas, a subtask of T11044: Support partitioning application databases across multiple database hosts, as Resolved.
Nov 21 2016, 11:56 PM · Clusters, Prioritized
epriestley added a parent task for T11672: Evaluate persistent connections from HTTP contexts: T11044: Support partitioning application databases across multiple database hosts.
Nov 21 2016, 4:01 PM · Restricted Project, Performance, Clusters, Database
epriestley added a subtask for T11044: Support partitioning application databases across multiple database hosts: T11672: Evaluate persistent connections from HTTP contexts.
Nov 21 2016, 4:01 PM · Clusters, Prioritized
epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.

We have at least one tricky issue remaining: when applying storage upgrades, we currently apply them like this:

Nov 21 2016, 3:48 PM · Clusters, Prioritized

Nov 19 2016

epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.

General state of the world here:

Nov 19 2016, 10:11 PM · Clusters, Prioritized

Nov 16 2016

epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 16 2016, 1:17 AM · Clusters, Prioritized

Nov 13 2016

epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.

D16115 + D16847 + D16848 make these changes:

Nov 13 2016, 12:48 AM · Clusters, Prioritized

Nov 12 2016

epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 12 2016, 8:05 PM · Clusters, Prioritized
epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Nov 12 2016, 5:27 PM · Clusters, Prioritized

Nov 8 2016

epriestley closed T11834: PhabricatorGuideQuickStartModule duplicates quickstart entries in cluster mode as Resolved by committing Restricted Diffusion Commit.
Nov 8 2016, 9:27 PM · Clusters, NUX, Phacility, Bug Report
epriestley added a revision to T11834: PhabricatorGuideQuickStartModule duplicates quickstart entries in cluster mode: Restricted Differential Revision.
Nov 8 2016, 9:21 PM · Clusters, NUX, Phacility, Bug Report
epriestley claimed T11834: PhabricatorGuideQuickStartModule duplicates quickstart entries in cluster mode.

It's just very
important to
thoroughly explore
the applications

Nov 8 2016, 9:19 PM · Clusters, NUX, Phacility, Bug Report
thoughtpolice created T11834: PhabricatorGuideQuickStartModule duplicates quickstart entries in cluster mode.
Nov 8 2016, 9:03 PM · Clusters, NUX, Phacility, Bug Report

Sep 29 2016

eadler added a project to T11672: Evaluate persistent connections from HTTP contexts: Restricted Project.
Sep 29 2016, 6:29 PM · Restricted Project, Performance, Clusters, Database

Sep 27 2016

epriestley closed T11524: Import-time diff generation fails for particular commits in cluster mode as Resolved.

This went out a while ago and I confirmed the fix in production.

Sep 27 2016, 4:43 PM · Phacility, Clusters, Daemons, Diffusion

Sep 23 2016

epriestley added a revision to T11672: Evaluate persistent connections from HTTP contexts: Restricted Differential Revision.
Sep 23 2016, 7:40 PM · Restricted Project, Performance, Clusters, Database
epriestley reopened T11672: Evaluate persistent connections from HTTP contexts as "Open".
Sep 23 2016, 7:37 PM · Restricted Project, Performance, Clusters, Database

Sep 21 2016

epriestley closed T11672: Evaluate persistent connections from HTTP contexts as Resolved.
Sep 21 2016, 9:47 PM · Restricted Project, Performance, Clusters, Database
epriestley added a comment to T11672: Evaluate persistent connections from HTTP contexts.

I've banged on this a reasonable amount locally without issues and the originating instance reports that this seems to have calmed things down in production with these patches, so it seems like this pretty much just worked.

Sep 21 2016, 9:47 PM · Restricted Project, Performance, Clusters, Database

Sep 20 2016

epriestley added a revision to T11672: Evaluate persistent connections from HTTP contexts: Restricted Differential Revision.
Sep 20 2016, 2:34 PM · Restricted Project, Performance, Clusters, Database
epriestley added a revision to T11672: Evaluate persistent connections from HTTP contexts: Restricted Differential Revision.
Sep 20 2016, 2:29 PM · Restricted Project, Performance, Clusters, Database
epriestley created T11672: Evaluate persistent connections from HTTP contexts.
Sep 20 2016, 1:54 PM · Restricted Project, Performance, Clusters, Database

Sep 8 2016

epriestley closed T11534: Repository clustering does not respect disabled bindings? as Invalid.

From reviewing the code, it appears that this should be handled correctly already.

Sep 8 2016, 3:43 PM · Almanac, Clusters

Sep 5 2016

epriestley closed T11590: "Repository Servers" panel in Config incorrectly displaying out-of-date leader information? as Resolved by committing Restricted Diffusion Commit.
Sep 5 2016, 6:10 PM · Clusters
epriestley added a revision to T11590: "Repository Servers" panel in Config incorrectly displaying out-of-date leader information?: Restricted Differential Revision.
Sep 5 2016, 5:39 PM · Clusters
epriestley created T11590: "Repository Servers" panel in Config incorrectly displaying out-of-date leader information?.
Sep 5 2016, 3:07 PM · Clusters

Sep 2 2016

epriestley added a comment to T11577: Initializing databases for the first time while already in cluster mode fails.

I believe this should be fixed in HEAD of master. It should promote to stable in about 24 hours.

Sep 2 2016, 3:23 PM · Clusters, Bug Report
epriestley closed T11577: Initializing databases for the first time while already in cluster mode fails as Resolved by committing Restricted Diffusion Commit.
Sep 2 2016, 3:23 PM · Clusters, Bug Report
epriestley added a revision to T11577: Initializing databases for the first time while already in cluster mode fails: Restricted Differential Revision.
Sep 2 2016, 3:08 PM · Clusters, Bug Report
epriestley added a comment to T11577: Initializing databases for the first time while already in cluster mode fails.

A bad half-fix for this is here:

Sep 2 2016, 3:01 PM · Clusters, Bug Report
epriestley renamed T11577: Initializing databases for the first time while already in cluster mode fails from Create db schema in cluster mode to Initializing databases for the first time while already in cluster mode fails.
Sep 2 2016, 2:56 PM · Clusters, Bug Report

Aug 30 2016

epriestley closed T11559: Add a list of individual repositories with update errors to "Repository Servers" page as Resolved.

I added a note about this to T7338 for the longer term.

Aug 30 2016, 4:25 PM · Clusters, Diffusion
epriestley added a revision to T11559: Add a list of individual repositories with update errors to "Repository Servers" page: Restricted Differential Revision.
Aug 30 2016, 3:57 PM · Clusters, Diffusion
epriestley created T11559: Add a list of individual repositories with update errors to "Repository Servers" page.
Aug 30 2016, 2:24 PM · Clusters, Diffusion

Aug 26 2016

epriestley added a revision to T11524: Import-time diff generation fails for particular commits in cluster mode: Restricted Differential Revision.
Aug 26 2016, 5:28 PM · Phacility, Clusters, Daemons, Diffusion
epriestley added a revision to T11524: Import-time diff generation fails for particular commits in cluster mode: Restricted Differential Revision.
Aug 26 2016, 3:14 PM · Phacility, Clusters, Daemons, Diffusion
epriestley added a revision to T11524: Import-time diff generation fails for particular commits in cluster mode: Restricted Differential Revision.
Aug 26 2016, 12:36 PM · Phacility, Clusters, Daemons, Diffusion
epriestley added a comment to T11524: Import-time diff generation fails for particular commits in cluster mode.

The particular issue is that that the change removed a file containing the bytes ... 0xE5 0x76 .... The 0xE5 is probably an å in Latin 1.

Aug 26 2016, 1:25 AM · Phacility, Clusters, Daemons, Diffusion
epriestley added a comment to T11524: Import-time diff generation fails for particular commits in cluster mode.

I extracted the response body prior to encoding as a serialized()'d object so I can narrow down what's causing the encoding to fail and it looks reasonable, looking like it's almost certainly a UTF8 issue now.

Aug 26 2016, 1:12 AM · Phacility, Clusters, Daemons, Diffusion
epriestley added a comment to T11524: Import-time diff generation fails for particular commits in cluster mode.

Not too surprisingly, the response is empty. AphrontResponse->encodeJSONForHTTPResponse() uses json_encode() and does not detect UTF8-related encoding failures, so the chance that this is a UTF8 issue is pretty high. We should also probably fix that so fail earlier and more explicitly (and don't emit HTTP 200).

Aug 26 2016, 1:04 AM · Phacility, Clusters, Daemons, Diffusion
epriestley added a comment to T11524: Import-time diff generation fails for particular commits in cluster mode.

The next step I want to take is figuring out what the actual problematic response body looks like, but that's slightly tricky right now because there's no way to make Conduit calls from the CLI.

Aug 26 2016, 1:00 AM · Phacility, Clusters, Daemons, Diffusion

Aug 25 2016

epriestley added a comment to T11534: Repository clustering does not respect disabled bindings?.

From IRC, this might be a false positive / not the root cause since destroying the binding didn't fix the problem, but I can run through things locally.

Aug 25 2016, 11:51 PM · Almanac, Clusters
epriestley created T11534: Repository clustering does not respect disabled bindings?.
Aug 25 2016, 11:10 PM · Almanac, Clusters

Aug 24 2016

Grimeh updated Q470: Best way to make use of Phabricator in multi-site company? from Best way to have multi-site Phabricator instance to Best way to make use of Phabricator in multi-site company?.
Aug 24 2016, 3:33 PM · Clusters, Arcanist, Differential, Diffusion
Grimeh updated Q470: Best way to make use of Phabricator in multi-site company? from to Best way to have multi-site Phabricator instance.
Aug 24 2016, 3:32 PM · Clusters, Arcanist, Differential, Diffusion
epriestley created T11524: Import-time diff generation fails for particular commits in cluster mode.
Aug 24 2016, 11:09 AM · Phacility, Clusters, Daemons, Diffusion

Aug 22 2016

epriestley added a project to T11360: Detect MySQL `read_only` and degrade masters to replicas: Contributor Onboarding.

Although this is cluster-related, it can be tested with a single database host and is probably not exceptionally difficult to handle better. Briefly:

Aug 22 2016, 5:34 PM · Contributor Onboarding, Restricted Project, Clusters

Aug 10 2016

epriestley updated subscribers of T11446: Misleading "No valid databases are configured!" error can arise from newClusterConnection().

@jmeador, this error should no longer be misleading in HEAD of master. Let us know if you run into more stuff, and thanks for the report!

Aug 10 2016, 8:06 PM · Clusters
epriestley closed T11446: Misleading "No valid databases are configured!" error can arise from newClusterConnection() as Resolved by committing Restricted Diffusion Commit.
Aug 10 2016, 8:06 PM · Clusters
epriestley added a revision to T11446: Misleading "No valid databases are configured!" error can arise from newClusterConnection(): Restricted Differential Revision.
Aug 10 2016, 7:04 PM · Clusters

Aug 9 2016

epriestley created T11446: Misleading "No valid databases are configured!" error can arise from newClusterConnection().
Aug 9 2016, 12:17 AM · Clusters

Jul 25 2016

eadler added a project to T11360: Detect MySQL `read_only` and degrade masters to replicas: Restricted Project.
Jul 25 2016, 4:23 PM · Contributor Onboarding, Restricted Project, Clusters

Jul 22 2016

epriestley created T11360: Detect MySQL `read_only` and degrade masters to replicas.
Jul 22 2016, 3:21 AM · Contributor Onboarding, Restricted Project, Clusters

Jul 8 2016

epriestley closed T11045: Inching an install toward repository clustering as Resolved.

Presuming resolved based on followup issues and stargazing.

Jul 8 2016, 2:48 PM · Guides, Clusters

Jul 4 2016

epriestley closed T11159: Cluster detection of "replication OK" is unreasonably optimistic as Resolved by committing Restricted Diffusion Commit.
Jul 4 2016, 1:14 AM · Prioritized, Clusters

Jul 3 2016

epriestley moved T11159: Cluster detection of "replication OK" is unreasonably optimistic from The Queue to Paused on the Prioritized board.
Jul 3 2016, 11:41 PM · Prioritized, Clusters
epriestley added a revision to T11159: Cluster detection of "replication OK" is unreasonably optimistic: Restricted Differential Revision.
Jul 3 2016, 9:15 PM · Prioritized, Clusters

Jul 2 2016

epriestley moved T11159: Cluster detection of "replication OK" is unreasonably optimistic from Backlog to The Queue on the Prioritized board.
Jul 2 2016, 7:00 PM · Prioritized, Clusters

Jun 17 2016

epriestley added a project to T11159: Cluster detection of "replication OK" is unreasonably optimistic: Prioritized.
Jun 17 2016, 5:30 PM · Prioritized, Clusters

Jun 16 2016

epriestley created T11159: Cluster detection of "replication OK" is unreasonably optimistic.
Jun 16 2016, 5:50 PM · Prioritized, Clusters
epriestley added a subtask for T11044: Support partitioning application databases across multiple database hosts: T10759: Run PhabricatorDatabase/MySQLSetupCheck against all configured replicas.
Jun 16 2016, 12:30 PM · Clusters, Prioritized

Jun 15 2016

epriestley moved T11044: Support partitioning application databases across multiple database hosts from Preflight to The Queue on the Prioritized board.
Jun 15 2016, 1:09 PM · Clusters, Prioritized

Jun 14 2016

epriestley added a revision to T11044: Support partitioning application databases across multiple database hosts: Restricted Differential Revision.
Jun 14 2016, 6:15 PM · Clusters, Prioritized

Jun 9 2016

epriestley added a comment to T11044: Support partitioning application databases across multiple database hosts.

After a little thought, I'm leaning strongly to putting every schema on every database. I think this makes a lot of the administration, maintenance and implementation easier.

Jun 9 2016, 1:35 PM · Clusters, Prioritized

Jun 8 2016

chad added projects to T10768: Provide tools to drop severed nodes from load balancer pools by failing status checks: Database, Clusters.
Jun 8 2016, 4:51 PM · Clusters, Database
chad added a project to T10769: Read-Only Mode Errata: Clusters.
Jun 8 2016, 4:51 PM · Clusters

May 30 2016

epriestley created T11057: Allow installs to manage which cluster service new repositories allocate on.
May 30 2016, 6:14 PM · Diffusion, Clusters
epriestley created T11056: Send some database traffic to replicas even while the master is still alive.
May 30 2016, 5:53 PM · Clusters
epriestley closed T11042: Cluster documentation leads you slightly awry about "read only mode" as Resolved by committing Restricted Diffusion Commit.
May 30 2016, 4:30 PM · Clusters, Bug Report
epriestley added a comment to T11042: Cluster documentation leads you slightly awry about "read only mode".

Prior to D15987, the easiest fix for this was to add --force:

May 30 2016, 3:37 PM · Clusters, Bug Report
epriestley added a revision to T11042: Cluster documentation leads you slightly awry about "read only mode": Restricted Differential Revision.
May 30 2016, 3:34 PM · Clusters, Bug Report

May 27 2016

epriestley moved T11044: Support partitioning application databases across multiple database hosts from Backlog to Preflight on the Prioritized board.
May 27 2016, 2:17 AM · Clusters, Prioritized
hach-que added a comment to T11042: Cluster documentation leads you slightly awry about "read only mode".

I was kind of expecting that 'cluster.read-only' would be a database configuration value, not a local configuration value. Otherwise you need to update all nodes in the cluster instead of just setting the flag in the DB. My expectation when the cluster DB is read-only is that only the following operations work:

May 27 2016, 12:29 AM · Clusters, Bug Report

May 26 2016

epriestley added a project to T11045: Inching an install toward repository clustering: Guides.
May 26 2016, 8:24 PM · Guides, Clusters
epriestley created T11045: Inching an install toward repository clustering.
May 26 2016, 8:24 PM · Guides, Clusters
epriestley created T11044: Support partitioning application databases across multiple database hosts.
May 26 2016, 8:06 PM · Clusters, Prioritized
epriestley added a comment to T11042: Cluster documentation leads you slightly awry about "read only mode".

I think I didn't actually do these things, I did a different and more horrible set of things and then wrote these great instructions to avoid all the msitakes I made. I'll attempt to let dump pierce through read-only, or find some other solution if that isn't straightforward.

May 26 2016, 7:45 PM · Clusters, Bug Report
epriestley claimed T11042: Cluster documentation leads you slightly awry about "read only mode".
May 26 2016, 7:20 PM · Clusters, Bug Report
epriestley added a comment to T11043: Database status page throws an exception if `mysql.host` not explicitly set in a clustered environment.

Should be fixed in HEAD of master. Thanks for the report!

May 26 2016, 7:17 PM · Database, Clusters, Bug Report
epriestley closed T11043: Database status page throws an exception if `mysql.host` not explicitly set in a clustered environment as Resolved by committing Restricted Diffusion Commit.
May 26 2016, 7:14 PM · Database, Clusters, Bug Report
epriestley added a revision to T11043: Database status page throws an exception if `mysql.host` not explicitly set in a clustered environment: Restricted Differential Revision.
May 26 2016, 7:13 PM · Database, Clusters, Bug Report
epriestley added projects to T11043: Database status page throws an exception if `mysql.host` not explicitly set in a clustered environment: Clusters, Database.
May 26 2016, 7:03 PM · Database, Clusters, Bug Report

May 24 2016

epriestley closed T11020: Pushing to an unactivated cluster repository can freeze the repository in a locked state? as Resolved by committing Restricted Diffusion Commit.
May 24 2016, 12:55 AM · Clusters, Diffusion
epriestley added a revision to T11020: Pushing to an unactivated cluster repository can freeze the repository in a locked state?: Restricted Differential Revision.
May 24 2016, 12:15 AM · Clusters, Diffusion

May 23 2016

epriestley created T11020: Pushing to an unactivated cluster repository can freeze the repository in a locked state?.
May 23 2016, 10:17 PM · Clusters, Diffusion

May 13 2016

eadler edited projects for T10127: Migrating repository between storage hosts in a cluster, added: Clusters; removed Restricted Project.
May 13 2016, 6:05 PM · Clusters, Feature Request

May 12 2016

epriestley closed T10940: Enrolling an existing device in a repository cluster has surprising effects and inconsistent severity as Resolved by committing Restricted Diffusion Commit.
May 12 2016, 10:51 PM · Diffusion, Clusters
epriestley added a revision to T10940: Enrolling an existing device in a repository cluster has surprising effects and inconsistent severity: Restricted Differential Revision.
May 12 2016, 9:31 PM · Diffusion, Clusters
epriestley closed T10860: After an inconsistent cluster repository write, consider just ignoring the lock as Resolved.

Going any farther than this risks some inconsistency / data loss and we haven't managed to break this yet, so I'm going to consider this sufficiently robust until we see evidence otherwise.

May 12 2016, 2:10 PM · Clusters, Diffusion

May 9 2016

epriestley created T10940: Enrolling an existing device in a repository cluster has surprising effects and inconsistent severity.
May 9 2016, 8:15 PM · Diffusion, Clusters

May 7 2016

• rubenriverae added a project to T8476: Rename `phabricator_repository` database: Clusters.
May 7 2016, 11:58 AM · Restricted Project, Database, Diffusion

Apr 27 2016

epriestley added a comment to T10884: Sort repository, database and notification services better (by network distance).

Yeah, measuring latency and using it as a signal is tricky. If there's a long disruption and Oregon measures faster than N. California for "a while", we probably legitimately want to use it. If N. California completely goes down, we almost certainly want to keep things alive and send writes to Mars, even if Mars is at a huge network distance, since "slow write" is probably almost always better than "complete failure" (although maybe Mars bandwith is so much more expensive that we don't want to fail over to it, or the size of the link is small enough that it simply can't accommodate the failover traffic).

Apr 27 2016, 11:47 AM · Clusters