Skip to content

Commit

Permalink
Backport of update serf links into release/1.19.x (#21799)
Browse files Browse the repository at this point in the history
* no-op commit due to failed cherry-picking

* update serf links (#21797)

* update serf links

* add .markdown file extension

* update serf links to use /blob/master/

* fix broken links

---------

Co-authored-by: github-team-consul-core <github-team-consul-core@hashicorp.com>

---------

Co-authored-by: temp <temp@hashicorp.com>
Co-authored-by: John Murret <john.murret@hashicorp.com>
  • Loading branch information
3 people authored Oct 2, 2024
1 parent 6bb4360 commit ecad5cc
Show file tree
Hide file tree
Showing 5 changed files with 195 additions and 195 deletions.
2 changes: 1 addition & 1 deletion internal/gossip/libserf/serf.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func DefaultConfig() *serf.Config {
// This gives leaves some time to propagate through the cluster before
// we shut down. The value was chosen to be reasonably short, but to
// allow a leave to get to over 99.99% of the cluster with 100k nodes
// (using https://www.serf.io/docs/internals/simulator.html).
// (using https://github.com/hashicorp/serf/blob/master/docs/internals/simulator.html.erb).
base.LeavePropagateDelay = 3 * time.Second

return base
Expand Down
4 changes: 2 additions & 2 deletions website/content/docs/architecture/coordinates.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ very simple calculation. This allows for many useful applications, such as findi
the service node nearest a requesting node, or failing over to services in the next
closest datacenter.

All of this is provided through the use of the [Serf library](https://www.serf.io/).
All of this is provided through the use of the [Serf library](https://github.com/hashicorp/serf/).
Serf's network tomography is based on ["Vivaldi: A Decentralized Network Coordinate System"](http://www.cs.ucsb.edu/~ravenben/classes/276/papers/vivaldi-sigcomm04.pdf),
with some enhancements based on other research. There are more details about
[Serf's network coordinates here](https://www.serf.io/docs/internals/coordinates.html).
[Serf's network coordinates here](https://github.com/hashicorp/serf/blob/master/docs/internals/coordinates.html.markdown).

## Network Coordinates in Consul

Expand Down
8 changes: 4 additions & 4 deletions website/content/docs/architecture/gossip.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ description: >-

Consul uses a [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol)
to manage membership and broadcast messages to the cluster. The protocol, membership management, and message broadcasting is provided
through the [Serf library](https://www.serf.io/). The gossip protocol
through the [Serf library](https://github.com/hashicorp/serf/). The gossip protocol
used by Serf is based on a modified version of the
[SWIM (Scalable Weakly-consistent Infection-style Process Group Membership)](https://www.cs.cornell.edu/projects/Quicksilver/public_pdfs/SWIM.pdf) protocol.
Refer to the [Serf documentation](https://www.serf.io/docs/internals/gossip.html) for additional information about the gossip protocol.
Refer to the [Serf documentation](https://github.com/hashicorp/serf/blob/master/docs/internals/gossip.html.markdown) for additional information about the gossip protocol.

## Gossip in Consul

Consul uses a LAN gossip pool and a WAN gossip pool to perform different functions. The pools
are able to perform their functions by leveraging an embedded [Serf](https://www.serf.io/)
are able to perform their functions by leveraging an embedded [Serf](https://github.com/hashicorp/serf/)
library. The library is abstracted and masked by Consul to simplify the user experience,
but developers may find it useful to understand how the library is leveraged.

Expand Down Expand Up @@ -52,5 +52,5 @@ For more details about Lifeguard, please see the
[Making Gossip More Robust with Lifeguard](https://www.hashicorp.com/blog/making-gossip-more-robust-with-lifeguard/)
blog post, which provides a high level overview of the HashiCorp Research paper
[Lifeguard : SWIM-ing with Situational Awareness](https://arxiv.org/abs/1707.00788). The
[Serf gossip protocol guide](https://www.serf.io/docs/internals/gossip.html#lifeguard)
[Serf gossip protocol guide](https://github.com/hashicorp/serf/blob/master/docs/internals/gossip.html.markdown#lifeguard-enhancements)
also provides some lower-level details about the gossip protocol and Lifeguard.
Loading

0 comments on commit ecad5cc

Please sign in to comment.