diff --git a/modules/manage/pages/schema-reg/schema-id-validation.adoc b/modules/manage/pages/schema-reg/schema-id-validation.adoc index d703ae7d9..777074c7d 100644 --- a/modules/manage/pages/schema-reg/schema-id-validation.adoc +++ b/modules/manage/pages/schema-reg/schema-id-validation.adoc @@ -87,8 +87,8 @@ When <>, Redpanda u To customize the subject name strategy per topic, set the following client topic properties: -* Set `redpanda.key.schema.id.validation` to `true` to enable key schema ID validation for the topic, and set `redpanda.key.subject.name.strategy` to the desired subject name strategy for keys of the topic (default: `TopicNameStrategy`). -* Set `redpanda.value.schema.id.validation` to `true` to enable value schema ID validation for the topic, and set `redpanda.value.subject.name.strategy` to the desired subject name strategy for values of the topic (default: `TopicNameStrategy`). +* Set xref:reference:properties/topic-properties.adoc#redpandakeyschemavalidation[`redpanda.key.schema.id.validation`] to `true` to enable key schema ID validation for the topic, and set xref:reference:properties/topic-properties.adoc#redpandakeysubjectnamestrategy[`redpanda.key.subject.name.strategy`] to the desired subject name strategy for keys of the topic (default: `TopicNameStrategy`). +* Set xref:reference:properties/topic-properties.adoc#redpandavalueschemavalidation[`redpanda.value.schema.id.validation`] to `true` to enable value schema ID validation for the topic, and set xref:reference:properties/topic-properties.adoc#redpandavaluesubjectnamestrategy[`redpanda.value.subject.name.strategy`] to the desired subject name strategy for values of the topic (default: `TopicNameStrategy`). [NOTE] ==== @@ -97,17 +97,17 @@ The `redpanda.` properties have corresponding `confluent.` properties. |=== | Redpanda property | Confluent property -| `redpanda.key.schema.id.validation` -| `confluent.key.schema.validation` +| xref:reference:properties/topic-properties.adoc#redpandakeyschemavalidation[`redpanda.key.schema.id.validation`] +| xref:reference:properties/topic-properties.adoc#confluentkeyschemavalidation[`confluent.key.schema.validation`] -| `redpanda.key.subject.name.strategy` -| `confluent.key.subject.name.strategy` +| xref:reference:properties/topic-properties.adoc#redpandakeysubjectnamestrategy[`redpanda.key.subject.name.strategy`] +| xref:reference:properties/topic-properties.adoc#confluentkeysubjectnamestrategy[`confluent.key.subject.name.strategy`] -| `redpanda.value.schema.id.validation` -| `confluent.value.schema.validation` +| xref:reference:properties/topic-properties.adoc#redpandavalueschemavalidation[`redpanda.value.schema.id.validation`] +| xref:reference:properties/topic-properties.adoc#confluentvalueschemavalidation[`confluent.value.schema.validation`] -| `redpanda.value.subject.name.strategy` -| `confluent.value.subject.name.strategy` +| xref:reference:properties/topic-properties.adoc#redpandavaluesubjectnamestrategy[`redpanda.value.subject.name.strategy`] +| xref:reference:properties/topic-properties.adoc#confluentvaluesubjectnamestrategy[`confluent.value.subject.name.strategy`] |=== The `redpanda.*` and `confluent.*` properties are compatible. Either or both can be set simultaneously. diff --git a/modules/manage/partials/tiered-storage.adoc b/modules/manage/partials/tiered-storage.adoc index 76af16a5a..d2434598b 100644 --- a/modules/manage/partials/tiered-storage.adoc +++ b/modules/manage/partials/tiered-storage.adoc @@ -1186,7 +1186,6 @@ rpk cluster config set cloud_storage_enable_segment_uploads true For some applications, where the newest data is more valuable than historical data, data accumulation can be worse than data loss. In such cases, where you cannot afford to lose the most recently-produced data by rejecting produce requests after producers have filled the local disks during the period of paused uploads, there is a less safe pause and resume mechanism. This mechanism prioritizes the ability to receive new data over retaining data that cannot be uploaded when disks are full: - Set the xref:reference:properties/object-storage-properties.adoc#cloud_storage_enable_remote_allow_gaps[`cloud_storage_enable_remote_allow_gaps`] cluster configuration property to `true`. This allows for gaps in the logs of all Tiered Storage topics in the cluster. -- Set the `redpanda.remote.allow_gaps` configuration property to `true`. This allows gaps for one specific topic. This topic-level configuration option overrides the cluster-level default. When you pause uploads and set one of these properties to `true`, there may be gaps in the range of offsets stored in object storage. You can seamlessly resume uploads by setting `*allow_gaps` to `true` at either the cluster or topic level. If set to `false`, disk space could be depleted and produce requests would be throttled. @@ -1199,19 +1198,12 @@ rpk cluster config set cloud_storage_enable_segment_uploads false # To avoid overflow when allowing gaps in the log. # In this example, data that is not uploaded to cloud storage may be # deleted if a disk fills before uploads are resumed. - -rpk topic alter-config $topic-name --set redpanda.remote.allowgaps=true -# Uploads are paused and gaps are allowed. Local retention is allowed -# to delete data before it's uploaded, therefore some data loss is possible. ... rpk cluster config set cloud_storage_enable_segment_uploads true # Uploads are resumed but there could be gaps in the offsets. # Wait until you see that the `redpanda_cloud_storage_paused_archivers` # metric is equal to zero, indicating that uploads have resumed. - -# Disable the gap allowance previously set for the topic. -rpk topic alter-config $topic-name --set redpanda.remote.allowgaps=false ``` == Caching diff --git a/modules/reference/pages/properties/object-storage-properties.adoc b/modules/reference/pages/properties/object-storage-properties.adoc index 35fe63497..690574a8e 100644 --- a/modules/reference/pages/properties/object-storage-properties.adoc +++ b/modules/reference/pages/properties/object-storage-properties.adoc @@ -712,6 +712,7 @@ When set to `true`, Redpanda can re-upload data for compacted topics to object s --- +[[cloud_storage_enable_remote_allow_gaps]] === cloud_storage_enable_remote_allow_gaps Controls the eviction of locally stored log segments when Tiered Storage uploads are paused. Set to `false` to only evict data that has already been uploaded to object storage. If the retained data fills the local volume, Redpanda throttles producers. Set to `true` to allow the eviction of locally stored log segments, which may create gaps in offsets. @@ -790,7 +791,7 @@ Enables adjacent segment merging. The segments are reuploaded if there is an opp === cloud_storage_enable_segment_uploads -Controls the upload of log segments to Tiered Storage. If set to `false`, this property temporarily pauses all log segment uploads from the Redpanda cluster. When the uploads are paused, the <> cluster configuration and `redpanda.remote.allowgaps` topic properties control local retention behavior. +Controls the upload of log segments to Tiered Storage. If set to `false`, this property temporarily pauses all log segment uploads from the Redpanda cluster. When the uploads are paused, the <> cluster configuration and xref:properties/topic-properties.adoc#redpandaremoteallowgaps[`redpanda.remote.allowgaps`] topic properties control local retention behavior. *Requires restart:* No diff --git a/modules/reference/pages/properties/topic-properties.adoc b/modules/reference/pages/properties/topic-properties.adoc index 630fcf774..ad9c264b2 100644 --- a/modules/reference/pages/properties/topic-properties.adoc +++ b/modules/reference/pages/properties/topic-properties.adoc @@ -739,4 +739,130 @@ Controls how often the data in the Iceberg table is refreshed with new data from **Related topics**: -- xref:manage:iceberg/about-iceberg-topics.adoc[] \ No newline at end of file +- xref:manage:iceberg/about-iceberg-topics.adoc[] + +--- +== Schema Registry and Validation Properties + +These properties control server-side schema ID validation for topics when using Schema Registry. + +[[redpandakeyschemavalidation]] +=== redpanda.key.schema.id.validation + +Enable validation of the schema ID for keys on a record. When enabled, Redpanda validates that the schema ID encoded in the record's key is registered in the Schema Registry according to the configured subject name strategy. + +*Type:* boolean + +*Default:* `false` + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[redpandakeysubjectnamestrategy]] +=== redpanda.key.subject.name.strategy + +The subject name strategy for keys when `redpanda.key.schema.id.validation` is enabled. This determines how the topic and schema are mapped to a subject name in the Schema Registry. + +*Type:* string + +*Default:* `TopicNameStrategy` + +*Accepted values:* [`TopicNameStrategy`, `RecordNameStrategy`, `TopicRecordNameStrategy`] + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[redpandavalueschemavalidation]] +=== redpanda.value.schema.id.validation + +Enable validation of the schema ID for values on a record. When enabled, Redpanda validates that the schema ID encoded in the record's value is registered in the Schema Registry according to the configured subject name strategy. + +*Type:* boolean + +*Default:* `false` + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[redpandavaluesubjectnamestrategy]] +=== redpanda.value.subject.name.strategy + +The subject name strategy for values when `redpanda.value.schema.id.validation` is enabled. This determines how the topic and schema are mapped to a subject name in the Schema Registry. + +*Type:* string + +*Default:* `TopicNameStrategy` + +*Accepted values:* [`TopicNameStrategy`, `RecordNameStrategy`, `TopicRecordNameStrategy`] + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[confluentkeyschemavalidation]] +=== confluent.key.schema.validation + +Enable validation of the schema ID for keys on a record. This is a compatibility alias for `redpanda.key.schema.id.validation`. When enabled, Redpanda validates that the schema ID encoded in the record's key is registered in the Schema Registry according to the configured subject name strategy. + +*Type:* boolean + +*Default:* `false` + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[confluentkeysubjectnamestrategy]] +=== confluent.key.subject.name.strategy + +The subject name strategy for keys when `confluent.key.schema.validation` is enabled. This is a compatibility alias for `redpanda.key.subject.name.strategy` that determines how the topic and schema are mapped to a subject name in the Schema Registry. + +*Type:* string + +*Default:* `io.confluent.kafka.serializers.subject.TopicNameStrategy` + +*Accepted values:* [`io.confluent.kafka.serializers.subject.TopicNameStrategy`, `io.confluent.kafka.serializers.subject.RecordNameStrategy`, `io.confluent.kafka.serializers.subject.TopicRecordNameStrategy`] + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[confluentvalueschemavalidation]] +=== confluent.value.schema.validation + +Enable validation of the schema ID for values on a record. This is a compatibility alias for `redpanda.value.schema.id.validation`. When enabled, Redpanda validates that the schema ID encoded in the record's value is registered in the Schema Registry according to the configured subject name strategy. + +*Type:* boolean + +*Default:* `false` + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +--- +[[confluentvaluesubjectnamestrategy]] +=== confluent.value.subject.name.strategy + +The subject name strategy for values when `confluent.value.schema.validation` is enabled. This is a compatibility alias for `redpanda.value.subject.name.strategy`. This determines how the topic and schema are mapped to a subject name in the Schema Registry. + +*Type:* string + +*Default:* `io.confluent.kafka.serializers.subject.TopicNameStrategy` + +*Accepted values:* [`io.confluent.kafka.serializers.subject.TopicNameStrategy`, `io.confluent.kafka.serializers.subject.RecordNameStrategy`, `io.confluent.kafka.serializers.subject.TopicRecordNameStrategy`] + +**Related topics**: + +- xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation] + +---