• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence / 018dc39c-5b2f-40c1-abd2-356e5a779477 / 1
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 19 Feb 2024 11:22PM UTC
Files 670
Run time 12s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Feb 2024 11:03PM UTC coverage: 62.705% (-0.04%) from 62.744%
018dc39c-5b2f-40c1-abd2-356e5a779477.1

push

buildkite

web-flow
Emits a counter value for every unique view of the hashring (#5672)

Context and problem
The consistent hashring is an eventually consistent way to see the services' members for routing in amongst shards. It's an eventually-consistent system (since actual strong consistency for membership is controlled by the database shard locking).

However, it's possible that it can be very eventually consistent, particularly if the membership resolving system is serving stale data for some reason. This can cause problems because particularly in the case of history, it breaks inter-service communication and routing.

Solution
A dumb way to determine if there's an inconsistency therefore, is to just hash the complete membership set and emit it for each host, like a fingerprint. In the healthy case, this random identifier value will quickly converge across hosts. . In the event their views are inconsistent, this will appear as a different guage values which remain persistently different, indicating that operationally some manual operation must be taken.

querying the data
Assuming m3, the trick will be to look for differences between the identifier values. The value itself is just a hash value and arbitrary. Therefore, selecting differences between the upper bound thusly:

max = fetch service:cadence* operation:hashring region:region1 service:cadence-history | maxSeries;
min = fetch service:cadence* operation:hashring region:region1 service:cadence-history | minSeries;

-- select where they're different
max | != (min)

-- and emit -1 for the default case where the upper value and lower value are all the same
| transformNull -1

92594 of 147666 relevant lines covered (62.71%)

2297.36 hits per line

Source Files on job 018dc39c-5b2f-40c1-abd2-356e5a779477.1
  • Tree
  • List 670
  • Changed 245
  • Source Changed 0
  • Coverage Changed 24
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 18
  • ff95842f on github
  • Prev Job for on master (#018db582-cf6a-4726-8ce9-adba3d0a8053.1)
  • Next Job for on master (#018dc657-a14c-4590-b1fe-e58ab1aec56c.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc