Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge to stable-23-3 #1949

Merged
merged 5 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_disk_registry_state.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_path_descriptions.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_tablet_boot_infos.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_disk_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_check_blob.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_disk_registry_state.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_path_descriptions.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_tablet_boot_infos.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_disk_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_check_blob.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_disk_registry_state.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_path_descriptions.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_tablet_boot_infos.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_disk_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_check_blob.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_disk_registry_state.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_path_descriptions.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_backup_tablet_boot_infos.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_disk_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_change_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_check_blob.cpp
Expand Down
8 changes: 8 additions & 0 deletions cloud/blockstore/libs/storage/service/service_actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,14 @@ class TServiceActor final
TResultOrError<NActors::IActorPtr> CreateGetStorageConfigActor(
TRequestInfoPtr requestInfo,
TString input);

TResultOrError<NActors::IActorPtr> CreateBackupPathDescriptionsActor(
TRequestInfoPtr requestInfo,
TString input);

TResultOrError<NActors::IActorPtr> CreateBackupTabletBootInfosActor(
TRequestInfoPtr requestInfo,
TString input);
};

////////////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ void TServiceActor::HandleExecuteAction(
{"waitdependentdiskstoswitchnode", &TServiceActor::CreateWaitDependentDisksToSwitchNodeActor },
{"partiallysuspenddiskagent", &TServiceActor::CreatePartiallySuspendDiskAgentActor },
{"getstorageconfig", &TServiceActor::CreateGetStorageConfigActor },
{"backuppathdescriptions", &TServiceActor::CreateBackupPathDescriptionsActor },
{"backuptabletbootinfos", &TServiceActor::CreateBackupTabletBootInfosActor },
};

NProto::TError error;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
#include "service_actor.h"

#include <cloud/blockstore/libs/storage/api/ss_proxy.h>
#include <cloud/blockstore/libs/storage/core/probes.h>

#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/events.h>
#include <library/cpp/actors/core/hfunc.h>
#include <library/cpp/actors/core/log.h>

namespace NCloud::NBlockStore::NStorage {

using namespace NActors;

using namespace NKikimr;

LWTRACE_USING(BLOCKSTORE_STORAGE_PROVIDER)

namespace {

////////////////////////////////////////////////////////////////////////////////

class TBackupPathDescriptionsActor final
: public TActorBootstrapped<TBackupPathDescriptionsActor>
{
private:
const TRequestInfoPtr RequestInfo;

NProto::TError Error;

public:
explicit TBackupPathDescriptionsActor(TRequestInfoPtr requestInfo);

void Bootstrap(const TActorContext& ctx);

private:
void ReplyAndDie(const TActorContext& ctx);

private:
STFUNC(StateWork);

void HandleBackupPathDescriptionsResponse(
const TEvSSProxy::TEvBackupPathDescriptionsResponse::TPtr& ev,
const TActorContext& ctx);
};

////////////////////////////////////////////////////////////////////////////////

TBackupPathDescriptionsActor::TBackupPathDescriptionsActor(
TRequestInfoPtr requestInfo)
: RequestInfo(std::move(requestInfo))
{}

void TBackupPathDescriptionsActor::Bootstrap(const TActorContext& ctx)
{
auto request =
std::make_unique<TEvSSProxy::TEvBackupPathDescriptionsRequest>();
Become(&TThis::StateWork);
NCloud::Send(ctx, MakeSSProxyServiceId(), std::move(request));
}

void TBackupPathDescriptionsActor::ReplyAndDie(const TActorContext& ctx)
{
auto response =
std::make_unique<TEvService::TEvExecuteActionResponse>(Error);

LWTRACK(
ResponseSent_Service,
RequestInfo->CallContext->LWOrbit,
"ExecuteAction_backuppathdescriptions",
RequestInfo->CallContext->RequestId);

NCloud::Reply(ctx, *RequestInfo, std::move(response));
Die(ctx);
}

////////////////////////////////////////////////////////////////////////////////

void TBackupPathDescriptionsActor::HandleBackupPathDescriptionsResponse(
const TEvSSProxy::TEvBackupPathDescriptionsResponse::TPtr& ev,
const TActorContext& ctx)
{
auto* msg = ev->Get();

if (HasError(msg->GetError())) {
Error = msg->GetError();
}

ReplyAndDie(ctx);
}

////////////////////////////////////////////////////////////////////////////////

STFUNC(TBackupPathDescriptionsActor::StateWork)
{
switch (ev->GetTypeRewrite()) {
HFunc(
TEvSSProxy::TEvBackupPathDescriptionsResponse,
HandleBackupPathDescriptionsResponse);

default:
HandleUnexpectedEvent(ev, TBlockStoreComponents::SERVICE);
break;
}
}

} // namespace

////////////////////////////////////////////////////////////////////////////////

TResultOrError<IActorPtr> TServiceActor::CreateBackupPathDescriptionsActor(
TRequestInfoPtr requestInfo,
TString input)
{
Y_UNUSED(input);

return {std::make_unique<TBackupPathDescriptionsActor>(
std::move(requestInfo))};
}

} // namespace NCloud::NBlockStore::NStorage
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#include "service_actor.h"

#include <cloud/blockstore/libs/storage/core/probes.h>

#include <cloud/storage/core/libs/api/hive_proxy.h>

#include <library/cpp/actors/core/actor_bootstrapped.h>
#include <library/cpp/actors/core/events.h>
#include <library/cpp/actors/core/hfunc.h>
#include <library/cpp/actors/core/log.h>

namespace NCloud::NBlockStore::NStorage {

using namespace NActors;

using namespace NKikimr;

using namespace NCloud::NStorage;

LWTRACE_USING(BLOCKSTORE_STORAGE_PROVIDER)

namespace {

////////////////////////////////////////////////////////////////////////////////

class TBackupTabletBootInfosActor final
: public TActorBootstrapped<TBackupTabletBootInfosActor>
{
private:
const TRequestInfoPtr RequestInfo;

NProto::TError Error;

public:
explicit TBackupTabletBootInfosActor(TRequestInfoPtr requestInfo);

void Bootstrap(const TActorContext& ctx);

private:
void ReplyAndDie(const TActorContext& ctx);

private:
STFUNC(StateWork);

void HandleBackupTabletBootInfosResponse(
const TEvHiveProxy::TEvBackupTabletBootInfosResponse::TPtr& ev,
const TActorContext& ctx);
};

////////////////////////////////////////////////////////////////////////////////

TBackupTabletBootInfosActor::TBackupTabletBootInfosActor(
TRequestInfoPtr requestInfo)
: RequestInfo(std::move(requestInfo))
{}

void TBackupTabletBootInfosActor::Bootstrap(const TActorContext& ctx)
{
auto request =
std::make_unique<TEvHiveProxy::TEvBackupTabletBootInfosRequest>();
Become(&TThis::StateWork);
NCloud::Send(ctx, MakeHiveProxyServiceId(), std::move(request));
}

void TBackupTabletBootInfosActor::ReplyAndDie(const TActorContext& ctx)
{
auto response =
std::make_unique<TEvService::TEvExecuteActionResponse>(Error);

LWTRACK(
ResponseSent_Service,
RequestInfo->CallContext->LWOrbit,
"ExecuteAction_backuptabletbootinfos",
RequestInfo->CallContext->RequestId);

NCloud::Reply(ctx, *RequestInfo, std::move(response));
Die(ctx);
}

////////////////////////////////////////////////////////////////////////////////

void TBackupTabletBootInfosActor::HandleBackupTabletBootInfosResponse(
const TEvHiveProxy::TEvBackupTabletBootInfosResponse::TPtr& ev,
const TActorContext& ctx)
{
auto* msg = ev->Get();

if (HasError(msg->GetError())) {
Error = msg->GetError();
}

ReplyAndDie(ctx);
}

////////////////////////////////////////////////////////////////////////////////

STFUNC(TBackupTabletBootInfosActor::StateWork)
{
switch (ev->GetTypeRewrite()) {
HFunc(
TEvHiveProxy::TEvBackupTabletBootInfosResponse,
HandleBackupTabletBootInfosResponse);

default:
HandleUnexpectedEvent(ev, TBlockStoreComponents::SERVICE);
break;
}
}

} // namespace

////////////////////////////////////////////////////////////////////////////////

TResultOrError<IActorPtr> TServiceActor::CreateBackupTabletBootInfosActor(
TRequestInfoPtr requestInfo,
TString input)
{
Y_UNUSED(input);

return {std::make_unique<TBackupTabletBootInfosActor>(
std::move(requestInfo))};
}

} // namespace NCloud::NBlockStore::NStorage
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ class TModifyTagsActionActor final
////////////////////////////////////////////////////////////////////////////////

TModifyTagsActionActor::TModifyTagsActionActor(
TRequestInfoPtr requestInfo,
TString input)
TRequestInfoPtr requestInfo,
TString input)
: RequestInfo(std::move(requestInfo))
, Input(std::move(input))
{}
Expand Down
2 changes: 2 additions & 0 deletions cloud/blockstore/libs/storage/service/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ SRCS(
service.cpp
service_actor.cpp
service_actor_actions_backup_disk_registry_state.cpp
service_actor_actions_backup_path_descriptions.cpp
service_actor_actions_backup_tablet_boot_infos.cpp
service_actor_actions_change_disk_device.cpp
service_actor_actions_change_storage_config.cpp
service_actor_actions_check_blob.cpp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Vertices {
Test {
CreateVolumeRequest {
StorageMediaKind: STORAGE_MEDIA_SSD
BlocksCount: 1000000
BlockSize: 4096
}
ArtificialLoadSpec {
Ranges {
Start: 0
End: 999999
WriteRate: 100
ReadRate: 100
ZeroRate: 100
LoadType: LOAD_TYPE_RANDOM
IoDepth: 20
RequestsCount: 0
MaxRequestSize: 1000
}
}
TestDuration: 120
Verify: true
Name: "Test for localhost tablet version default"
}
}
Loading
Loading