Skip to content

Commit

Permalink
Merge pull request #972 from parca-dev/update-arcticdb
Browse files Browse the repository at this point in the history
Update arcticdb to latest
  • Loading branch information
metalmatze authored Apr 26, 2022
2 parents af17c5d + cfb31cc commit 502bfb3
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 44 deletions.
7 changes: 5 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ require (
github.com/ianlancetaylor/demangle v0.0.0-20220203202831-b7f99f1dbc96
github.com/improbable-eng/grpc-web v0.15.0
github.com/oklog/run v1.1.0
github.com/polarsignals/arcticdb v0.0.0-20220414073735-d7659459ec4a
github.com/polarsignals/arcticdb v0.0.0-20220425115945-dc05b0cea952
github.com/prometheus/client_golang v1.12.1
github.com/prometheus/common v0.34.0
github.com/prometheus/prometheus v1.8.2-0.20220315145411-881111fec433
github.com/segmentio/parquet-go v0.0.0-20220330180547-542d8f0815f1
github.com/segmentio/parquet-go v0.0.0-20220421002521-93f8e5ed3407
github.com/stretchr/testify v1.7.1
github.com/thanos-io/objstore v0.0.0-20220324101945-f2f24637ce2e
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0
Expand Down Expand Up @@ -153,6 +153,7 @@ require (
github.com/mattn/go-colorable v0.1.8 // indirect
github.com/mattn/go-ieproxy v0.0.1 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/mattn/go-runewidth v0.0.13 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
github.com/miekg/dns v1.1.46 // indirect
github.com/minio/md5-simd v1.1.0 // indirect
Expand All @@ -166,13 +167,15 @@ require (
github.com/mschoch/smat v0.2.0 // indirect
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
github.com/ncw/swift v1.0.53 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.0.2 // indirect
github.com/pierrec/lz4/v4 v4.1.12 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/rs/cors v1.8.0 // indirect
github.com/rs/xid v1.2.1 // indirect
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.9 // indirect
Expand Down
13 changes: 9 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1081,6 +1081,8 @@ github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
Expand Down Expand Up @@ -1179,6 +1181,8 @@ github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DV
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
Expand Down Expand Up @@ -1269,8 +1273,8 @@ github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6J
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/polarsignals/arcticdb v0.0.0-20220414073735-d7659459ec4a h1:X3WnJTGBNlknO3Sha5YJNfcNe1SemQTPp11obvg6y9Q=
github.com/polarsignals/arcticdb v0.0.0-20220414073735-d7659459ec4a/go.mod h1:2ReM8mq5LUYf8MjUmlWvDchoIy1EUXxI7qO0ER+MIQ4=
github.com/polarsignals/arcticdb v0.0.0-20220425115945-dc05b0cea952 h1:TuVlGfva8NhvCBn0brw6C6GtDzPEGsGRpzmSeS9x96s=
github.com/polarsignals/arcticdb v0.0.0-20220425115945-dc05b0cea952/go.mod h1:tRx4W1cWlwJ9Cbba6vB5XsRDpDRQtXk1j2rXsyKT/mc=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
Expand Down Expand Up @@ -1334,6 +1338,7 @@ github.com/prometheus/prometheus v1.8.2-0.20220315145411-881111fec433 h1:mJmCvt4
github.com/prometheus/prometheus v1.8.2-0.20220315145411-881111fec433/go.mod h1:migbGwmKEePaplmYVdzPdztaUixU4oxRYUg/JG9tiDU=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
Expand Down Expand Up @@ -1367,8 +1372,8 @@ github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
github.com/segmentio/encoding v0.3.3 h1:VG1HceOLwHkSDdkxshlu9pD4FftWkScmHc8RDQ+w9uM=
github.com/segmentio/encoding v0.3.3/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM=
github.com/segmentio/parquet-go v0.0.0-20220330180547-542d8f0815f1 h1:JRW9Xqr9Y6KtWUlZxRxYIgDrZi43hUwUSs5FXDRiclg=
github.com/segmentio/parquet-go v0.0.0-20220330180547-542d8f0815f1/go.mod h1:2hojgJI9hP2pprQs1KD83H34NkmNoP+XjNwr7r36MT8=
github.com/segmentio/parquet-go v0.0.0-20220421002521-93f8e5ed3407 h1:Pz9rS42lX6XZ+GBsV2SdGyNDalo5beooPXMO7dCe1G0=
github.com/segmentio/parquet-go v0.0.0-20220421002521-93f8e5ed3407/go.mod h1:HBHoETTgIDcNyTWTVOvCelN6kbFozuTNZPLyRIBjW2E=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
Expand Down
14 changes: 10 additions & 4 deletions pkg/parca/parca.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,18 @@ func Run(ctx context.Context, logger log.Logger, reg *prometheus.Registry, flags
}

if flags.Storage == "columnstore" {
col := arcticdb.New(reg)
colDB := col.DB("parca")
table, err := colDB.Table("stacktraces", arcticdb.NewTableConfig(
parcacol.Schema(),
col := arcticdb.New(
reg,
flags.StorageGranuleSize,
flags.StorageActiveMemory,
)
colDB, err := col.DB("parca")
if err != nil {
level.Error(logger).Log("msg", "create database", "err", err)
return err
}
table, err := colDB.Table("stacktraces", arcticdb.NewTableConfig(
parcacol.Schema(),
), logger)
if err != nil {
level.Error(logger).Log("msg", "create table", "err", err)
Expand Down
22 changes: 14 additions & 8 deletions pkg/parca/parca_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,14 +174,17 @@ func replayDebugLog(ctx context.Context, t require.TestingT) (querypb.QueryServi
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down Expand Up @@ -288,14 +291,17 @@ func TestConsistency(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down
5 changes: 3 additions & 2 deletions pkg/parcacol/parcacol.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import (

type Table interface {
Schema() *dynparquet.Schema
Insert(buf *dynparquet.Buffer) error
InsertBuffer(buf *dynparquet.Buffer) (tx uint64, err error)
}

func InsertProfileIntoTable(ctx context.Context, logger log.Logger, table Table, ls labels.Labels, prof *parcaprofile.Profile) (int, error) {
Expand All @@ -37,7 +37,8 @@ func InsertProfileIntoTable(ctx context.Context, logger log.Logger, table Table,
return 0, err
}

return len(prof.FlatSamples), table.Insert(buf)
_, err = table.InsertBuffer(buf)
return len(prof.FlatSamples), err
}

func FlatProfileToBuffer(logger log.Logger, ls labels.Labels, schema *dynparquet.Schema, prof *parcaprofile.Profile) (*dynparquet.Buffer, error) {
Expand Down
55 changes: 35 additions & 20 deletions pkg/query/columnquery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,17 @@ func TestColumnQueryAPIQueryRange(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down Expand Up @@ -111,14 +114,17 @@ func TestColumnQueryAPIQuery(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down Expand Up @@ -188,14 +194,17 @@ func TestColumnQueryAPIQueryDiff(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down Expand Up @@ -395,14 +404,17 @@ func TestColumnQueryAPILabelNames(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down Expand Up @@ -454,14 +466,17 @@ func TestColumnQueryAPILabelValues(t *testing.T) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(t, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down
11 changes: 7 additions & 4 deletions pkg/query/query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -525,14 +525,17 @@ func Benchmark_Query_Merge(b *testing.B) {
logger := log.NewNopLogger()
reg := prometheus.NewRegistry()
tracer := trace.NewNoopTracerProvider().Tracer("")
col := columnstore.New(reg)
colDB := col.DB("parca")
col := columnstore.New(
reg,
8196,
64*1024*1024,
)
colDB, err := col.DB("parca")
require.NoError(b, err)
table, err := colDB.Table(
"stacktraces",
columnstore.NewTableConfig(
parcacol.Schema(),
8196,
64*1024*1024,
),
logger,
)
Expand Down

0 comments on commit 502bfb3

Please sign in to comment.