Skip to content

Repository files navigation

Distributed Link Tracer with Statistics & Filtering

English | 中文

Rank Contest Language

9th-place solution (of 4404 teams) of the 1st Cloud Native Programming Challenge (Alibaba Tianchi, 2020): implement a distributed link tracer that performs statistics and filtering.

Approach

A single-binary, multi-role Go service that ingests high-throughput trace segments, aggregates them, and answers filtered statistical queries:

  • Multi-threaded reader (reader.go) for parallel segment ingestion
  • Filter service (filter.go) implementing the contest's filtering DSL
  • Backend service (backend.go) — includes a panic-to-commit-time recovery mechanism
  • Buffered submission (retbuffer.go) to accelerate result commits (turned out less effective than hoped, kept for reference)

Project layout

File Role
main.go entrypoint & role wiring
reader.go multi-threaded segment reader
filter.go filtering service
backend.go backend service (with panic-to-commit-time handling)
mockscoring.go local mock scoring service for faster iteration
retbuffer.go buffered result submission
config/ docker-compose files for dev and official scoring (adjust image & volume paths)

Run

./build.sh
# local dev loop: docker-compose -f config/dev-go.yml up
# official scoring: docker-compose -f config/dev-score.yml up

About

9th of 4404, 1st Cloud Native Programming Challenge 2020 (Alibaba Tianchi): distributed link tracer with statistics & filtering in Go

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages