Homec4science

Namespace Aphlict clients by request path, plus other fixes

Authored by epriestley <git@epriestley.com> on Feb 16 2015, 20:31.

Description

Namespace Aphlict clients by request path, plus other fixes

Summary:
Fixes T7130. Fixes T7041. Fixes T7012.

Major change here is partitioning clients. In the Phacility cluster, being able to get a huge pile of instances on a single server -- without needing to run a process per instance -- is desirable.

To accomplish this, just bucket clients by the path they connect with. This will let us set client URIs to /instancename/ and then route connections to a small set of servers. This degrades cleanly in the common case and has no effect on installs which don't do instancing.

Also fix two unrelated issues:

  • Fix the timeouts, which were incorrectly initializing in open() (which is called during reconnect, causing them to reset every time). Instead, initialize in the constructor. Cap timeout at 5 minutes.
  • Probably fix subscriptions, which were using a property with an object definition. Since this is by-ref, all concrete instances of the object share the same property, so all users would be subscribed to everything. Probably.

Test Plan:

  • Hit notification status page, saw version bump and instance/path name.
  • Saw instance/path name in client and server logs.
  • Stopped server, saw reconnects after 2, 4, 16, ... seconds.
  • Sent test notification; received test notification.
  • Didn't explicitly test the subscription thing but it should be obvious by looking at /notification/status/ shortly after a push.

Reviewers: joshuaspence, btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7041, T7012, T7130

Differential Revision: https://secure.phabricator.com/D11769

Details

Committed
epriestley <git@epriestley.com>Feb 16 2015, 20:31
Pushed
aubortJan 31 2017, 17:16
Parents
rPH9a9c4afe5964: Improve error messaging for empty Conpherence threads
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHebcab8edb69d: Namespace Aphlict clients by request path, plus other fixes (authored by epriestley <git@epriestley.com>).Feb 16 2015, 20:31