85421b7f97
Right now all blob uploads are performed synchronously, this means if a NAR contains many small files, the import time is dominated by round trip time to the blob service. For small files, we can buffer them in memory and upload them asynchronously to the blob service. Before returning we make sure to join all the uploads to make sure they complete successfully before responding OK. This reduces time to import a bash-interactive closure on my machine from 1m19s to 7s. Change-Id: Ica3695c159e6c8ad8769281ac20d037e3143e856 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10679 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Connor Brewster <cbrewster@hey.com>
54 lines
2.3 KiB
Modula-2
54 lines
2.3 KiB
Modula-2
module code.tvl.fyi/tvix/nar-bridge
|
|
|
|
require (
|
|
code.tvl.fyi/tvix/castore-go v0.0.0-20231105151352-990d6ba2175e
|
|
code.tvl.fyi/tvix/store-go v0.0.0-20231105203234-f2baad42494f
|
|
github.com/alecthomas/kong v0.7.1
|
|
github.com/go-chi/chi v1.5.4
|
|
github.com/go-chi/chi/v5 v5.0.7
|
|
github.com/google/go-cmp v0.6.0
|
|
github.com/multiformats/go-multihash v0.2.1
|
|
github.com/nix-community/go-nix v0.0.0-20231012070617-9b176785e54d
|
|
github.com/sirupsen/logrus v1.9.0
|
|
github.com/stretchr/testify v1.8.4
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0
|
|
go.opentelemetry.io/otel v1.22.0
|
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.45.0
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0
|
|
go.opentelemetry.io/otel/sdk v1.22.0
|
|
go.opentelemetry.io/otel/sdk/metric v1.22.0
|
|
golang.org/x/sync v0.4.0
|
|
google.golang.org/grpc v1.60.1
|
|
google.golang.org/protobuf v1.32.0
|
|
lukechampine.com/blake3 v1.2.1
|
|
)
|
|
|
|
require (
|
|
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/go-logr/logr v1.4.1 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/golang/protobuf v1.5.3 // indirect
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
|
|
github.com/minio/sha256-simd v1.0.0 // indirect
|
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
|
github.com/multiformats/go-varint v0.0.6 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.22.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.22.0 // indirect
|
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
|
golang.org/x/crypto v0.18.0 // indirect
|
|
golang.org/x/net v0.20.0 // indirect
|
|
golang.org/x/sys v0.16.0 // indirect
|
|
golang.org/x/text v0.14.0 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|
|
|
|
go 1.19
|