Skip to content

Commit 8578cb6

Browse files
authored
Merge branch 'transferia:main' into altinity
2 parents 653d3a8 + e418cb3 commit 8578cb6

23 files changed

Lines changed: 232 additions & 525 deletions

File tree

.mapping.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,6 @@
15701570
"pkg/providers/logbroker/provider.go":"transfer_manager/go/pkg/providers/logbroker/provider.go",
15711571
"pkg/providers/logbroker/sink.go":"transfer_manager/go/pkg/providers/logbroker/sink.go",
15721572
"pkg/providers/logbroker/source_native.go":"transfer_manager/go/pkg/providers/logbroker/source_native.go",
1573-
"pkg/providers/logbroker/stat.go":"transfer_manager/go/pkg/providers/logbroker/stat.go",
15741573
"pkg/providers/logbroker/util.go":"transfer_manager/go/pkg/providers/logbroker/util.go",
15751574
"pkg/providers/middlewares/asynchronizer.go":"transfer_manager/go/pkg/providers/middlewares/asynchronizer.go",
15761575
"pkg/providers/mongo/batcher.go":"transfer_manager/go/pkg/providers/mongo/batcher.go",
@@ -1989,6 +1988,7 @@
19891988
"pkg/providers/ydb/utils.go":"transfer_manager/go/pkg/providers/ydb/utils.go",
19901989
"pkg/providers/ydb/utils_test.go":"transfer_manager/go/pkg/providers/ydb/utils_test.go",
19911990
"pkg/providers/ydb/ydb_path_relativizer.go":"transfer_manager/go/pkg/providers/ydb/ydb_path_relativizer.go",
1991+
"pkg/providers/yds/source/committable_batch.go":"transfer_manager/go/pkg/providers/yds/source/committable_batch.go",
19921992
"pkg/providers/yds/source/model_source.go":"transfer_manager/go/pkg/providers/yds/source/model_source.go",
19931993
"pkg/providers/yds/source/source.go":"transfer_manager/go/pkg/providers/yds/source/source.go",
19941994
"pkg/providers/yds/type/provider.go":"transfer_manager/go/pkg/providers/yds/type/provider.go",
@@ -2364,6 +2364,7 @@
23642364
"pkg/util/queues/sequencer/sequencer.go":"transfer_manager/go/pkg/util/queues/sequencer/sequencer.go",
23652365
"pkg/util/queues/sequencer/sequencer_test.go":"transfer_manager/go/pkg/util/queues/sequencer/sequencer_test.go",
23662366
"pkg/util/queues/sequencer/util_kafka.go":"transfer_manager/go/pkg/util/queues/sequencer/util_kafka.go",
2367+
"pkg/util/queues/size_stat.go":"transfer_manager/go/pkg/util/queues/size_stat.go",
23672368
"pkg/util/queues/timings_stat_collector.go":"transfer_manager/go/pkg/util/queues/timings_stat_collector.go",
23682369
"pkg/util/queues/timings_stat_collector_test.go":"transfer_manager/go/pkg/util/queues/timings_stat_collector_test.go",
23692370
"pkg/util/queues/topic_definition.go":"transfer_manager/go/pkg/util/queues/topic_definition.go",

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ require (
7070
github.com/valyala/fastjson v1.6.4
7171
github.com/xitongsys/parquet-go v1.6.2
7272
github.com/xitongsys/parquet-go-source v0.0.0-20220315005136-aec0fe3e777c
73-
github.com/ydb-platform/ydb-go-sdk/v3 v3.117.1
73+
github.com/ydb-platform/ydb-go-sdk/v3 v3.118.2
7474
go.mongodb.org/mongo-driver v1.17.3
7575
go.opentelemetry.io/contrib/bridges/otelzap v0.12.0
7676
go.uber.org/atomic v1.11.0
@@ -79,7 +79,7 @@ require (
7979
go.ytsaurus.tech/library/go/core/log v0.0.4
8080
go.ytsaurus.tech/yt/go v0.0.28
8181
golang.org/x/crypto v0.42.0
82-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
82+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6
8383
golang.org/x/mod v0.27.0
8484
golang.org/x/net v0.44.0
8585
golang.org/x/sync v0.17.0

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2317,8 +2317,8 @@ github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3i
23172317
github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok=
23182318
github.com/ydb-platform/ydb-go-genproto v0.0.0-20250911135631-b3beddd517d9 h1:SKqSRP6/ocY2Z4twOqKEKxpmawVTHTvQiom7hrU6jt0=
23192319
github.com/ydb-platform/ydb-go-genproto v0.0.0-20250911135631-b3beddd517d9/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
2320-
github.com/ydb-platform/ydb-go-sdk/v3 v3.117.1 h1:SgYE74T+fo40xvJszWhK8IGS5GNjLcbYPzYL+6wsLGw=
2321-
github.com/ydb-platform/ydb-go-sdk/v3 v3.117.1/go.mod h1:IgDKkfYE4FyJilTRe2BTtaurb2EWdMIsQbO02UW3wKM=
2320+
github.com/ydb-platform/ydb-go-sdk/v3 v3.118.2 h1:+R4RDTDZ+k/tFRIflg2ynQ7t6bZBg9t5vKQU3PvahQg=
2321+
github.com/ydb-platform/ydb-go-sdk/v3 v3.118.2/go.mod h1:UEMMk+JMunUveo2j+zlJEJ5I7ntf2+MbimciVNJYnNs=
23222322
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
23232323
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
23242324
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
@@ -2577,8 +2577,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
25772577
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
25782578
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
25792579
golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE=
2580-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
2581-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
2580+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 h1:SbTAbRFnd5kjQXbczszQ0hdk3ctwYf3qBNH9jIsGclE=
2581+
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
25822582
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
25832583
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
25842584
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=

pkg/abstract/storage.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -379,32 +379,16 @@ type SnapshotableStorage interface {
379379
// async table part provider
380380

381381
type SharedMemory interface {
382-
// init thing
383-
ResetState() error
382+
// main methods - add, get, update:
384383

385-
// main methods - remove, add, get, get_for_logging, commit_done
386-
RemoveTransferState(transferID string, stateKeys []string) error
387-
Store(in []TableDescription) error
384+
Store(in []*OperationTablePart) error
388385
NextOperationTablePart(ctx context.Context) (*OperationTablePart, error)
389386
UpdateOperationTablesParts(operationID string, tables []*OperationTablePart) error
390387

391-
// additional work with OperationState
388+
// additional work with OperationState:
389+
392390
GetShardStateNoWait(ctx context.Context, operationID string) (string, error)
393391
SetOperationState(operationID string, newState string) error
394-
395-
// convertor thing
396-
ConvertToTableDescription(in *OperationTablePart) (*TableDescription, error)
397-
}
398-
399-
type SharedMemoryBuilder interface {
400-
BuildSharedMemory(
401-
transferID string,
402-
operationID string,
403-
workerIndex int,
404-
cp any,
405-
totalParts uint64,
406-
checkLoaderError func() error,
407-
) SharedMemory
408392
}
409393

410394
// NextArrTableDescriptionGetter is used in async_table_parts (tpp_*_async.go) to get tasks
@@ -419,5 +403,5 @@ type NextArrTableDescriptionGetter interface {
419403
// key IsAsyncPartsUploadedStateKey, which is used by control code and should be not changed by storage.
420404
type NextArrTableDescriptionGetterBuilder interface {
421405
ShardingContextStorage
422-
BuildNextArrTableDescriptionGetter(tables []TableDescription) (NextArrTableDescriptionGetter, error)
406+
BuildNextArrTableDescriptionGetter(operationID string, tables []TableDescription) (NextArrTableDescriptionGetter, error)
423407
}

pkg/providers/logbroker/one_dc_source.go

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
ydssource "github.com/transferia/transferia/pkg/providers/yds/source"
2323
"github.com/transferia/transferia/pkg/stats"
2424
"github.com/transferia/transferia/pkg/util"
25+
queues "github.com/transferia/transferia/pkg/util/queues"
2526
"github.com/transferia/transferia/pkg/util/queues/lbyds"
2627
"github.com/transferia/transferia/pkg/xtls"
2728
"go.ytsaurus.tech/library/go/core/log"
@@ -72,29 +73,15 @@ func (s *oneDCSource) Fetch() ([]abstract.ChangeItem, error) {
7273
case *persqueue.Data:
7374
var res []abstract.ChangeItem
7475
raw := make([]abstract.ChangeItem, 0)
75-
parseWrapper := func(buffer []*persqueue.Data) []abstract.ChangeItem {
76-
for _, item := range buffer {
77-
for _, b := range item.Batches() {
78-
for _, m := range b.Messages {
79-
raw = append(raw, lbyds.MessageAsChangeItem(parsers.Message{
80-
Offset: m.Offset,
81-
SeqNo: m.SeqNo,
82-
Key: m.SourceID,
83-
CreateTime: m.CreateTime,
84-
WriteTime: m.WriteTime,
85-
Value: m.Data,
86-
Headers: m.ExtraFields,
87-
}, parsers.MessageBatch{
88-
Topic: b.Topic,
89-
Partition: b.Partition,
90-
Messages: nil, // not used here
91-
}))
92-
}
76+
parseWrapper := func(batches []parsers.MessageBatch) []abstract.ChangeItem {
77+
for _, messageBatch := range batches {
78+
for _, message := range messageBatch.Messages {
79+
raw = append(raw, lbyds.MessageAsChangeItem(message, messageBatch, false))
9380
}
9481
}
95-
return lbyds.Parse(buffer, s.parser, s.metrics, s.logger, nil)
82+
return lbyds.Parse(batches, s.parser, s.metrics, s.logger, nil, false)
9683
}
97-
parsed := parseWrapper([]*persqueue.Data{v})
84+
parsed := parseWrapper(lbyds.ConvertBatches(v.Batches()))
9885
if len(raw) > 3 {
9986
raw = raw[:3]
10087
}
@@ -262,9 +249,9 @@ func (s *oneDCSource) run(parseQ *parsequeue.WaitableParseQueue[batch]) error {
262249
s.logger.Debug("got lb_offsets", log.Any("range", lbyds.BuildMapPartitionToLbOffsetsRange(batches)))
263250

264251
s.lastRead = time.Now()
265-
messagesSize, messagesCount := BatchStatistics(batches)
266-
s.metrics.Size.Add(int64(messagesSize))
267-
s.metrics.Count.Add(int64(messagesCount))
252+
messagesSize, messagesCount := queues.BatchStatistics(batches)
253+
s.metrics.Size.Add(messagesSize)
254+
s.metrics.Count.Add(messagesCount)
268255
s.logger.Debugf("Incoming data: %d messages of total size %d", messagesCount, messagesSize)
269256

270257
splittedBatches := newBatches(s.maxBatchSize, v.Commit, batches)
@@ -539,6 +526,7 @@ func newPqv1Source(
539526
return ydssource.NewSourceWithOpts(transferID, ydsCfg, logger, registry,
540527
ydssource.WithCreds(cfg.Credentials),
541528
ydssource.WithReaderOpts(&readerOpts),
529+
ydssource.WithUseFullTopicName(true),
542530
ydssource.WithParser(parser),
543531
)
544532
}

0 commit comments

Comments
 (0)