/
githubmirror
/
ydb-go-sdk
Обзор
Документация
Войти
/
githubmirror
/
ydb-go-sdk
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
internal/topic/topicreadercommon/split_batches.go
39 строк
926 B
Denis Evdokimov
Add sync.Pool for decoders (#2053)
26 мар 2026, 11:28
Не верифицирован
26 мар 2026, 11:28
f061c9d
Код
Авторство
О чём код?
package topicreadercommon import "github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawtopic/rawtopicreader" func ReadRawBatchesToPublicBatches( msg *rawtopicreader.ReadResponse, sessions *PartitionSessionStorage, decoders *MultiDecoder, ) ([]*PublicBatch, error) { batchesCount := 0 for i := range msg.PartitionData { batchesCount += len(msg.PartitionData[i].Batches) } var batches []*PublicBatch for pIndex := range msg.PartitionData { p := &msg.PartitionData[pIndex] // normal way session, err := sessions.Get(p.PartitionSessionID) if err != nil { return nil, err } for bIndex := range p.Batches { batch, err := NewBatchFromStream(decoders, session, p.Batches[bIndex]) if err != nil { return nil, err } batches = append(batches, batch) } } if err := splitBytesByMessagesInBatches(batches, msg.BytesSize); err != nil { return nil, err } return batches, nil }