Skip to content

Commit b89f592

Browse files
committed
Add TTL temp
1 parent 2d1ff8d commit b89f592

File tree

7 files changed

+843
-591
lines changed

7 files changed

+843
-591
lines changed

ydb-api-protos

ydb/_grpc/v3/protos/ydb_table_pb2.py

Lines changed: 375 additions & 196 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ydb/_grpc/v4/protos/ydb_table_pb2.py

Lines changed: 201 additions & 195 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ydb/_grpc/v4/protos/ydb_table_pb2.pyi

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,12 @@ class DropTableResponse(_message.Message):
607607
operation: _ydb_operation_pb2.Operation
608608
def __init__(self, operation: _Optional[_Union[_ydb_operation_pb2.Operation, _Mapping]] = ...) -> None: ...
609609

610+
class EvictionToExternalStorageSettings(_message.Message):
611+
__slots__ = ["storage"]
612+
STORAGE_FIELD_NUMBER: _ClassVar[int]
613+
storage: str
614+
def __init__(self, storage: _Optional[str] = ...) -> None: ...
615+
610616
class ExecuteDataQueryRequest(_message.Message):
611617
__slots__ = ["collect_stats", "operation_params", "parameters", "query", "query_cache_policy", "session_id", "tx_control"]
612618
class ParametersEntry(_message.Message):
@@ -1340,6 +1346,12 @@ class TableStats(_message.Message):
13401346
store_size: int
13411347
def __init__(self, partition_stats: _Optional[_Iterable[_Union[PartitionStats, _Mapping]]] = ..., rows_estimate: _Optional[int] = ..., store_size: _Optional[int] = ..., partitions: _Optional[int] = ..., creation_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., modification_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
13421348

1349+
class TieredModeSettings(_message.Message):
1350+
__slots__ = ["tiers"]
1351+
TIERS_FIELD_NUMBER: _ClassVar[int]
1352+
tiers: _containers.RepeatedCompositeFieldContainer[TtlTier]
1353+
def __init__(self, tiers: _Optional[_Iterable[_Union[TtlTier, _Mapping]]] = ...) -> None: ...
1354+
13431355
class TransactionControl(_message.Message):
13441356
__slots__ = ["begin_tx", "commit_tx", "tx_id"]
13451357
BEGIN_TX_FIELD_NUMBER: _ClassVar[int]
@@ -1369,14 +1381,28 @@ class TransactionSettings(_message.Message):
13691381
def __init__(self, serializable_read_write: _Optional[_Union[SerializableModeSettings, _Mapping]] = ..., online_read_only: _Optional[_Union[OnlineModeSettings, _Mapping]] = ..., stale_read_only: _Optional[_Union[StaleModeSettings, _Mapping]] = ..., snapshot_read_only: _Optional[_Union[SnapshotModeSettings, _Mapping]] = ...) -> None: ...
13701382

13711383
class TtlSettings(_message.Message):
1372-
__slots__ = ["date_type_column", "run_interval_seconds", "value_since_unix_epoch"]
1384+
__slots__ = ["date_type_column", "run_interval_seconds", "tiered_ttl", "value_since_unix_epoch"]
13731385
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
13741386
RUN_INTERVAL_SECONDS_FIELD_NUMBER: _ClassVar[int]
1387+
TIERED_TTL_FIELD_NUMBER: _ClassVar[int]
13751388
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
13761389
date_type_column: DateTypeColumnModeSettings
13771390
run_interval_seconds: int
1391+
tiered_ttl: TieredModeSettings
1392+
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
1393+
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., tiered_ttl: _Optional[_Union[TieredModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
1394+
1395+
class TtlTier(_message.Message):
1396+
__slots__ = ["date_type_column", "delete", "evict_to_external_storage", "value_since_unix_epoch"]
1397+
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
1398+
DELETE_FIELD_NUMBER: _ClassVar[int]
1399+
EVICT_TO_EXTERNAL_STORAGE_FIELD_NUMBER: _ClassVar[int]
1400+
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
1401+
date_type_column: DateTypeColumnModeSettings
1402+
delete: _empty_pb2.Empty
1403+
evict_to_external_storage: EvictionToExternalStorageSettings
13781404
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
1379-
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
1405+
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., delete: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ..., evict_to_external_storage: _Optional[_Union[EvictionToExternalStorageSettings, _Mapping]] = ...) -> None: ...
13801406

13811407
class ValueSinceUnixEpochModeSettings(_message.Message):
13821408
__slots__ = ["column_name", "column_unit", "expire_after_seconds"]

ydb/_grpc/v5/protos/ydb_table_pb2.py

Lines changed: 201 additions & 195 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ydb/_grpc/v5/protos/ydb_table_pb2.pyi

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,12 @@ class DropTableResponse(_message.Message):
607607
operation: _ydb_operation_pb2.Operation
608608
def __init__(self, operation: _Optional[_Union[_ydb_operation_pb2.Operation, _Mapping]] = ...) -> None: ...
609609

610+
class EvictionToExternalStorageSettings(_message.Message):
611+
__slots__ = ["storage"]
612+
STORAGE_FIELD_NUMBER: _ClassVar[int]
613+
storage: str
614+
def __init__(self, storage: _Optional[str] = ...) -> None: ...
615+
610616
class ExecuteDataQueryRequest(_message.Message):
611617
__slots__ = ["collect_stats", "operation_params", "parameters", "query", "query_cache_policy", "session_id", "tx_control"]
612618
class ParametersEntry(_message.Message):
@@ -1340,6 +1346,12 @@ class TableStats(_message.Message):
13401346
store_size: int
13411347
def __init__(self, partition_stats: _Optional[_Iterable[_Union[PartitionStats, _Mapping]]] = ..., rows_estimate: _Optional[int] = ..., store_size: _Optional[int] = ..., partitions: _Optional[int] = ..., creation_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., modification_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
13421348

1349+
class TieredModeSettings(_message.Message):
1350+
__slots__ = ["tiers"]
1351+
TIERS_FIELD_NUMBER: _ClassVar[int]
1352+
tiers: _containers.RepeatedCompositeFieldContainer[TtlTier]
1353+
def __init__(self, tiers: _Optional[_Iterable[_Union[TtlTier, _Mapping]]] = ...) -> None: ...
1354+
13431355
class TransactionControl(_message.Message):
13441356
__slots__ = ["begin_tx", "commit_tx", "tx_id"]
13451357
BEGIN_TX_FIELD_NUMBER: _ClassVar[int]
@@ -1369,14 +1381,28 @@ class TransactionSettings(_message.Message):
13691381
def __init__(self, serializable_read_write: _Optional[_Union[SerializableModeSettings, _Mapping]] = ..., online_read_only: _Optional[_Union[OnlineModeSettings, _Mapping]] = ..., stale_read_only: _Optional[_Union[StaleModeSettings, _Mapping]] = ..., snapshot_read_only: _Optional[_Union[SnapshotModeSettings, _Mapping]] = ...) -> None: ...
13701382

13711383
class TtlSettings(_message.Message):
1372-
__slots__ = ["date_type_column", "run_interval_seconds", "value_since_unix_epoch"]
1384+
__slots__ = ["date_type_column", "run_interval_seconds", "tiered_ttl", "value_since_unix_epoch"]
13731385
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
13741386
RUN_INTERVAL_SECONDS_FIELD_NUMBER: _ClassVar[int]
1387+
TIERED_TTL_FIELD_NUMBER: _ClassVar[int]
13751388
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
13761389
date_type_column: DateTypeColumnModeSettings
13771390
run_interval_seconds: int
1391+
tiered_ttl: TieredModeSettings
1392+
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
1393+
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., tiered_ttl: _Optional[_Union[TieredModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
1394+
1395+
class TtlTier(_message.Message):
1396+
__slots__ = ["date_type_column", "delete", "evict_to_external_storage", "value_since_unix_epoch"]
1397+
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
1398+
DELETE_FIELD_NUMBER: _ClassVar[int]
1399+
EVICT_TO_EXTERNAL_STORAGE_FIELD_NUMBER: _ClassVar[int]
1400+
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
1401+
date_type_column: DateTypeColumnModeSettings
1402+
delete: _empty_pb2.Empty
1403+
evict_to_external_storage: EvictionToExternalStorageSettings
13781404
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
1379-
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
1405+
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., delete: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ..., evict_to_external_storage: _Optional[_Union[EvictionToExternalStorageSettings, _Mapping]] = ...) -> None: ...
13801406

13811407
class ValueSinceUnixEpochModeSettings(_message.Message):
13821408
__slots__ = ["column_name", "column_unit", "expire_after_seconds"]

ydb/table.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ class TtlSettings(object):
534534
def __init__(self):
535535
self.date_type_column = None
536536
self.value_since_unix_epoch = None
537+
self.tiered_ttl = None
537538

538539
def with_date_type_column(self, column_name, expire_after_seconds=0):
539540
self.date_type_column = DateTypeColumnModeSettings(column_name, expire_after_seconds)
@@ -543,13 +544,19 @@ def with_value_since_unix_epoch(self, column_name, column_unit, expire_after_sec
543544
self.value_since_unix_epoch = ValueSinceUnixEpochModeSettings(column_name, column_unit, expire_after_seconds)
544545
return self
545546

547+
def with_tiered_ttl(self, tiered_ttl):
548+
self.tiered_ttl = tiered_ttl
549+
return self
550+
546551
def to_pb(self):
547552
pb = _apis.ydb_table.TtlSettings()
548553

549554
if self.date_type_column is not None:
550555
pb.date_type_column.MergeFrom(self.date_type_column.to_pb())
551556
elif self.value_since_unix_epoch is not None:
552557
pb.value_since_unix_epoch.MergeFrom(self.value_since_unix_epoch.to_pb())
558+
elif self.with_tiered_ttl is not None:
559+
pb.tiered_ttl.MergeFrom(self.tiered_ttl.to_pb())
553560
else:
554561
raise RuntimeError("Unspecified ttl settings mode")
555562

@@ -1608,6 +1615,8 @@ def __init__(
16081615
ColumnUnit(ttl_settings.value_since_unix_epoch.column_unit),
16091616
ttl_settings.value_since_unix_epoch.expire_after_seconds,
16101617
)
1618+
elif ttl_settings.HasField("tiered_ttl"):
1619+
self.ttl_settings = TtlSettings().with_tiered_ttl(ttl_settings.tiered_ttl)
16111620

16121621
self.table_stats = None
16131622
if table_stats is not None:

0 commit comments

Comments
 (0)