Best way to share read intensive data across goroutines

This page summarizes the projects mentioned and recommended in the original post on /r/golang

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • go

    The Go programming language

  • The simplest approach is to use a RWLock as showed in the official doc. The problem is that after Spectre and Meltdown RWLock are significantly slower than atomics: Benchmark_RWMutex_parallel-6 66796699 17.96 ns/op Benchmark_Atomic_parallel-6 1000000000 0.5528 ns/op The situation becomes exponentially worse with high thread count (above 32 threads) or intel CPUs. You can find more discussion about this here. Here's an example using atomics. It can still be improved by using pointers instead of structs, but it's a very good starting point.

  • foundation

    Foundation components for the Ziti golang ecosystem (by openziti)

  • I would also be inclined to go for a copy-on-write approach. If you want a quick code example of a copy-on-write wrapper for map, see here: https://github.com/openziti/foundation/blob/v2.0.4/concurrenz/copy_on_write_map.go

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Creating a personal AI assistant a.k.a An approachable series on learning new stuff!

    1 project | dev.to | 10 May 2024
  • Go: the future encoding/json/v2 module

    2 projects | dev.to | 2 May 2024
  • Evolving the Go Standard Library with math/rand/v2

    2 projects | news.ycombinator.com | 1 May 2024
  • Microsoft Maintains Go Fork for FIPS 140-2 Support

    5 projects | news.ycombinator.com | 30 Apr 2024
  • How to use Retrieval Augmented Generation (RAG) for Go applications

    3 projects | dev.to | 28 Apr 2024