Changeset View
Changeset View
Standalone View
Standalone View
src/docs/user/cluster/cluster.diviner
| Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | |||||
| | Service | Setup | Availability | Loss Resistance | Scalability | | Service | Setup | Availability | Loss Resistance | Scalability | ||||
| |---------|-------|--------------|-----------|------------ | |---------|-------|--------------|-----------|------------ | ||||
| | **Databases** | Moderate | **High** | **High** | Low | | **Databases** | Moderate | **High** | **High** | Low | ||||
| | **Repositories** | Complex | Moderate | **High** | Moderate | | **Repositories** | Complex | Moderate | **High** | Moderate | ||||
| | **Daemons** | Minimal | Low | No Risk | Low | | **Daemons** | Minimal | Low | No Risk | Low | ||||
| | **SSH Servers** | Minimal | Low | No Risk | Low | | **SSH Servers** | Minimal | Low | No Risk | Low | ||||
| | **Web Servers** | Minimal | **High** | No Risk | Moderate | | **Web Servers** | Minimal | **High** | No Risk | Moderate | ||||
| | **Notifications** | Minimal | Low | No Risk | Low | | **Notifications** | Minimal | Low | No Risk | Low | ||||
| | **Fulltext Search** | Moderate | **High** | Minimal Risk | Moderate | |||||
| See below for a walkthrough of these services in greater detail. | See below for a walkthrough of these services in greater detail. | ||||
| Preparing for Clustering | Preparing for Clustering | ||||
| ======================== | ======================== | ||||
| To begin deploying Phabricator in cluster mode, set up `cluster.addresses` | To begin deploying Phabricator in cluster mode, set up `cluster.addresses` | ||||
| ▲ Show 20 Lines • Show All 174 Lines • ▼ Show 20 Lines | |||||
| service provides no resistance to data loss because no data is at risk. | service provides no resistance to data loss because no data is at risk. | ||||
| Notification delivery normally requires very few resources, so adding more | Notification delivery normally requires very few resources, so adding more | ||||
| hosts is unlikely to have much impact on scalability. | hosts is unlikely to have much impact on scalability. | ||||
| For details, see @{article:Cluster: Notifications}. | For details, see @{article:Cluster: Notifications}. | ||||
| Cluster: Fulltext Search | |||||
| ======================== | |||||
| At a certain scale, you may begin to bump up against the limitations of MySQL's | |||||
| built-in fulltext search capabilities. We have seen this with very large | |||||
| installations with several million objects in the database and very many | |||||
| simultaneous requests. At this point you may consider adding Elasticsearch | |||||
| hosts to your cluster to reduce the load on your MySQL hosts. | |||||
| Elasticsearch has the ability to spread the load across multiple hosts and can | |||||
| handle very large indexes by sharding. | |||||
| Search does not involve any risk of data lost because it's always possible to | |||||
| rebuild the search index from the original database objects. This process can | |||||
| be very time consuming, however, especially when the database grows very large. | |||||
| With multiple Elasticsearch hosts, you can survive the loss of a single host | |||||
| with minimal disruption as Phabricator will detect the problem and direct | |||||
| queries to one of the remaining hosts. | |||||
| Phabricator supports writing to multiple indexing servers. This Simplifies | |||||
| Elasticsearch upgrades and makes it possible to recover more quickly from | |||||
| problems with the search index. | |||||
| For details, see @{article:Cluster: Search}. | |||||
| Overlaying Services | Overlaying Services | ||||
| =================== | =================== | ||||
| Although hosts can run a single dedicated service type, certain groups of | Although hosts can run a single dedicated service type, certain groups of | ||||
| services work well together. Phabricator clusters usually do not need to be | services work well together. Phabricator clusters usually do not need to be | ||||
| very large, so deploying a small number of hosts with multiple services is a | very large, so deploying a small number of hosts with multiple services is a | ||||
| good place to start. | good place to start. | ||||
| ▲ Show 20 Lines • Show All 79 Lines • Show Last 20 Lines | |||||