Skip to content

Sync sdks #363

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
Jan 13, 2025
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
3 changes: 3 additions & 0 deletions include/ydb-cpp-sdk/client/bsconfig/storage_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ class TStorageConfigClient {
// Fetch current cluster storage config
TAsyncFetchStorageConfigResult FetchStorageConfig(const TStorageConfigSettings& settings = {});

// Bootstrap cluster with automatic configuration
TAsyncStatus BootstrapCluster(const std::string& selfAssemblyUUID);

private:
class TImpl;

Expand Down
28 changes: 28 additions & 0 deletions include/ydb-cpp-sdk/client/draft/ydb_replication.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

namespace Ydb::Replication {
class ConnectionParams;
class ConsistencyLevelGlobal;
class DescribeReplicationResult;
class DescribeReplicationResult_Stats;
}
Expand Down Expand Up @@ -60,6 +61,19 @@ class TConnectionParams: private TCommonClientSettings {
> Credentials_;
};

struct TRowConsistency {
};

class TGlobalConsistency {
public:
explicit TGlobalConsistency(const Ydb::Replication::ConsistencyLevelGlobal& proto);

const TDuration& GetCommitInterval() const;

private:
TDuration CommitInterval_;
};

class TStats {
public:
TStats() = default;
Expand Down Expand Up @@ -108,6 +122,11 @@ class TReplicationDescription {
std::optional<std::string> SrcChangefeedName;
};

enum class EConsistencyLevel {
Row,
Global,
};

enum class EState {
Running,
Error,
Expand All @@ -119,6 +138,9 @@ class TReplicationDescription {
const TConnectionParams& GetConnectionParams() const;
const std::vector<TItem> GetItems() const;

EConsistencyLevel GetConsistencyLevel() const;
const TGlobalConsistency& GetGlobalConsistency() const;

EState GetState() const;
const TRunningState& GetRunningState() const;
const TErrorState& GetErrorState() const;
Expand All @@ -127,6 +149,12 @@ class TReplicationDescription {
private:
TConnectionParams ConnectionParams_;
std::vector<TItem> Items_;

std::variant<
TRowConsistency,
TGlobalConsistency
> ConsistencyLevel_;

std::variant<
TRunningState,
TErrorState,
Expand Down
1 change: 1 addition & 0 deletions include/ydb-cpp-sdk/client/import/import.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ struct TImportFromS3Settings : public TOperationRequestSettings<TImportFromS3Set
FLUENT_SETTING_OPTIONAL(std::string, Description);
FLUENT_SETTING_OPTIONAL(uint32_t, NumberOfRetries);
FLUENT_SETTING_OPTIONAL(bool, NoACL);
FLUENT_SETTING_OPTIONAL(bool, SkipChecksumValidation);
};

class TImportFromS3Response : public TOperation {
Expand Down
10 changes: 9 additions & 1 deletion include/ydb-cpp-sdk/client/query/tx.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ struct TTxSettings {
return TTxSettings(TS_SNAPSHOT_RO);
}

static TTxSettings SnapshotRW() {
return TTxSettings(TS_SNAPSHOT_RW);
}

void Out(IOutputStream& out) const {
switch (Mode_) {
case TS_SERIALIZABLE_RW:
Expand All @@ -52,6 +56,9 @@ struct TTxSettings {
case TS_SNAPSHOT_RO:
out << "SnapshotRO";
break;
case TS_SNAPSHOT_RW:
out << "SnapshotRW";
break;
default:
out << "Unknown";
break;
Expand All @@ -62,7 +69,8 @@ struct TTxSettings {
TS_SERIALIZABLE_RW,
TS_ONLINE_RO,
TS_STALE_RO,
TS_SNAPSHOT_RO
TS_SNAPSHOT_RO,
TS_SNAPSHOT_RW,
};

FLUENT_SETTING(TTxOnlineSettings, OnlineSettings);
Expand Down
101 changes: 54 additions & 47 deletions include/ydb-cpp-sdk/client/table/table.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ class TtlTier;
class TableIndex;
class TableIndexDescription;
class ValueSinceUnixEpochModeSettings;
class DateTypeColumnModeSettingsV1;
class ValueSinceUnixEpochModeSettingsV1;
class EvictionToExternalStorageSettings;

} // namespace Table
} // namespace Ydb
Expand Down Expand Up @@ -434,46 +433,17 @@ 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& deprecatedExpireAfter = TDuration::Max());
explicit TDateTypeColumnModeSettings(const std::string& columnName, const TDuration& applyAfter);
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 DeprecatedExpireAfter_;
TDuration ApplyAfter_;
};

class TValueSinceUnixEpochModeSettings {
Expand All @@ -488,9 +458,8 @@ class TValueSinceUnixEpochModeSettings {
};

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

const std::string& GetColumnName() const;
EUnit GetColumnUnit() const;
Expand All @@ -503,7 +472,45 @@ class TValueSinceUnixEpochModeSettings {
private:
std::string ColumnName_;
EUnit ColumnUnit_;
TDuration DeprecatedExpireAfter_;
TDuration ApplyAfter_;
};

class TTtlDeleteAction {};
class TTtlEvictToExternalStorageAction {
public:
TTtlEvictToExternalStorageAction(const std::string& storageName);
void SerializeTo(Ydb::Table::EvictionToExternalStorageSettings& proto) const;

std::string GetStorage() const;

private:
std::string Storage_;
};

class TTtlTierSettings {
public:
using TExpression = std::variant<
TDateTypeColumnModeSettings,
TValueSinceUnixEpochModeSettings
>;

using TAction = std::variant<
TTtlDeleteAction,
TTtlEvictToExternalStorageAction
>;

public:
explicit TTtlTierSettings(const TExpression& expression, const TAction& action);

static std::optional<TTtlTierSettings> FromProto(const Ydb::Table::TtlTier& tier);
void SerializeTo(Ydb::Table::TtlTier& proto) const;

const TExpression& GetExpression() const;
const TAction& GetAction() const;

private:
TExpression Expression_;
TAction Action_;
};

//! Represents ttl settings
Expand All @@ -522,16 +529,14 @@ class TTtlSettings {
ValueSinceUnixEpoch = 1,
};

explicit TTtlSettings(const std::string& columnName, const std::vector<TTtlTierSettings>& tiers);
explicit TTtlSettings(const std::vector<TTtlTierSettings>& tiers);

explicit TTtlSettings(const std::string& columnName, const TDuration& expireAfter);
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);
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);
Expand All @@ -542,14 +547,8 @@ class TTtlSettings {
const TDuration& GetRunInterval() const;

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

private:
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 @@ -1323,6 +1322,10 @@ class TTxSettings {
return TTxSettings(TS_SNAPSHOT_RO);
}

static TTxSettings SnapshotRW() {
return TTxSettings(TS_SNAPSHOT_RW);
}

void Out(IOutputStream& out) const {
switch (Mode_) {
case TS_SERIALIZABLE_RW:
Expand All @@ -1337,6 +1340,9 @@ class TTxSettings {
case TS_SNAPSHOT_RO:
out << "SnapshotRO";
break;
case TS_SNAPSHOT_RW:
out << "SnapshotRW";
break;
default:
out << "Unknown";
break;
Expand All @@ -1348,7 +1354,8 @@ class TTxSettings {
TS_SERIALIZABLE_RW,
TS_ONLINE_RO,
TS_STALE_RO,
TS_SNAPSHOT_RO
TS_SNAPSHOT_RO,
TS_SNAPSHOT_RW,
};

FLUENT_SETTING(TTxOnlineSettings, OnlineSettings);
Expand Down
9 changes: 6 additions & 3 deletions src/api/grpc/ydb_bsconfig_v1.proto
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ import "src/api/protos/ydb_bsconfig.proto";

service BSConfigService {

// Initialize Blobstorage host configs and box
// Initialize Blobstorage/single config
rpc ReplaceStorageConfig(BSConfig.ReplaceStorageConfigRequest) returns (BSConfig.ReplaceStorageConfigResponse);

// Fetch Blobstorage host configs and box
// Fetch Blobstorage/single config
rpc FetchStorageConfig(BSConfig.FetchStorageConfigRequest) returns (BSConfig.FetchStorageConfigResponse);

}
// Bootstrap automatically configured cluster
rpc BootstrapCluster(BSConfig.BootstrapClusterRequest) returns (BSConfig.BootstrapClusterResponse);

}
12 changes: 12 additions & 0 deletions src/api/protos/draft/ydb_replication.proto
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ message ConnectionParams {
}
}

message ConsistencyLevelRow {
}

message ConsistencyLevelGlobal {
google.protobuf.Duration commit_interval = 1;
}

message DescribeReplicationResult {
message Stats {
optional google.protobuf.Duration lag = 1;
Expand Down Expand Up @@ -72,7 +79,12 @@ message DescribeReplicationResult {

// Description of scheme object.
Ydb.Scheme.Entry self = 1;

ConnectionParams connection_params = 2;
oneof consistency_level {
ConsistencyLevelRow row_consistency = 7;
ConsistencyLevelGlobal global_consistency = 8;
}
repeated Item items = 3;
oneof state {
RunningState running = 4;
Expand Down
11 changes: 10 additions & 1 deletion src/api/protos/ydb_bsconfig.proto
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,13 @@ message FetchStorageConfigResponse {

message FetchStorageConfigResult {
string yaml_config = 1;
}
}

message BootstrapClusterRequest {
Ydb.Operations.OperationParams operation_params = 1;
string self_assembly_uuid = 2;
}

message BootstrapClusterResponse {
Ydb.Operations.Operation operation = 1;
}
3 changes: 3 additions & 0 deletions src/api/protos/ydb_import.proto
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ message ImportFromS3Settings {
// Prevent importing of ACL and owner. If true, objects are created with empty ACL
// and their owner will be the user who started the import.
bool no_acl = 11;

// Skip checksum validation during import
bool skip_checksum_validation = 12;
}

message ImportFromS3Result {
Expand Down
3 changes: 3 additions & 0 deletions src/api/protos/ydb_query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,16 @@ message StaleModeSettings {
message SnapshotModeSettings {
}

message SnapshotRWModeSettings {
}

message TransactionSettings {
oneof tx_mode {
SerializableModeSettings serializable_read_write = 1;
OnlineModeSettings online_read_only = 2;
StaleModeSettings stale_read_only = 3;
SnapshotModeSettings snapshot_read_only = 4;
SnapshotRWModeSettings snapshot_read_write = 5;
}
}

Expand Down
Loading
Loading