aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-09-21 22:51:31 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-09-21 23:06:17 +0300
commit848bbaf910520e8e91552a9cc5ec81298c9786e8 (patch)
tree5c382bd15032168d6e8098b119f878872401828e
parentf3dc09097cec50924ce6cbd5902110695a7ca522 (diff)
downloadydb-848bbaf910520e8e91552a9cc5ec81298c9786e8.tar.gz
KIKIMR-19215: fix windows build
-rw-r--r--ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/tx/columnshard/blobs_action/abstract/write.cpp2
-rw-r--r--ydb/core/tx/columnshard/blobs_action/tier/storage.cpp24
-rw-r--r--ydb/core/tx/columnshard/blobs_action/tier/storage.h9
-rw-r--r--ydb/core/tx/columnshard/blobs_reader/task.cpp4
-rw-r--r--ydb/core/tx/columnshard/blobs_reader/task.h4
-rw-r--r--ydb/core/tx/columnshard/columnshard_impl.cpp24
-rw-r--r--ydb/core/tx/columnshard/columnshard_impl.h4
-rw-r--r--ydb/core/tx/columnshard/ya.make6
-rw-r--r--ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt6
-rw-r--r--ydb/core/tx/tiering/manager.cpp31
-rw-r--r--ydb/core/tx/tiering/manager.h17
-rw-r--r--ydb/core/tx/tiering/ya.make6
13 files changed, 70 insertions, 68 deletions
diff --git a/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
index d3e1e8a7d0e..0b48bc68533 100644
--- a/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
@@ -32,6 +32,7 @@ get_built_tool_path(
add_library(core-tx-columnshard)
target_compile_options(core-tx-columnshard PRIVATE
+ -DKIKIMR_DISABLE_S3_OPS
-DUSE_CURRENT_UDF_ABI_VERSION
)
target_link_libraries(core-tx-columnshard PUBLIC
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
index 65d05cee02c..689e494c243 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
@@ -22,7 +22,7 @@ bool IBlobsWritingAction::IsReady() const {
}
IBlobsWritingAction::~IBlobsWritingAction() {
- AFL_VERIFY(BlobsForWrite.empty() || Aborted);
+ AFL_VERIFY(!NActors::TlsActivationContext || BlobsForWrite.empty() || Aborted);
}
}
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp b/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
index 3d6dec7bd66..d8c22aa4b9e 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
@@ -1,11 +1,12 @@
#include "storage.h"
+#include "adapter.h"
#include "remove.h"
#include "write.h"
#include "read.h"
#include "gc.h"
+#include "gc_actor.h"
#include <ydb/core/tx/columnshard/columnshard_impl.h>
#include <ydb/core/tx/tiering/manager.h>
-#include "gc_actor.h"
namespace NKikimr::NOlap::NBlobOperations::NTier {
@@ -40,13 +41,23 @@ bool TOperator::DoStartGC() {
return true;
}
-TOperator::TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard, const std::shared_ptr<NWrappers::NExternalStorage::IExternalStorageOperator>& externalOperator)
+void TOperator::InitNewExternalOperator(const NColumnShard::NTiers::TManager& tierManager) {
+ auto extStorageConfig = NWrappers::NExternalStorage::IExternalStorageConfig::Construct(tierManager.GetS3Settings());
+ AFL_VERIFY(extStorageConfig);
+ auto extStorageOperator = extStorageConfig->ConstructStorageOperator(false);
+ extStorageOperator->InitReplyAdapter(std::make_shared<NOlap::NBlobOperations::NTier::TRepliesAdapter>());
+ ExternalStorageOperators.emplace_back(extStorageOperator);
+ if (CurrentOperatorIdx.Val() + 1 < (i64)ExternalStorageOperators.size()) {
+ CurrentOperatorIdx.Inc();
+ }
+}
+
+TOperator::TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard)
: TBase(storageId)
, TabletId(shard.TabletID())
, TabletActorId(shard.SelfId())
- , ExternalStorageOperators({externalOperator})
{
- AFL_VERIFY(externalOperator);
+ InitNewExternalOperator(shard.GetTierManagerVerified(storageId));
}
void TOperator::DoOnTieringModified(const std::shared_ptr<NColumnShard::TTiersManager>& tiers) {
@@ -54,10 +65,7 @@ void TOperator::DoOnTieringModified(const std::shared_ptr<NColumnShard::TTiersMa
auto* tierManager = tiers->GetManagerOptional(TBase::GetStorageId());
ui32 cleanCount = ExternalStorageOperators.size() - 1;
if (tierManager) {
- auto bOperator = tiers->GetManagerVerified(TBase::GetStorageId()).GetExternalStorageOperator();
- AFL_VERIFY(bOperator);
- ExternalStorageOperators.emplace_back(bOperator);
- CurrentOperatorIdx.Inc();
+ InitNewExternalOperator(*tierManager);
} else {
cleanCount = ExternalStorageOperators.size();
}
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/storage.h b/ydb/core/tx/columnshard/blobs_action/tier/storage.h
index 8587a6f5e4e..dcd3a77050e 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/storage.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/storage.h
@@ -3,6 +3,7 @@
#include <ydb/core/tx/columnshard/blobs_action/abstract/storage.h>
#include <ydb/core/tx/columnshard/blob_manager.h>
#include <ydb/core/tx/columnshard/blob_cache.h>
+#include <ydb/core/tx/tiering/manager.h>
#include <ydb/core/wrappers/abstract.h>
#include "gc_info.h"
@@ -16,7 +17,12 @@ private:
TAtomicCounter CurrentOperatorIdx = 0;
std::deque<NWrappers::NExternalStorage::IExternalStorageOperator::TPtr> ExternalStorageOperators;
std::shared_ptr<TGCInfo> GCInfo = std::make_shared<TGCInfo>();
+ NWrappers::NExternalStorage::IExternalStorageConfig::TPtr ExternalStorageConfig;
+ NWrappers::NExternalStorage::IExternalStorageOperator::TPtr ExternalStorageOperator;
+
NWrappers::NExternalStorage::IExternalStorageOperator::TPtr GetCurrentOperator() const;
+ void InitNewExternalOperator(const NColumnShard::NTiers::TManager& tierManager);
+
virtual TString DoDebugString() const override {
return GetCurrentOperator()->DebugString();
}
@@ -32,7 +38,8 @@ protected:
virtual void DoOnTieringModified(const std::shared_ptr<NColumnShard::TTiersManager>& tiers) override;
public:
- TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard, const std::shared_ptr<NWrappers::NExternalStorage::IExternalStorageOperator>& externalOperator);
+ TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard);
+
virtual std::shared_ptr<IBlobInUseTracker> GetBlobsTracker() const override {
return GCInfo;
}
diff --git a/ydb/core/tx/columnshard/blobs_reader/task.cpp b/ydb/core/tx/columnshard/blobs_reader/task.cpp
index 20c7c3ec36e..38c7ebf627e 100644
--- a/ydb/core/tx/columnshard/blobs_reader/task.cpp
+++ b/ydb/core/tx/columnshard/blobs_reader/task.cpp
@@ -106,4 +106,8 @@ bool ITask::OnError(const TBlobRange& range) {
return DoOnError(range);
}
+ITask::~ITask() {
+ Y_VERIFY(!NActors::TlsActivationContext || DataIsReadyFlag || TaskFinishedWithError);
+}
+
}
diff --git a/ydb/core/tx/columnshard/blobs_reader/task.h b/ydb/core/tx/columnshard/blobs_reader/task.h
index a1706690d99..fb2a1a5bfcc 100644
--- a/ydb/core/tx/columnshard/blobs_reader/task.h
+++ b/ydb/core/tx/columnshard/blobs_reader/task.h
@@ -74,9 +74,7 @@ public:
const std::vector<std::shared_ptr<IBlobsReadingAction>>& GetAgents() const;
- virtual ~ITask() {
- Y_VERIFY(DataIsReadyFlag || TaskFinishedWithError);
- }
+ virtual ~ITask();
ITask(const std::vector<std::shared_ptr<IBlobsReadingAction>>& actions);
diff --git a/ydb/core/tx/columnshard/columnshard_impl.cpp b/ydb/core/tx/columnshard/columnshard_impl.cpp
index 1f450c58b25..127b9eda588 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.cpp
+++ b/ydb/core/tx/columnshard/columnshard_impl.cpp
@@ -5,7 +5,11 @@
#include "engines/changes/ttl.h"
#include "engines/changes/cleanup.h"
#include "blobs_action/bs/storage.h"
+
+#ifndef KIKIMR_DISABLE_S3_OPS
#include "blobs_action/tier/storage.h"
+#endif
+
#include "blobs_action/transaction/tx_gc_insert_table.h"
#include "blobs_action/transaction/tx_gc_indexed.h"
#include "hooks/abstract/abstract.h"
@@ -146,12 +150,11 @@ protected:
} else if (!Shard->Tiers) {
return nullptr;
} else {
- const NTiers::TManager* externalManager = Shard->Tiers->GetManagerOptional(storageId);
- if (!externalManager) {
- return nullptr;
- } else {
- return std::make_shared<NOlap::NBlobOperations::NTier::TOperator>(storageId, *Shard, externalManager->GetExternalStorageOperator());
- }
+#ifndef KIKIMR_DISABLE_S3_OPS
+ return std::make_shared<NOlap::NBlobOperations::NTier::TOperator>(storageId, *Shard);
+#else
+ return nullptr;
+#endif
}
}
public:
@@ -915,15 +918,6 @@ void TColumnShard::Die(const TActorContext& ctx) {
return IActor::Die(ctx);
}
-#ifndef KIKIMR_DISABLE_S3_OPS
-NWrappers::NExternalStorage::IExternalStorageOperator::TPtr TColumnShard::GetTierStorageOperator(const TString& tierId) const {
- if (!Tiers) {
- return nullptr;
- }
- return Tiers->GetStorageOperator(tierId);
-}
-#endif
-
void TColumnShard::Handle(NMetadata::NProvider::TEvRefreshSubscriberData::TPtr& ev) {
Y_VERIFY(Tiers);
ALS_INFO(NKikimrServices::TX_COLUMNSHARD) << "test handle NMetadata::NProvider::TEvRefreshSubscriberData"
diff --git a/ydb/core/tx/columnshard/columnshard_impl.h b/ydb/core/tx/columnshard/columnshard_impl.h
index 2a0f1ca342b..2e1d6622e8f 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.h
+++ b/ydb/core/tx/columnshard/columnshard_impl.h
@@ -460,10 +460,6 @@ private:
void RunDropTable(const NKikimrTxColumnShard::TDropTable& body, const TRowVersion& version, NTabletFlatExecutor::TTransactionContext& txc);
void RunAlterStore(const NKikimrTxColumnShard::TAlterStore& body, const TRowVersion& version, NTabletFlatExecutor::TTransactionContext& txc);
-#ifndef KIKIMR_DISABLE_S3_OPS
- NWrappers::NExternalStorage::IExternalStorageOperator::TPtr GetTierStorageOperator(const TString& tierId) const;
-#endif
-
void SetupIndexation();
void SetupCompaction();
bool SetupTtl(const THashMap<ui64, NOlap::TTiering>& pathTtls = {}, const bool force = false);
diff --git a/ydb/core/tx/columnshard/ya.make b/ydb/core/tx/columnshard/ya.make
index 893c5663a61..ad4d31864a4 100644
--- a/ydb/core/tx/columnshard/ya.make
+++ b/ydb/core/tx/columnshard/ya.make
@@ -62,6 +62,12 @@ PEERDIR(
ydb/library/chunks_limiter
)
+IF (OS_WINDOWS)
+ CFLAGS(
+ -DKIKIMR_DISABLE_S3_OPS
+ )
+ENDIF()
+
YQL_LAST_ABI_VERSION()
END()
diff --git a/ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt
index 1ff88e527d0..9184b283a62 100644
--- a/ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tiering/CMakeLists.windows-x86_64.txt
@@ -11,6 +11,9 @@ add_subdirectory(tier)
add_subdirectory(ut)
add_library(core-tx-tiering)
+target_compile_options(core-tx-tiering PRIVATE
+ -DKIKIMR_DISABLE_S3_OPS
+)
target_link_libraries(core-tx-tiering PUBLIC
contrib-libs-cxxsupp
yutil
@@ -35,6 +38,9 @@ target_sources(core-tx-tiering PRIVATE
)
add_global_library_for(core-tx-tiering.global core-tx-tiering)
+target_compile_options(core-tx-tiering.global PRIVATE
+ -DKIKIMR_DISABLE_S3_OPS
+)
target_link_libraries(core-tx-tiering.global PUBLIC
contrib-libs-cxxsupp
yutil
diff --git a/ydb/core/tx/tiering/manager.cpp b/ydb/core/tx/tiering/manager.cpp
index d5adbd1308a..b0b4c0f90e3 100644
--- a/ydb/core/tx/tiering/manager.cpp
+++ b/ydb/core/tx/tiering/manager.cpp
@@ -3,7 +3,6 @@
#include "external_data.h"
#include <ydb/core/tx/columnshard/columnshard_private_events.h>
-#include <ydb/core/tx/columnshard/blobs_action/tier/adapter.h>
#include <ydb/services/metadata/secret/fetcher.h>
namespace NKikimr::NColumnShard {
@@ -85,23 +84,14 @@ TManager& TManager::Restart(const TTierConfig& config, std::shared_ptr<NMetadata
}
bool TManager::Stop() {
- ExternalStorageOperator = nullptr;
- ExternalStorageConfig = nullptr;
+ S3Settings.reset();
ALS_DEBUG(NKikimrServices::TX_TIERING) << "Tier '" << GetTierName() << "' stopped at tablet " << TabletId;
return true;
}
bool TManager::Start(std::shared_ptr<NMetadata::NSecret::TSnapshot> secrets) {
- if (!!ExternalStorageOperator) {
- ALS_DEBUG(NKikimrServices::TX_TIERING) << "Tier '" << GetTierName() << "' is already started at tablet " << TabletId;
- return true;
- }
-#ifndef KIKIMR_DISABLE_S3_OPS
- auto s3Config = Config.GetPatchedConfig(secrets);
- ExternalStorageConfig = NWrappers::NExternalStorage::IExternalStorageConfig::Construct(s3Config);
- ExternalStorageOperator = ExternalStorageConfig->ConstructStorageOperator(false);
- ExternalStorageOperator->InitReplyAdapter(std::make_shared<NOlap::NBlobOperations::NTier::TRepliesAdapter>());
-#endif
+ AFL_VERIFY(!S3Settings)("tier", GetTierName())("event", "already started");
+ S3Settings = Config.GetPatchedConfig(secrets);
ALS_DEBUG(NKikimrServices::TX_TIERING) << "Tier '" << GetTierName() << "' started at tablet " << TabletId;
return true;
}
@@ -147,8 +137,8 @@ void TTiersManager::TakeConfigs(NMetadata::NFetcher::ISnapshot::TPtr snapshotExt
continue;
}
NTiers::TManager localManager(TabletId, TabletActorId, i.second);
- auto& manager = Managers.emplace(tierName, std::move(localManager)).first->second;
- manager.Start(Secrets);
+ auto itManager = Managers.emplace(tierName, std::move(localManager)).first;
+ itManager->second.Start(Secrets);
}
if (ShardCallback && TlsActivationContext) {
@@ -156,17 +146,6 @@ void TTiersManager::TakeConfigs(NMetadata::NFetcher::ISnapshot::TPtr snapshotExt
}
}
-#ifndef KIKIMR_DISABLE_S3_OPS
-NWrappers::NExternalStorage::IExternalStorageOperator::TPtr TTiersManager::GetStorageOperator(const TString& tierId) const {
- auto it = Managers.find(tierId);
- if (it == Managers.end()) {
- ALS_ERROR(NKikimrServices::TX_TIERING) << "No storage operator for tier '" << tierId << "' at tablet " << TabletId;
- return nullptr;
- }
- return it->second.GetExternalStorageOperator();
-}
-#endif
-
TTiersManager& TTiersManager::Start(std::shared_ptr<TTiersManager> ownerPtr) {
Y_VERIFY(!Actor);
Actor = new TTiersManager::TActor(ownerPtr);
diff --git a/ydb/core/tx/tiering/manager.h b/ydb/core/tx/tiering/manager.h
index 282da3b2726..415ab3f1705 100644
--- a/ydb/core/tx/tiering/manager.h
+++ b/ydb/core/tx/tiering/manager.h
@@ -6,13 +6,11 @@
#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/actor.h>
+#include <ydb/public/sdk/cpp/client/ydb_types/s3_settings.h>
#include <ydb/services/metadata/secret/snapshot.h>
#include <ydb/services/metadata/service.h>
#include <ydb/library/accessor/accessor.h>
-#ifndef KIKIMR_DISABLE_S3_OPS
-#include <ydb/core/wrappers/abstract.h>
-#endif
namespace NKikimr::NColumnShard {
namespace NTiers {
@@ -25,11 +23,13 @@ private:
YDB_READONLY_DEF(NActors::TActorId, TabletActorId);
YDB_READONLY_DEF(TTierConfig, Config);
YDB_READONLY_DEF(NActors::TActorId, StorageActorId);
-#ifndef KIKIMR_DISABLE_S3_OPS
- NWrappers::NExternalStorage::IExternalStorageConfig::TPtr ExternalStorageConfig;
- YDB_READONLY_DEF(NWrappers::NExternalStorage::IExternalStorageOperator::TPtr, ExternalStorageOperator);
-#endif
+ std::optional<NKikimrSchemeOp::TS3Settings> S3Settings;
public:
+ const NKikimrSchemeOp::TS3Settings& GetS3Settings() const {
+ Y_VERIFY(S3Settings);
+ return *S3Settings;
+ }
+
TManager(const ui64 tabletId, const NActors::TActorId& tabletActorId, const TTierConfig& config);
TManager& Restart(const TTierConfig& config, std::shared_ptr<NMetadata::NSecret::TSnapshot> secrets);
@@ -81,9 +81,6 @@ public:
TTiersManager& Start(std::shared_ptr<TTiersManager> ownerPtr);
TTiersManager& Stop();
-#ifndef KIKIMR_DISABLE_S3_OPS
- NWrappers::NExternalStorage::IExternalStorageOperator::TPtr GetStorageOperator(const TString& tierId) const;
-#endif
const NTiers::TManager& GetManagerVerified(const TString & tierId) const;
const NTiers::TManager* GetManagerOptional(const TString& tierId) const;
NMetadata::NFetcher::ISnapshotsFetcher::TPtr GetExternalDataManipulation() const;
diff --git a/ydb/core/tx/tiering/ya.make b/ydb/core/tx/tiering/ya.make
index 42c40a3c246..1a77b742096 100644
--- a/ydb/core/tx/tiering/ya.make
+++ b/ydb/core/tx/tiering/ya.make
@@ -10,6 +10,12 @@ SRCS(
snapshot.cpp
)
+IF (OS_WINDOWS)
+ CFLAGS(
+ -DKIKIMR_DISABLE_S3_OPS
+ )
+ENDIF()
+
PEERDIR(
library/cpp/actors/core
library/cpp/json/writer