Skip to content

Commit 03ca108

Browse files
committed
historical_uptime: batch read rows
Signed-off-by: bingyuyap <bingyu.yap.21@gmail.com>
1 parent d5c6c3d commit 03ca108

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

fly/pkg/bigtable/message.go

+20-10
Original file line numberDiff line numberDiff line change
@@ -221,19 +221,29 @@ func (db *BigtableDB) GetMessagesByRowKeys(ctx context.Context, rowKeys []string
221221
var messages []*types.Message
222222
var errors []error
223223

224-
err := table.ReadRows(ctx, bigtable.RowList(rowKeys), func(row bigtable.Row) bool {
225-
message, err := db.bigtableRowToMessage(row)
226-
if err != nil {
227-
errors = append(errors, fmt.Errorf("failed to convert row to message: %v", err))
228-
return true
224+
const batchSize = 1000
225+
226+
for i := 0; i < len(rowKeys); i += batchSize {
227+
end := i + batchSize
228+
if end > len(rowKeys) {
229+
end = len(rowKeys)
229230
}
231+
batchRowKeys := rowKeys[i:end]
232+
233+
err := table.ReadRows(ctx, bigtable.RowList(batchRowKeys), func(row bigtable.Row) bool {
234+
message, err := db.bigtableRowToMessage(row)
235+
if err != nil {
236+
errors = append(errors, fmt.Errorf("failed to convert row to message: %v", err))
237+
return true
238+
}
230239

231-
messages = append(messages, message)
232-
return true
233-
})
240+
messages = append(messages, message)
241+
return true
242+
})
234243

235-
if err != nil {
236-
return nil, fmt.Errorf("failed to read messages: %v", err)
244+
if err != nil {
245+
return nil, fmt.Errorf("failed to read messages: %v", err)
246+
}
237247
}
238248

239249
if len(errors) > 0 {

0 commit comments

Comments
 (0)