Skip to content

Sync sdks #354

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

Merged
merged 8 commits into from
Dec 6, 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
83 changes: 83 additions & 0 deletions include/ydb-cpp-sdk/client/debug/client.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#pragma once

#include <ydb-cpp-sdk/client/driver/driver.h>

namespace NYdb::NDebug {

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

class TPlainGrpcPingResult: public TStatus {
public:
TPlainGrpcPingResult(TStatus&& status)
: TStatus(std::move(status))
{}
};

class TGrpcProxyPingResult: public TStatus {
public:
TGrpcProxyPingResult(TStatus&& status)
: TStatus(std::move(status))
{}
};

class TKqpProxyPingResult: public TStatus {
public:
TKqpProxyPingResult(TStatus&& status)
: TStatus(std::move(status))
{}
};

class TSchemeCachePingResult: public TStatus {
public:
TSchemeCachePingResult(TStatus&& status)
: TStatus(std::move(status))
{}
};

class TTxProxyPingResult: public TStatus {
public:
TTxProxyPingResult(TStatus&& status)
: TStatus(std::move(status))
{}
};

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

using TAsyncPlainGrpcPingResult = NThreading::TFuture<TPlainGrpcPingResult>;
using TAsyncGrpcProxyPingResult = NThreading::TFuture<TGrpcProxyPingResult>;
using TAsyncKqpProxyPingResult = NThreading::TFuture<TKqpProxyPingResult>;
using TAsyncSchemeCachePingResult = NThreading::TFuture<TSchemeCachePingResult>;
using TAsyncTxProxyPingResult = NThreading::TFuture<TTxProxyPingResult>;

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

struct TPlainGrpcPingSettings : public TOperationRequestSettings<TPlainGrpcPingSettings> {};
struct TGrpcProxyPingSettings : public TOperationRequestSettings<TGrpcProxyPingSettings> {};
struct TKqpProxyPingSettings : public TOperationRequestSettings<TKqpProxyPingSettings> {};
struct TSchemeCachePingSettings : public TOperationRequestSettings<TSchemeCachePingSettings> {};
struct TTxProxyPingSettings : public TOperationRequestSettings<TTxProxyPingSettings> {};

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

struct TClientSettings : public TCommonClientSettingsBase<TClientSettings> {
};

class TDebugClient {
public:
using TAsyncPlainGrpcPingResult = TAsyncPlainGrpcPingResult;
public:
TDebugClient(const TDriver& driver, const TClientSettings& settings = TClientSettings());

TAsyncPlainGrpcPingResult PingPlainGrpc(const TPlainGrpcPingSettings& settings);
TAsyncGrpcProxyPingResult PingGrpcProxy(const TGrpcProxyPingSettings& settings);
TAsyncKqpProxyPingResult PingKqpProxy(const TKqpProxyPingSettings& settings);

TAsyncSchemeCachePingResult PingSchemeCache(const TSchemeCachePingSettings& settings);
TAsyncTxProxyPingResult PingTxProxy(const TTxProxyPingSettings& settings);

private:
class TImpl;
std::shared_ptr<TImpl> Impl_;
};

} // namespace NYdb::NDebug
12 changes: 12 additions & 0 deletions include/ydb-cpp-sdk/client/scheme/scheme.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,25 +119,37 @@ struct TModifyPermissionsSettings : public TOperationRequestSettings<TModifyPerm
AddAction(EModifyPermissionsAction::Grant, permissions);
return *this;
}

TModifyPermissionsSettings& AddRevokePermissions(const TPermissions& permissions) {
AddAction(EModifyPermissionsAction::Revoke, permissions);
return *this;
}

TModifyPermissionsSettings& AddSetPermissions(const TPermissions& permissions) {
AddAction(EModifyPermissionsAction::Set, permissions);
return *this;
}

TModifyPermissionsSettings& AddChangeOwner(const std::string& owner) {
AddAction(EModifyPermissionsAction::Chown, TPermissions(owner));
return *this;
}

TModifyPermissionsSettings& AddClearAcl() {
ClearAcl_ = true;
return *this;
}

TModifyPermissionsSettings& AddInterruptInheritance(bool value) {
SetInterruptInheritance_ = true;
InterruptInheritanceValue_ = value;
return *this;
}

std::vector<std::pair<EModifyPermissionsAction, TPermissions>> Actions_;
bool ClearAcl_ = false;
bool SetInterruptInheritance_ = false;
bool InterruptInheritanceValue_ = false;
void AddAction(EModifyPermissionsAction action, const TPermissions& permissions) {
Actions_.emplace_back(std::pair<EModifyPermissionsAction, TPermissions>{action, permissions});
}
Expand Down
81 changes: 71 additions & 10 deletions include/ydb-cpp-sdk/client/table/table.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,12 @@ class KMeansTreeSettings;
class PartitioningSettings;
class DateTypeColumnModeSettings;
class TtlSettings;
class TtlTier;
class TableIndex;
class TableIndexDescription;
class ValueSinceUnixEpochModeSettings;
class DateTypeColumnModeSettingsV1;
class ValueSinceUnixEpochModeSettingsV1;

} // namespace Table
} // namespace Ydb
Expand Down Expand Up @@ -427,17 +430,46 @@ struct TPartitionStats {
uint32_t LeaderNodeId = 0;
};

struct TTtlDeleteAction {};

struct TTtlEvictToExternalStorageAction {
std::string StorageName;
};

class TTtlTierSettings {
public:
using TAction = std::variant<
std::monostate,
TTtlDeleteAction,
TTtlEvictToExternalStorageAction
>;

public:
explicit TTtlTierSettings(TDuration applyAfter, const TAction& action);
explicit TTtlTierSettings(const Ydb::Table::TtlTier& tier);
void SerializeTo(Ydb::Table::TtlTier& proto) const;

TDuration GetApplyAfter() const;
const TAction& GetAction() const;

private:
TDuration ApplyAfter_;
TAction Action_;
};

class TDateTypeColumnModeSettings {
public:
explicit TDateTypeColumnModeSettings(const std::string& columnName, const TDuration& expireAfter);
explicit TDateTypeColumnModeSettings(const std::string& columnName, const TDuration& deprecatedExpireAfter = TDuration::Max());
void SerializeTo(Ydb::Table::DateTypeColumnModeSettings& proto) const;
void SerializeTo(Ydb::Table::DateTypeColumnModeSettingsV1& proto) const;

const std::string& GetColumnName() const;
// Deprecated. Use TTtlSettings::GetExpireAfter()
const TDuration& GetExpireAfter() const;

private:
std::string ColumnName_;
TDuration ExpireAfter_;
TDuration DeprecatedExpireAfter_;
};

class TValueSinceUnixEpochModeSettings {
Expand All @@ -452,8 +484,9 @@ class TValueSinceUnixEpochModeSettings {
};

public:
explicit TValueSinceUnixEpochModeSettings(const std::string& columnName, EUnit columnUnit, const TDuration& expireAfter);
explicit TValueSinceUnixEpochModeSettings(const std::string& columnName, EUnit columnUnit, const TDuration& deprecatedExpireAfter = TDuration::Max());
void SerializeTo(Ydb::Table::ValueSinceUnixEpochModeSettings& proto) const;
void SerializeTo(Ydb::Table::ValueSinceUnixEpochModeSettingsV1& proto) const;

const std::string& GetColumnName() const;
EUnit GetColumnUnit() const;
Expand All @@ -466,11 +499,17 @@ class TValueSinceUnixEpochModeSettings {
private:
std::string ColumnName_;
EUnit ColumnUnit_;
TDuration ExpireAfter_;
TDuration DeprecatedExpireAfter_;
};

//! Represents ttl settings
class TTtlSettings {
private:
using TMode = std::variant<
TDateTypeColumnModeSettings,
TValueSinceUnixEpochModeSettings
>;

public:
using EUnit = TValueSinceUnixEpochModeSettings::EUnit;

Expand All @@ -479,25 +518,35 @@ class TTtlSettings {
ValueSinceUnixEpoch = 1,
};

explicit TTtlSettings(const std::string& columnName, const std::vector<TTtlTierSettings>& tiers);
explicit TTtlSettings(const std::string& columnName, const TDuration& expireAfter);
explicit TTtlSettings(const Ydb::Table::DateTypeColumnModeSettings& mode, uint32_t runIntervalSeconds);
const TDateTypeColumnModeSettings& GetDateTypeColumn() const;
// Deprecated. Use FromProto()
explicit TTtlSettings(const Ydb::Table::DateTypeColumnModeSettings& mode, uint32_t runIntervalSeconds);

explicit TTtlSettings(const std::string& columnName, EUnit columnUnit, const std::vector<TTtlTierSettings>& tiers);
explicit TTtlSettings(const std::string& columnName, EUnit columnUnit, const TDuration& expireAfter);
explicit TTtlSettings(const Ydb::Table::ValueSinceUnixEpochModeSettings& mode, uint32_t runIntervalSeconds);
const TValueSinceUnixEpochModeSettings& GetValueSinceUnixEpoch() const;
// Deprecated. Use FromProto()
explicit TTtlSettings(const Ydb::Table::ValueSinceUnixEpochModeSettings& mode, uint32_t runIntervalSeconds);

static std::optional<TTtlSettings> FromProto(const Ydb::Table::TtlSettings& proto);
void SerializeTo(Ydb::Table::TtlSettings& proto) const;
EMode GetMode() const;

TTtlSettings& SetRunInterval(const TDuration& value);
const TDuration& GetRunInterval() const;

const std::vector<TTtlTierSettings>& GetTiers() const;
std::optional<TDuration> GetExpireAfter() const;

private:
std::variant<
TDateTypeColumnModeSettings,
TValueSinceUnixEpochModeSettings
> Mode_;
explicit TTtlSettings(TMode mode, const std::vector<TTtlTierSettings>& tiers, ui32 runIntervalSeconds);
static std::optional<TDuration> GetExpireAfterFrom(const std::vector<TTtlTierSettings>& tiers);

private:
TMode Mode_;
std::vector<TTtlTierSettings> Tiers_;
TDuration RunInterval_ = TDuration::Zero();
};

Expand Down Expand Up @@ -616,6 +665,7 @@ class TTableDescription {
std::vector<TIndexDescription> GetIndexDescriptions() const;
std::vector<TChangefeedDescription> GetChangefeedDescriptions() const;
std::optional<TTtlSettings> GetTtlSettings() const;
// Deprecated. Use GetTtlSettings() instead
std::optional<std::string> GetTiering() const;
EStoreType GetStoreType() const;

Expand Down Expand Up @@ -762,6 +812,7 @@ class TColumnFamilyBuilder {

TColumnFamilyBuilder& SetData(const std::string& media);
TColumnFamilyBuilder& SetCompression(EColumnFamilyCompression compression);
TColumnFamilyBuilder& SetKeepInMemory(bool enabled);

TColumnFamilyDescription Build() const;

Expand Down Expand Up @@ -824,6 +875,11 @@ class TTableColumnFamilyBuilder {
return *this;
}

TTableColumnFamilyBuilder& SetKeepInMemory(bool enabled) {
Builder_.SetKeepInMemory(enabled);
return *this;
}

TTableBuilder& EndColumnFamily();

private:
Expand Down Expand Up @@ -1442,6 +1498,11 @@ class TAlterColumnFamilyBuilder {
return *this;
}

TAlterColumnFamilyBuilder& SetKeepInMemory(bool enabled) {
Builder_.SetKeepInMemory(enabled);
return *this;
}

TAlterTableSettings& EndAddColumnFamily();
TAlterTableSettings& EndAlterColumnFamily();

Expand Down
14 changes: 14 additions & 0 deletions src/api/grpc/ydb_debug_v1.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";

package Ydb.Debug.V1;
option java_package = "com.yandex.ydb.debug.v1";

import "src/api/protos/ydb_debug.proto";

service DebugService {
rpc PingPlainGrpc(Debug.PlainGrpcRequest) returns (Debug.PlainGrpcResponse);
rpc PingGrpcProxy(Debug.GrpcProxyRequest) returns (Debug.GrpcProxyResponse);
rpc PingKqpProxy(Debug.KqpProxyRequest) returns (Debug.KqpProxyResponse);
rpc PingSchemeCache(Debug.SchemeCacheRequest) returns (Debug.SchemeCacheResponse);
rpc PingTxProxy(Debug.TxProxyRequest) returns (Debug.TxProxyResponse);
}
10 changes: 3 additions & 7 deletions src/api/protos/draft/ydb_logstore.proto
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,6 @@ message Tier {
Ydb.Table.TtlSettings eviction = 2; // When to evict data to the next tier (or remove if none)
}

message TieringSettings {
optional string tiering_id = 2;
}

message CreateLogStoreRequest {
Ydb.Operations.OperationParams operation_params = 1;

Expand Down Expand Up @@ -135,8 +131,8 @@ message CreateLogTableRequest {
};
oneof ttl_specification {
Ydb.Table.TtlSettings ttl_settings = 5;
TieringSettings tiering_settings = 6;
};
reserved 6;

// Specifies the desired number of ColumnShards for this table
uint32 shards_count = 7;
Expand All @@ -160,9 +156,9 @@ message DescribeLogTableResult {

string schema_preset_name = 2;
Schema schema = 3;
reserved 4;
oneof ttl_specification {
Ydb.Table.TtlSettings ttl_settings = 5;
TieringSettings tiering_settings = 4;
}

// Specifies the desired number of ColumnShards for this table
Expand Down Expand Up @@ -195,9 +191,9 @@ message AlterLogTableRequest {
oneof ttl_action {
google.protobuf.Empty drop_ttl_settings = 3;
Ydb.Table.TtlSettings set_ttl_settings = 4;
TieringSettings set_tiering_settings = 5;
google.protobuf.Empty drop_tiering_settings = 6;
}
reserved 5;
}

message AlterLogTableResponse {
Expand Down
Loading
Loading