Skip to content

Commit eea3575

Browse files
committed
add evict to family action
1 parent 6060989 commit eea3575

File tree

6 files changed

+36
-10
lines changed

6 files changed

+36
-10
lines changed

ydb/core/protos/flat_scheme_op.proto

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,15 +220,20 @@ message TTTLSettings {
220220
optional uint32 MaxShardsInFlight = 6 [default = 0]; // zero means no limit
221221
}
222222

223-
message TExternalStorageSettings {
223+
message TEvictionToExternalStorageSettings {
224224
optional string StorageName = 1;
225225
}
226226

227+
message TEvictionToColumnFamilySettings {
228+
optional string FamilyName = 1;
229+
}
230+
227231
message TTier {
228232
optional uint32 EvictAfterSeconds = 1;
229233
oneof Action {
230234
google.protobuf.Empty Delete = 2;
231-
TExternalStorageSettings EvictToExternalStorage = 3;
235+
TEvictionToExternalStorageSettings EvictToExternalStorage = 3;
236+
TEvictionToColumnFamilySettings EvictToColumnFamily = 4;
232237
}
233238
}
234239

ydb/core/ydb_convert/table_description.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,9 @@ static void AddTtl(TYdbProto& out, const TTtl& inTTL) {
534534
case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::kEvictToExternalStorage:
535535
outTier->mutable_evict_to_external_storage()->set_storage_name(inTier.GetEvictToExternalStorage().GetStorageName());
536536
break;
537+
case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::kEvictToColumnFamily:
538+
outTier->mutable_evict_to_column_family()->set_family_name(inTier.GetEvictToColumnFamily().GetFamilyName());
539+
break;
537540
case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::ACTION_NOT_SET:
538541
break;
539542
}

ydb/core/ydb_convert/table_settings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ bool FillTtlSettings(TTtlSettingsEnabled& out, const Ydb::Table::TtlSettings& in
4646
case Ydb::Table::TtlTier::kEvictToExternalStorage:
4747
outTier->MutableEvictToExternalStorage()->SetStorageName(inTier.evict_to_external_storage().storage_name());
4848
break;
49+
case Ydb::Table::TtlTier::kEvictToColumnFamily:
50+
outTier->MutableEvictToColumnFamily()->SetFamilyName(inTier.evict_to_column_family().family_name());
51+
break;
4952
case Ydb::Table::TtlTier::ACTION_NOT_SET:
5053
break;
5154
}

ydb/public/api/protos/ydb_table.proto

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,16 +434,22 @@ message ColumnMeta {
434434
}
435435

436436
message EvictionToExternalStorageSettings {
437-
// Name of external data source
437+
// Path to external data source
438438
string storage_name = 1;
439439
}
440440

441+
message EvictionToFamilySettings {
442+
// Name of column family
443+
string family_name = 1;
444+
}
445+
441446
message TtlTier {
442447
uint32 evict_after_seconds = 1;
443448

444449
oneof action {
445450
google.protobuf.Empty delete = 2;
446451
EvictionToExternalStorageSettings evict_to_external_storage = 3;
452+
EvictionToFamilySettings evict_to_column_family = 3;
447453
}
448454
}
449455

ydb/public/sdk/cpp/client/ydb_table/table.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2945,13 +2945,16 @@ TTtlTierSettings::TTtlTierSettings(const Ydb::Table::TtlTier& tier)
29452945
: EvictionDelay_(TDuration::Seconds(tier.evict_after_seconds())) {
29462946
switch (tier.action_case()) {
29472947
case Ydb::Table::TtlTier::kDelete:
2948-
Action_ = TTtlDeleteAction();
2949-
break;
2948+
Action_ = TTtlDeleteAction();
2949+
break;
29502950
case Ydb::Table::TtlTier::kEvictToExternalStorage:
2951-
Action_ = TTtlEvictToExternalStorageAction(tier.evict_to_external_storage().storage_name());
2952-
break;
2951+
Action_ = TTtlEvictToExternalStorageAction(tier.evict_to_external_storage().storage_name());
2952+
break;
2953+
case Ydb::Table::TtlTier::kEvictToColumnFamily:
2954+
Action_ = TTtlEvictToExternalStorageAction(tier.evict_to_column_family().family_name());
2955+
break;
29532956
case Ydb::Table::TtlTier::ACTION_NOT_SET:
2954-
break;
2957+
break;
29552958
}
29562959
}
29572960

@@ -2962,8 +2965,10 @@ void TTtlTierSettings::SerializeTo(Ydb::Table::TtlTier& proto) const {
29622965
using T = std::decay_t<decltype(action)>;
29632966
if constexpr (std::is_same_v<T, TTtlDeleteAction>) {
29642967
proto.mutable_delete_();
2965-
} else if constexpr (std::is_same_v<T, TExplicitPartitions>) {
2968+
} else if constexpr (std::is_same_v<T, TTtlEvictToExternalStorageAction>) {
29662969
proto.mutable_evict_to_external_storage()->set_storage_name(action.StorageName);
2970+
} else if constexpr (std::is_same_v<T, TTtlEvictToColumnFamilyAction>) {
2971+
proto.mutable_evict_to_column_family()->set_storage_name(action.FamilyName);
29672972
}
29682973
};
29692974
std::visit(std::move(actionVisitor), Action_);

ydb/public/sdk/cpp/client/ydb_table/table.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,11 @@ struct TPartitionStats {
425425
struct TTtlDeleteAction {};
426426

427427
struct TTtlEvictToExternalStorageAction {
428-
TString storageName;
428+
TString StorageName;
429+
};
430+
431+
struct TTtlEvictToColumnFamilyAction {
432+
TString FamilyName;
429433
};
430434

431435
class TTtlTierSettings {

0 commit comments

Comments
 (0)