Skip to content

Commit 4ba3082

Browse files
committed
Make bigBuckets a method of AWSStore
1 parent 234c526 commit 4ba3082

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

chunk/chunk_store.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ func (c *AWSStore) CreateTables() error {
338338
return err
339339
}
340340

341-
func bigBuckets(from, through model.Time, dailyBucketsFrom model.Time) []string {
341+
func (c *AWSStore) bigBuckets(from, through model.Time) []string {
342342
var (
343343
secondsInHour = int64(time.Hour / time.Second)
344344
fromHour = from.Unix() / secondsInHour
@@ -348,7 +348,7 @@ func bigBuckets(from, through model.Time, dailyBucketsFrom model.Time) []string
348348
fromDay = from.Unix() / secondsInDay
349349
throughDay = through.Unix() / secondsInDay
350350

351-
firstDailyBucket = dailyBucketsFrom.Unix() / secondsInDay
351+
firstDailyBucket = c.dailyBucketsFrom.Unix() / secondsInDay
352352
lastHourlyBucket = firstDailyBucket * 24
353353

354354
result []string
@@ -482,7 +482,7 @@ func (c *AWSStore) calculateDynamoWrites(userID string, chunks []Chunk) ([]*dyna
482482
}
483483

484484
entries := 0
485-
for _, bucket := range bigBuckets(chunk.From, chunk.Through, c.dailyBucketsFrom) {
485+
for _, bucket := range c.bigBuckets(chunk.From, chunk.Through) {
486486
hashValue := hashValue(userID, bucket, metricName)
487487
for label, value := range chunk.Metric {
488488
if label == model.MetricNameLabel {
@@ -582,7 +582,7 @@ func (c *AWSStore) lookupChunks(ctx context.Context, userID string, from, throug
582582

583583
incomingChunkSets := make(chan ByID)
584584
incomingErrors := make(chan error)
585-
buckets := bigBuckets(from, through, c.dailyBucketsFrom)
585+
buckets := c.bigBuckets(from, through)
586586
totalLookups := int32(0)
587587
for _, b := range buckets {
588588
go func(bucket string) {

chunk/chunk_store_test.go

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -149,36 +149,39 @@ func diff(want, have interface{}) string {
149149

150150
func TestBigBuckets(t *testing.T) {
151151
scenarios := []struct {
152-
from, through, dayEpochFrom model.Time
153-
buckets []string
152+
from, through, dailyBucketsFrom model.Time
153+
buckets []string
154154
}{
155155
{
156-
from: model.TimeFromUnix(0),
157-
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
158-
dayEpochFrom: model.TimeFromUnix(0).Add(1 * 24 * time.Hour),
159-
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "d1", "d2"},
156+
from: model.TimeFromUnix(0),
157+
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
158+
dailyBucketsFrom: model.TimeFromUnix(0).Add(1 * 24 * time.Hour),
159+
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "d1", "d2"},
160160
},
161161
{
162-
from: model.TimeFromUnix(0),
163-
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
164-
dayEpochFrom: model.TimeFromUnix(0).Add(2*24*time.Hour) - 1, // Only the day matters for the epoch start time, not the time.
165-
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "d1", "d2"},
162+
from: model.TimeFromUnix(0),
163+
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
164+
dailyBucketsFrom: model.TimeFromUnix(0).Add(2*24*time.Hour) - 1, // Only the day matters for the epoch start time, not the time.
165+
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "d1", "d2"},
166166
},
167167
{
168-
from: model.TimeFromUnix(0),
169-
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
170-
dayEpochFrom: model.TimeFromUnix(0).Add(1*24*time.Hour) - 1,
171-
buckets: []string{"0", "d0", "d1", "d2"},
168+
from: model.TimeFromUnix(0),
169+
through: model.TimeFromUnix(0).Add(3*24*time.Hour) - 1,
170+
dailyBucketsFrom: model.TimeFromUnix(0).Add(1*24*time.Hour) - 1,
171+
buckets: []string{"0", "d0", "d1", "d2"},
172172
},
173173
{
174-
from: model.TimeFromUnix(0),
175-
through: model.TimeFromUnix(0).Add(2 * 24 * time.Hour),
176-
dayEpochFrom: model.TimeFromUnix(0).Add(99 * 24 * time.Hour),
177-
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48"},
174+
from: model.TimeFromUnix(0),
175+
through: model.TimeFromUnix(0).Add(2 * 24 * time.Hour),
176+
dailyBucketsFrom: model.TimeFromUnix(0).Add(99 * 24 * time.Hour),
177+
buckets: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48"},
178178
},
179179
}
180180
for i, s := range scenarios {
181-
buckets := bigBuckets(s.from, s.through, s.dayEpochFrom)
181+
cs := &AWSStore{
182+
dailyBucketsFrom: s.dailyBucketsFrom,
183+
}
184+
buckets := cs.bigBuckets(s.from, s.through)
182185
if !reflect.DeepEqual(buckets, s.buckets) {
183186
t.Fatalf("%d. unexpected buckets; want %v, got %v", i, s.buckets, buckets)
184187
}

0 commit comments

Comments
 (0)