diff --git a/clients/venice-client/src/main/java/com/linkedin/venice/fastclient/StatsAvroGenericStoreClient.java b/clients/venice-client/src/main/java/com/linkedin/venice/fastclient/StatsAvroGenericStoreClient.java index c014340874..a177d9672d 100644 --- a/clients/venice-client/src/main/java/com/linkedin/venice/fastclient/StatsAvroGenericStoreClient.java +++ b/clients/venice-client/src/main/java/com/linkedin/venice/fastclient/StatsAvroGenericStoreClient.java @@ -272,7 +272,7 @@ private void recordPerRouteMetrics(RequestContext requestContext, FastClientStat clientStats.recordInternalServerErrorRequest(instance); break; case S_410_GONE: - /* Check {@link InstanceHealthMonitor#sendRequestToInstance} to understand this special http status. */ + /* Check {@link InstanceHealthMonitor#trackHealthBasedOnRequestToInstance} to understand this special http status. */ clientStats.recordLeakedRequest(instance); break; case S_503_SERVICE_UNAVAILABLE: diff --git a/services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java b/services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java index 38de40e192..2c6970c73e 100644 --- a/services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java +++ b/services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java @@ -44,6 +44,7 @@ import com.linkedin.venice.common.VeniceSystemStoreType; import com.linkedin.venice.common.VeniceSystemStoreUtils; import com.linkedin.venice.compression.CompressionStrategy; +import com.linkedin.venice.compression.ZstdWithDictCompressor; import com.linkedin.venice.controller.datarecovery.DataRecoveryManager; import com.linkedin.venice.controller.exception.HelixClusterMaintenanceModeException; import com.linkedin.venice.controller.helix.SharedHelixReadOnlyZKSharedSchemaRepository; @@ -2574,8 +2575,12 @@ private Pair addVersion( compressionDictionaryBuffer = ByteBuffer.wrap(EncodingUtils.base64DecodeFromString(compressionDictionary)); } else if (store.getCompressionStrategy().equals(CompressionStrategy.ZSTD_WITH_DICT)) { - throw new VeniceException( - "compression Dictionary should not be empty if CompressionStrategy is ZSTD_WITH_DICT"); + // This compression strategy needs a dictionary even if there is no input data, + // so we generate a dictionary based on synthetic data. This is done in vpj driver + // as well, but this code will be triggered in cases like Samza batch push job + // which is independent of the vpj flow. + compressionDictionaryBuffer = + ByteBuffer.wrap(ZstdWithDictCompressor.buildDictionaryOnSyntheticAvroData()); } final Version finalVersion = version;