Skip to content

Commit d0516f3

Browse files
correction
1 parent 1e63f1f commit d0516f3

File tree

20 files changed

+74
-28
lines changed

20 files changed

+74
-28
lines changed

ydb/core/tx/columnshard/bg_tasks/abstract/adapter.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,20 @@ namespace NKikimr::NOlap::NBackground {
99

1010
class ITabletAdapter {
1111
private:
12+
YDB_READONLY_DEF(NActors::TActorId, TabletActorId);
13+
YDB_READONLY(TTabletId, TabletId, TTabletId(0));
1214
virtual bool DoLoadSessionsFromLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, std::deque<TSessionRecord>& records) = 0;
1315
virtual void DoSaveProgressToLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, const TSessionRecord& container) = 0;
1416
virtual void DoSaveStateToLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, const TSessionRecord& container) = 0;
1517
virtual void DoSaveSessionToLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, const TSessionRecord& container) = 0;
1618
virtual void DoRemoveSessionFromLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, const TString& className, const TString& identifier) = 0;
1719
public:
20+
ITabletAdapter(const NActors::TActorId& tabletActorId, const TTabletId tabletId)
21+
: TabletActorId(tabletActorId)
22+
, TabletId(tabletId)
23+
{
24+
25+
}
1826
virtual ~ITabletAdapter() = default;
1927

2028
void RemoveSessionFromLocalDatabase(NTabletFlatExecutor::TTransactionContext& txc, const TString& className, const TString& identifier) {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
#include "session.h"
2+
#include "adapter.h"
23

34
namespace NKikimr::NOlap::NBackground {
45

6+
NKikimr::NOlap::TTabletId TStartContext::GetTabletId() const {
7+
return Adapter->GetTabletId();
8+
}
9+
510
}

ydb/core/tx/columnshard/bg_tasks/abstract/session.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,23 @@ class ITabletAdapter;
1616

1717
class TStartContext {
1818
private:
19-
YDB_READONLY_DEF(TTabletId, TabletId);
2019
YDB_READONLY_DEF(NActors::TActorId, TabletActorId);
2120
YDB_READONLY_DEF(TStatusChannelContainer, Channel);
2221
YDB_READONLY_DEF(std::shared_ptr<TSession>, SessionSelfPtr);
2322
YDB_READONLY_DEF(std::shared_ptr<ITabletAdapter>, Adapter);
2423
public:
25-
TStartContext(const TTabletId tabletId, const NActors::TActorId& tabletActorId, const TStatusChannelContainer channel, const std::shared_ptr<TSession>& sessionSelfPtr,
24+
TTabletId GetTabletId() const;
25+
26+
TStartContext(const NActors::TActorId& tabletActorId, const TStatusChannelContainer channel, const std::shared_ptr<TSession>& sessionSelfPtr,
2627
const std::shared_ptr<ITabletAdapter>& adapter)
27-
: TabletId(tabletId)
28-
, TabletActorId(tabletActorId)
28+
: TabletActorId(tabletActorId)
2929
, Channel(channel)
3030
, SessionSelfPtr(sessionSelfPtr)
3131
, Adapter(adapter)
3232
{
33-
33+
AFL_VERIFY(!!Channel);
34+
AFL_VERIFY(!!SessionSelfPtr);
35+
AFL_VERIFY(!!Adapter);
3436
}
3537
};
3638

ydb/core/tx/columnshard/bg_tasks/events/events.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ namespace NKikimr::NOlap::NBackground {
99
class TEvents {
1010
public:
1111
enum EEv {
12-
EvExecuteGeneralTransaction = EventSpaceBegin(TKikimrEvents::ES_TX_BACKGROUND),
13-
EvTransactionComplete,
12+
EvExecuteGeneralLocalTransaction = EventSpaceBegin(TKikimrEvents::ES_TX_BACKGROUND),
13+
EvLocalTransactionComplete,
1414
EvSessionControl,
1515
EvRemoveSession,
1616

@@ -20,11 +20,11 @@ class TEvents {
2020
static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_TX_BACKGROUND), "expect EvEnd < EventSpaceEnd(TKikimrEvents::ES_TX_BACKGROUND)");
2121
};
2222

23-
class TEvExecuteGeneralTransaction: public TEventLocal<TEvExecuteGeneralTransaction, TEvents::EvExecuteGeneralTransaction> {
23+
class TEvExecuteGeneralLocalTransaction: public TEventLocal<TEvExecuteGeneralLocalTransaction, TEvents::EvExecuteGeneralLocalTransaction> {
2424
private:
2525
std::unique_ptr<NTabletFlatExecutor::ITransaction> Transaction;
2626
public:
27-
TEvExecuteGeneralTransaction(std::unique_ptr<NTabletFlatExecutor::ITransaction>&& transaction)
27+
TEvExecuteGeneralLocalTransaction(std::unique_ptr<NTabletFlatExecutor::ITransaction>&& transaction)
2828
: Transaction(std::move(transaction))
2929
{
3030
AFL_VERIFY(!!Transaction);
@@ -36,11 +36,11 @@ class TEvExecuteGeneralTransaction: public TEventLocal<TEvExecuteGeneralTransact
3636
}
3737
};
3838

39-
class TEvTransactionCompleted: public TEventLocal<TEvTransactionCompleted, TEvents::EvTransactionComplete> {
39+
class TEvLocalTransactionCompleted: public TEventLocal<TEvLocalTransactionCompleted, TEvents::EvLocalTransactionComplete> {
4040
private:
4141
const ui64 InternalTxId;
4242
public:
43-
TEvTransactionCompleted(const ui64 internalTxId)
43+
TEvLocalTransactionCompleted(const ui64 internalTxId)
4444
: InternalTxId(internalTxId) {
4545
}
4646

ydb/core/tx/columnshard/bg_tasks/manager/actor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ void TSessionActor::SaveSessionProgress() {
99
const ui64 txId = GetNextTxId();
1010
SaveSessionProgressTx.emplace(txId);
1111
auto tx = std::make_unique<TTxSaveSessionProgress>(Session, SelfId(), Adapter, txId);
12-
AFL_VERIFY(Send<TEvExecuteGeneralTransaction>(TabletActorId, std::move(tx)));
12+
AFL_VERIFY(Send<TEvExecuteGeneralLocalTransaction>(TabletActorId, std::move(tx)));
1313
}
1414

1515
void TSessionActor::SaveSessionState() {
1616
AFL_VERIFY(!SaveSessionStateTx);
1717
const ui64 txId = GetNextTxId();
1818
SaveSessionStateTx.emplace(txId);
1919
auto tx = std::make_unique<TTxSaveSessionState>(Session, SelfId(), Adapter, txId);
20-
AFL_VERIFY(Send<TEvExecuteGeneralTransaction>(TabletActorId, std::move(tx)));
20+
AFL_VERIFY(Send<TEvExecuteGeneralLocalTransaction>(TabletActorId, std::move(tx)));
2121
}
2222

23-
void TSessionActor::Handle(TEvTransactionCompleted::TPtr& ev) {
23+
void TSessionActor::Handle(TEvLocalTransactionCompleted::TPtr& ev) {
2424
if (SaveSessionProgressTx && *SaveSessionProgressTx == ev->Get()->GetInternalTxId()) {
2525
SaveSessionProgressTx.reset();
2626
OnSessionProgressSaved();

ydb/core/tx/columnshard/bg_tasks/manager/actor.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class TSessionActor: public NActors::TActorBootstrapped<TSessionActor> {
2828
}
2929
protected:
3030
void ExecuteTransaction(std::unique_ptr<NTabletFlatExecutor::ITransaction>&& tx) {
31-
AFL_VERIFY(Send<TEvExecuteGeneralTransaction>(TabletActorId, std::move(tx)));
31+
AFL_VERIFY(Send<TEvExecuteGeneralLocalTransaction>(TabletActorId, std::move(tx)));
3232
}
3333

3434
void SaveSessionProgress();
@@ -45,14 +45,14 @@ class TSessionActor: public NActors::TActorBootstrapped<TSessionActor> {
4545
AFL_VERIFY(!!Adapter);
4646
}
4747

48-
void Handle(TEvTransactionCompleted::TPtr& ev);
48+
void Handle(TEvLocalTransactionCompleted::TPtr& ev);
4949

5050
void Handle(TEvSessionControl::TPtr& ev);
5151

5252
STATEFN(StateInProgress) {
5353
const NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_BACKGROUND)("SelfId", SelfId())("TabletId", TabletId);
5454
switch (ev->GetTypeRewrite()) {
55-
hFunc(TEvTransactionCompleted, Handle);
55+
hFunc(TEvLocalTransactionCompleted, Handle);
5656
hFunc(TEvSessionControl, Handle);
5757
cFunc(NActors::TEvents::TEvPoisonPill::EventType, PassAway);
5858
default:

ydb/core/tx/columnshard/bg_tasks/manager/manager.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ std::unique_ptr<NKikimr::NTabletFlatExecutor::ITransaction> TSessionsManager::Ad
4040
task.GetChannelContainer()->OnFail(conclusion.GetErrorMessage());
4141
return nullptr;
4242
}
43+
return AddTask(task);
44+
}
45+
46+
std::unique_ptr<NKikimr::NTabletFlatExecutor::ITransaction> TSessionsManager::AddTask(const TTask& task) {
4347
auto session = Storage->GetSession(task.GetDescriptionContainer().GetClassName(), task.GetIdentifier());
4448
if (!!session) {
4549
task.GetChannelContainer()->OnFail("session exists already");

ydb/core/tx/columnshard/bg_tasks/manager/manager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class TSessionsManager {
2828

2929
bool LoadIdempotency(NTabletFlatExecutor::TTransactionContext& txc);
3030

31+
[[nodiscard]] std::unique_ptr<NTabletFlatExecutor::ITransaction> AddTask(const TTask& task);
3132
[[nodiscard]] std::unique_ptr<NTabletFlatExecutor::ITransaction> AddTaskFromProto(const NKikimrTxBackgroundProto::TTaskContainer& taskProto);
3233
[[nodiscard]] std::unique_ptr<NTabletFlatExecutor::ITransaction> Remove(const TString& className, const TString& identifier);
3334
[[nodiscard]] std::unique_ptr<NTabletFlatExecutor::ITransaction> ApplyControlFromProto(const NKikimrTxBackgroundProto::TSessionControlContainer& controlProto);

ydb/core/tx/columnshard/bg_tasks/transactions/tx_add.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
namespace NKikimr::NOlap::NBackground {
55

66
bool TTxAddSession::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
7-
Adapter->SaveSessionToLocalDatabase(txc, Session->SerializeToLocalDatabaseRecord()).Validate("on AddSession");
7+
Adapter->SaveSessionToLocalDatabase(txc, Session->SerializeToLocalDatabaseRecord());
88
return true;
99
}
1010

1111
void TTxAddSession::Complete(const TActorContext& ctx) {
1212
Sessions->AddSession(Session).Validate("on add background session");
1313
Session->GetChannelContainer()->OnAdded();
1414
if (Session->GetLogicContainer()->IsReadyForStart()) {
15-
TStartContext context(ctx.SelfID, Session->GetChannelContainer());
15+
TStartContext context(ctx.SelfID, Session->GetChannelContainer(), Session, Adapter);
1616
Session->StartActor(context);
1717
}
1818
}

ydb/core/tx/columnshard/bg_tasks/transactions/tx_general.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace NKikimr::NOlap::NBackground {
66
void TTxGeneral::Complete(const TActorContext& ctx) {
77
DoComplete(ctx);
88
if (!!ProgressActorId) {
9-
ctx.Send(*ProgressActorId, new TEvTransactionCompleted(TxInternalId));
9+
ctx.Send(*ProgressActorId, new TEvLocalTransactionCompleted(TxInternalId));
1010
}
1111
}
1212

0 commit comments

Comments
 (0)