From fa044effd72fe7c271c7dab6036fe14353c48c8d Mon Sep 17 00:00:00 2001 From: AntiO2 Date: Wed, 29 Apr 2026 05:28:03 +0800 Subject: [PATCH 1/2] Allow ObjectStorageManager to use file storage scheme --- .../pixels/retina/ObjectStorageManager.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java b/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java index 8ec2a17cb7..cf3646097d 100644 --- a/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java +++ b/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java @@ -22,6 +22,8 @@ import io.pixelsdb.pixels.common.exception.RetinaException; import io.pixelsdb.pixels.common.physical.*; import io.pixelsdb.pixels.common.utils.ConfigFactory; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.nio.ByteBuffer; @@ -31,6 +33,7 @@ */ public class ObjectStorageManager { + private static final Logger logger = LogManager.getLogger(ObjectStorageManager.class); private static volatile ObjectStorageManager instance; private final Storage storage; private final String path; @@ -49,17 +52,12 @@ private ObjectStorageManager() throws RetinaException String storageScheme = config.getProperty("retina.buffer.object.storage.scheme"); try { - switch(storageScheme) + if (!"s3".equals(storageScheme) && !"minio".equals(storageScheme)) { - case "s3": - this.storage = StorageFactory.Instance().getStorage(Storage.Scheme.s3); - break; - case "minio": - this.storage = StorageFactory.Instance().getStorage(Storage.Scheme.minio); - break; - default: - throw new RetinaException("Unsupported storage scheme: " + storageScheme); + logger.warn("ObjectStorageManager is configured with non-standard storage scheme '{}'; " + + "expected production schemes are 's3' or 'minio'", storageScheme); } + this.storage = StorageFactory.Instance().getStorage(storageScheme); } catch (IOException e) { throw new RetinaException("Failed to get storage", e); From 38191a092dc16c3535a2bb7722214be08b76f85a Mon Sep 17 00:00:00 2001 From: AntiO2 Date: Thu, 30 Apr 2026 22:37:00 +0800 Subject: [PATCH 2/2] Replace hardcoded string comparison with Storage.Scheme enum constants --- .../java/io/pixelsdb/pixels/retina/ObjectStorageManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java b/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java index cf3646097d..20d7114703 100644 --- a/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java +++ b/pixels-retina/src/main/java/io/pixelsdb/pixels/retina/ObjectStorageManager.java @@ -52,7 +52,7 @@ private ObjectStorageManager() throws RetinaException String storageScheme = config.getProperty("retina.buffer.object.storage.scheme"); try { - if (!"s3".equals(storageScheme) && !"minio".equals(storageScheme)) + if (!Storage.Scheme.minio.equals(storageScheme) && !Storage.Scheme.s3.equals(storageScheme)) { logger.warn("ObjectStorageManager is configured with non-standard storage scheme '{}'; " + "expected production schemes are 's3' or 'minio'", storageScheme);