Commit Graph

104 Commits

Author SHA1 Message Date
James Phillips eb4bfa3411 Prevents agents from considering Raft information when doing sync checks. 2015-10-28 14:32:00 -07:00
James Phillips b91e2d3a97 Completes rebase of network coordinates to new memdb. 2015-10-23 15:23:01 -07:00
James Phillips a2bcef00a0 Adds endpoints for raw network coordinates. 2015-10-23 15:23:01 -07:00
James Phillips ee1cf1e13b Adds distance sorting to health endpoint. Cleans up unit tests. 2015-10-23 15:23:01 -07:00
James Phillips b63909cf67 Adds coordinate sorting support to catalog queries for nodes and service nodes. 2015-10-23 15:23:01 -07:00
James Phillips acb0dce829 Moves batching down into the state store and changes it to fail-fast.
* A batch of updates is done all in a single transaction.
* We no longer need to get an update to kick things, there's a periodic flush.
* If incoming updates overwhelm the configured flush rate they will be dumped with an error.
2015-10-23 15:23:01 -07:00
James Phillips 9c069c5031 Removes one more WAN leftover. 2015-10-23 15:23:01 -07:00
James Phillips edb9a119e2 Does a clean up pass on the Consul side. 2015-10-23 15:23:01 -07:00
Derek Chiang b805215237 Address comments 2015-10-23 15:23:01 -07:00
Derek Chiang eb599a1745 Address comments 2015-10-23 15:23:01 -07:00
Derek Chiang 23c08aeeb4 Use IndexedCoordinate instead 2015-10-23 15:23:01 -07:00
Derek Chiang def0a2f5ab Change GET API a little bit 2015-10-23 15:23:01 -07:00
Derek Chiang b5bbe2bcfa Adding tests and stuff 2015-10-23 15:23:01 -07:00
Derek Chiang e54c8f2ea0 Start adding stuff 2015-10-23 15:23:01 -07:00
James Phillips 498c4a989a Converts nodes, services, checks to iterators duing dumps; fixes tag drift bug.
Realized that the conversions ServiceNode <-> NodeService were incomplete in a
few places so centralized those and added some tests.
2015-10-19 13:55:35 -07:00
James Phillips e285af5d1c Does some go fmt after latest round of changes. 2015-10-15 14:59:09 -07:00
James Phillips ca220c9717 Adds clone for service nodes so we don't twiddle the database's object. 2015-10-15 14:59:09 -07:00
James Phillips 04b365495d Completes state store for KV, sessions, tombstones, and nodes/services/checks (needs tests and integration). 2015-10-15 14:59:09 -07:00
James Phillips cbcd977a39 Gets new structs changes to compile, adds some corner case handling and extra unit tests. 2015-10-15 14:59:09 -07:00
Ryan Uber 6e7c3e3579 consul/state: basic acl set/get/delete 2015-10-15 14:59:09 -07:00
Ryan Uber 0d0b3c91ef consul/state: adding session registration 2015-10-15 14:59:09 -07:00
Ryan Uber b2dc11fed4 consul/state: basic k/v operations 2015-10-15 14:59:09 -07:00
Ryan Uber c3cd5051ba consul/state: fetch node/check sets by service ID 2015-10-15 14:59:09 -07:00
Ryan Uber 9fe029abc3 consul/state: return highest index for queries with compound results 2015-10-15 14:59:09 -07:00
Ryan Uber ee8a1dc5d2 consul/state: set index if we have an existing health check 2015-10-15 14:59:09 -07:00
Ryan Uber 766c367ef4 consul/state: add function for returning all nodes 2015-10-15 14:59:09 -07:00
Ryan Uber 8fea5f8dc5 consul/state: track highest index when querying services 2015-10-15 14:59:09 -07:00
Ryan Uber 08553f0fef consul/state: querying node services works 2015-10-15 14:59:09 -07:00
Ryan Uber f0dd8b2923 consul/state: working on service registration storage 2015-10-15 14:59:09 -07:00
Ryan Uber 011e7584b4 consul/state: node registration and retrieval works 2015-10-15 14:59:09 -07:00
Shawn Cook 99be758411 Rename EnableTagOverride and update formatting 2015-09-11 08:35:29 -07:00
Shawn Cook f6814c89ed EnableTagDrift in NodeService struct 2015-08-18 10:34:55 -07:00
Armon Dadgar f797130228 Fixing merge conflict 2015-05-11 16:48:10 -07:00
Armon Dadgar 9b9c737a82 consul: Adding flag to support future incompatible commands. Future self will thank me. 2015-05-05 19:44:21 -07:00
Ryan Mills 2bd5bf04bd Remove 'unknown' as one of the valid states when setting the initial state of a check. 2015-04-13 20:46:01 +00:00
Ryan Mills 370853d7ff Allow specifying a status field in the agent/service/register and agent/check/register endpoints.
This status must be one of the valid check statuses: 'passing', 'warning', 'critical', 'unknown'.
If the status field is not present or the empty string, the default of 'critical' is used.
2015-04-12 02:00:31 +00:00
Michael Fraenkel c00c4ebaaa Support SesionTTLMin configuration
- Allow setting SessionTTLMin
- Validate on the Server
2015-03-27 05:13:57 -07:00
Ryan Uber 27de0adf3b agent: support multiple checks per service 2015-01-20 21:48:42 -08:00
Armon Dadgar fbc77b7501 consul: Adding KVSDeleteCAS operation type 2015-01-08 17:08:17 -08:00
Armon Dadgar 957fa1f5ec consul: Fixing merge conflict 2015-01-08 10:42:19 -08:00
Armon Dadgar 0c9cbdb3d1 consul: TombstoneReapRequestType -> TombstoneRequestType 2015-01-05 14:43:55 -08:00
Armon Dadgar 02e984e4c4 consul: Adding new request to reap tombstones 2015-01-05 14:43:55 -08:00
Daniel Malon e56b3861dc advertise specific address for a service
Enable setting a specific address in a service definition for advertise. If no specific address is given it will fallback to the node address and reassemble the old behaviour.
2015-01-02 21:10:05 +00:00
Atin Malaviya 8369b77204 Clean up code based on feedback from armon 2014-12-10 20:49:06 -05:00
Atin Malaviya b623af776b Consul Session TTLs
The design of the session TTLs is based on the Google Chubby approach
(http://research.google.com/archive/chubby-osdi06.pdf). The Session
struct has an additional TTL field now. This attaches an implicit
heartbeat based failure detector. Tracking of heartbeats is done by
the current leader and not persisted via the Raft log. The implication
of this is during a leader failover, we do not retain the last
heartbeat times.

Similar to Chubby, the TTL represents a lower-bound. Consul promises
not to terminate a session before the TTL has expired, but is allowed
to extend the expiration past it. This enables us to reset the TTL on
a leader failover. The TTL is also extended when the client does a
heartbeat. Like Chubby, this means a TTL is extended on creation,
heartbeat or failover.

Additionally, because we must account for time requests are in transit
and the relative rates of clocks on the clients and servers, Consul
will take the conservative approach of internally multiplying the TTL
by 2x. This helps to compensate for network latency and clock skew
without violating the contract.

Reference: https://docs.google.com/document/d/1Y5-pahLkUaA7Kz4SBU_mehKiyt9yaaUGcBTMZR7lToY/edit?usp=sharing
2014-12-07 12:38:22 -05:00
Atin Malaviya aa0cecd04e Ephemeral Nodes for via Session behavior settings.
Added a "delete" behavior for session invalidation, in addition to
the default "release" behavior. On session invalidation, the sessions
Behavior field is checked and if it is set to "delete", all nodes owned
by the session are deleted. If it is "release", then just the locks
are released as default.
2014-11-20 11:34:45 -05:00
Ryan Uber 4a8249db00 consul: fix obscure bug when launching goroutines from for loop 2014-11-19 16:37:40 -08:00
Ryan Uber db0084ccd0 consul: use keyring operation type to cut out duplicated logic 2014-11-19 16:34:18 -08:00
Ryan Uber 057c22db10 consul: generalize multi-DC RPC call broadcasts 2014-11-19 16:34:18 -08:00
Ryan Uber 001a579d47 command/keyring: cleanup 2014-11-19 16:34:18 -08:00