Skip to content

Commit

Permalink
More configuration changes
Browse files Browse the repository at this point in the history
  • Loading branch information
xichen2020 committed Dec 7, 2018
1 parent 034bf75 commit a64306f
Show file tree
Hide file tree
Showing 24 changed files with 1,356 additions and 89 deletions.
120 changes: 120 additions & 0 deletions config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
logging:
level: info

metrics:
scope:
reportingInterval: 1s
m3:
hostPort: 127.0.0.1:1234
service: eventdb
tags:
instance: 0
env: production
includeHost: true
samplingRate: 0.01
extended: moderate

http:
listenAddress: 0.0.0.0:5678
readTimeout: 1m
writeTimeout: 1m
handler:
parserPool:
size: 50000
watermark:
low: 0.001
high: 0.002
parser:
maxDepth: 3
excludeKeySuffix: _noindex

database:
namespaces:
- testNamespace
numShards: 8
fieldPathSeparator: .
namespaceFieldName: service
timestampFieldName: "@timestamp"
maxNumCachedSegmentsPerShard: 1
persist:
filePathPrefix: /tmp
writeBufferSize: 65536
rawDocSourceField: _source
timestampPrecision: 1ms
boolArrayPool: # total < 1GB
buckets:
- count: 5000
capacity: 4096
- count: 5000
capacity: 8192
- count: 5000
capacity: 16384
- count: 5000
capacity: 32768
- count: 5000
capacity: 65536
watermark:
low: 0.001
high: 0.002
intArrayPool: # total < 1GB
buckets:
- count: 1000
capacity: 4096
- count: 1000
capacity: 8192
- count: 1000
capacity: 16384
- count: 1000
capacity: 32768
- count: 1000
capacity: 65536
watermark:
low: 0.001
high: 0.002
int64ArrayPool: # For timestamps, 8 shards * 2 segments = 16, ~250MB
buckets:
- count: 32
capacity: 65536
- count: 32
capacity: 131072
- count: 32
capacity: 262144
- count: 32
capacity: 524288
watermark:
low: 0.001
high: 0.002
doubleArrayPool: # total < 1GB
buckets:
- count: 1000
capacity: 4096
- count: 1000
capacity: 8192
- count: 1000
capacity: 16384
- count: 1000
capacity: 32768
- count: 1000
capacity: 65536
watermark:
low: 0.001
high: 0.002
stringArrayPool: # 1K string fields * 8 shards * 2 segments = 16K, ~15G
buckets:
- count: 1600
capacity: 8192
- count: 1600
capacity: 16384
- count: 1600
capacity: 32768
- count: 1600
capacity: 65536
- count: 1600
capacity: 131072
- count: 1600
capacity: 262144
- count: 1600
capacity: 524288
watermark:
low: 0.001
high: 0.002
14 changes: 14 additions & 0 deletions generated/generics/generate.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/value/value_pool.gen.go -pkg=value gen \"ValuePoolOptions=PoolOptions valuePoolMetrics=poolMetrics ValuePool=Pool GenericValue=*Value\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/value/value_array_pool.gen.go -pkg=value gen \"ValuePoolOptions=ArrayPoolOptions valuePoolMetrics=arrayPoolMetrics ValuePool=ArrayPool GenericValue=Array\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/value/bucketized_value_array_pool.gen.go -pkg=value gen \"ValueBucket=ArrayBucket ValuePoolOptions=ArrayPoolOptions ValuePool=ArrayPool valueBucketByCapacity=arrayBucketByCapacity bucketPool=arrayBucketPool BucketizedValuePool=BucketizedArrayPool GenericValue=Array\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/value/kv_array_pool.gen.go -pkg=value gen \"ValuePoolOptions=KVArrayPoolOptions valuePoolMetrics=kvArrayPoolMetrics ValuePool=KVArrayPool GenericValue=KVArray\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/value/bucketized_kv_array_pool.gen.go -pkg=value gen \"ValueBucket=KVArrayBucket ValuePoolOptions=KVArrayPoolOptions ValuePool=KVArrayPool valueBucketByCapacity=kvArrayBucketByCapacity bucketPool=kvArrayBucketPool BucketizedValuePool=BucketizedKVArrayPool GenericValue=KVArray\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/parser_pool_config.gen.go -pkg=json gen \"ValuePoolWatermarkConfiguration=ParserPoolWatermarkConfiguration ValuePoolConfiguration=ParserPoolConfiguration ValuePoolOptions=ParserPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/parser/json/parser_pool.gen.go -pkg=json gen \"ValuePoolOptions=ParserPoolOptions valuePoolMetrics=parserPoolMetrics ValuePool=ParserPool GenericValue=Parser\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bool_array_pool_config.gen.go -pkg=pool gen \"ValuePoolWatermarkConfiguration=BoolArrayPoolWatermarkConfiguration ValuePoolConfiguration=BoolArrayPoolConfiguration ValuePoolOptions=BoolArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bool_array_pool.gen.go -pkg=pool gen \"ValuePoolOptions=BoolArrayPoolOptions valuePoolMetrics=boolArrayPoolMetrics ValuePool=BoolArrayPool GenericValue=[]bool\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_bool_array_pool_config.gen.go -pkg=pool gen \"ValuePoolBucketConfiguration=BoolArrayBucketConfiguration ValueBucket=BoolArrayBucket ValuePoolWatermarkConfiguration=BoolArrayPoolWatermarkConfiguration BucketizedValuePoolConfiguration=BucketizedBoolArrayPoolConfiguration ValuePoolOptions=BoolArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_bool_array_pool.gen.go -pkg=pool gen \"ValueBucket=BoolArrayBucket ValuePoolOptions=BoolArrayPoolOptions ValuePool=BoolArrayPool valueBucketByCapacity=boolArrayBucketByCapacity bucketPool=boolArrayBucketPool BucketizedValuePool=BucketizedBoolArrayPool GenericValue=[]bool\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/append.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/append_bool.gen.go -pkg=pool gen \"GenericBucketizedValueArrayPool=*BucketizedBoolArrayPool AppendValue=AppendBool GenericValue=bool\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/int_array_pool_config.gen.go -pkg=pool gen \"ValuePoolWatermarkConfiguration=IntArrayPoolWatermarkConfiguration ValuePoolConfiguration=IntArrayPoolConfiguration ValuePoolOptions=IntArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/int_array_pool.gen.go -pkg=pool gen \"ValuePoolOptions=IntArrayPoolOptions valuePoolMetrics=intArrayPoolMetrics ValuePool=IntArrayPool GenericValue=[]int\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_int_array_pool_config.gen.go -pkg=pool gen \"ValuePoolBucketConfiguration=IntArrayBucketConfiguration ValueBucket=IntArrayBucket ValuePoolWatermarkConfiguration=IntArrayPoolWatermarkConfiguration BucketizedValuePoolConfiguration=BucketizedIntArrayPoolConfiguration ValuePoolOptions=IntArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_int_array_pool.gen.go -pkg=pool gen \"ValueBucket=IntArrayBucket ValuePoolOptions=IntArrayPoolOptions ValuePool=IntArrayPool valueBucketByCapacity=intArrayBucketByCapacity bucketPool=intArrayBucketPool BucketizedValuePool=BucketizedIntArrayPool GenericValue=[]int\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/append.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/append_int.gen.go -pkg=pool gen \"GenericBucketizedValueArrayPool=*BucketizedIntArrayPool AppendValue=AppendInt GenericValue=int\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/int64_array_pool_config.gen.go -pkg=pool gen \"ValuePoolWatermarkConfiguration=Int64ArrayPoolWatermarkConfiguration ValuePoolConfiguration=Int64ArrayPoolConfiguration ValuePoolOptions=Int64ArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/int64_array_pool.gen.go -pkg=pool gen \"ValuePoolOptions=Int64ArrayPoolOptions valuePoolMetrics=int64ArrayPoolMetrics ValuePool=Int64ArrayPool GenericValue=[]int64\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_int64_array_pool_config.gen.go -pkg=pool gen \"ValuePoolBucketConfiguration=Int64ArrayBucketConfiguration ValueBucket=Int64ArrayBucket ValuePoolWatermarkConfiguration=Int64ArrayPoolWatermarkConfiguration BucketizedValuePoolConfiguration=BucketizedInt64ArrayPoolConfiguration ValuePoolOptions=Int64ArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_int64_array_pool.gen.go -pkg=pool gen \"ValueBucket=Int64ArrayBucket ValuePoolOptions=Int64ArrayPoolOptions ValuePool=Int64ArrayPool valueBucketByCapacity=int64ArrayBucketByCapacity bucketPool=int64ArrayBucketPool BucketizedValuePool=BucketizedInt64ArrayPool GenericValue=[]int64\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/append.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/append_int64.gen.go -pkg=pool gen \"GenericBucketizedValueArrayPool=*BucketizedInt64ArrayPool AppendValue=AppendInt64 GenericValue=int64\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/float64_array_pool_config.gen.go -pkg=pool gen \"ValuePoolWatermarkConfiguration=Float64ArrayPoolWatermarkConfiguration ValuePoolConfiguration=Float64ArrayPoolConfiguration ValuePoolOptions=Float64ArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/float64_array_pool.gen.go -pkg=pool gen \"ValuePoolOptions=Float64ArrayPoolOptions valuePoolMetrics=float64ArrayPoolMetrics ValuePool=Float64ArrayPool GenericValue=[]float64\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_float64_array_pool_config.gen.go -pkg=pool gen \"ValuePoolBucketConfiguration=Float64ArrayBucketConfiguration ValueBucket=Float64ArrayBucket ValuePoolWatermarkConfiguration=Float64ArrayPoolWatermarkConfiguration BucketizedValuePoolConfiguration=BucketizedFloat64ArrayPoolConfiguration ValuePoolOptions=Float64ArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_float64_array_pool.gen.go -pkg=pool gen \"ValueBucket=Float64ArrayBucket ValuePoolOptions=Float64ArrayPoolOptions ValuePool=Float64ArrayPool valueBucketByCapacity=float64ArrayBucketByCapacity bucketPool=float64ArrayBucketPool BucketizedValuePool=BucketizedFloat64ArrayPool GenericValue=[]float64\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/append.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/append_float64.gen.go -pkg=pool gen \"GenericBucketizedValueArrayPool=*BucketizedFloat64ArrayPool AppendValue=AppendFloat64 GenericValue=float64\""

//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/string_array_pool_config.gen.go -pkg=pool gen \"ValuePoolWatermarkConfiguration=StringArrayPoolWatermarkConfiguration ValuePoolConfiguration=StringArrayPoolConfiguration ValuePoolOptions=StringArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/string_array_pool.gen.go -pkg=pool gen \"ValuePoolOptions=StringArrayPoolOptions valuePoolMetrics=stringArrayPoolMetrics ValuePool=StringArrayPool GenericValue=[]string\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool_config.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_string_array_pool_config.gen.go -pkg=pool gen \"ValuePoolBucketConfiguration=StringArrayBucketConfiguration ValueBucket=StringArrayBucket ValuePoolWatermarkConfiguration=StringArrayPoolWatermarkConfiguration BucketizedValuePoolConfiguration=BucketizedStringArrayPoolConfiguration ValuePoolOptions=StringArrayPoolOptions\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/bucketized_pool.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/bucketized_string_array_pool.gen.go -pkg=pool gen \"ValueBucket=StringArrayBucket ValuePoolOptions=StringArrayPoolOptions ValuePool=StringArrayPool valueBucketByCapacity=stringArrayBucketByCapacity bucketPool=stringArrayBucketPool BucketizedValuePool=BucketizedStringArrayPool GenericValue=[]string\""
//go:generate sh -c "cat $GOPATH/src/$PACKAGE/x/pool/template/append.go | awk '/^package/{i++}i' | genny -out=$GOPATH/src/$PACKAGE/x/pool/append_string.gen.go -pkg=pool gen \"GenericBucketizedValueArrayPool=*BucketizedStringArrayPool AppendValue=AppendString GenericValue=string\""

Expand Down
45 changes: 40 additions & 5 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions glide.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package: github.com/xichen2020/eventdb
import:
- package: github.com/m3db/m3x
version: 05f4139118af43282373b5de26a693be4c910148
- package: github.com/m3db/stackmurmur3
- package: github.com/spaolacci/murmur3
version: ^1.1
Expand Down
61 changes: 61 additions & 0 deletions parser/json/parser_pool_config.gen.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Copyright (c) 2018 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

// This file was automatically generated by genny.
// Any changes will be lost if this file is regenerated.
// see https://github.com/mauricelam/genny

package json

import (
"github.com/uber-go/tally"
)

// ParserPoolWatermarkConfiguration contains watermark configuration for pools.
type ParserPoolWatermarkConfiguration struct {
// The low watermark to start refilling the pool, if zero none.
RefillLowWatermark float64 `yaml:"low" validate:"min=0.0,max=1.0"`

// The high watermark to stop refilling the pool, if zero none.
RefillHighWatermark float64 `yaml:"high" validate:"min=0.0,max=1.0"`
}

// ParserPoolConfiguration contains pool configuration.
type ParserPoolConfiguration struct {
// The size of the pool.
Size *int `yaml:"size"`

// The watermark configuration.
Watermark ParserPoolWatermarkConfiguration `yaml:"watermark"`
}

// NewPoolOptions creates a new set of pool options.
func (c *ParserPoolConfiguration) NewPoolOptions(
scope tally.Scope,
) *ParserPoolOptions {
opts := NewParserPoolOptions().
SetMetricsScope(scope).
SetRefillLowWatermark(c.Watermark.RefillLowWatermark).
SetRefillHighWatermark(c.Watermark.RefillHighWatermark)
if c.Size != nil {
opts = opts.SetSize(*c.Size)
}
return opts
}
Loading

0 comments on commit a64306f

Please sign in to comment.