From 07de2808ef9a869d4587374860d4980909db1dda Mon Sep 17 00:00:00 2001 From: AntiO2 Date: Wed, 29 Apr 2026 05:48:30 +0800 Subject: [PATCH 1/3] Fix duplicate get BufferSplits --- .../pixels/trino/PixelsSplitManager.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java b/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java index 7177c69..7917a22 100644 --- a/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java +++ b/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java @@ -1388,18 +1388,15 @@ private List getBufferSplits(PixelsTransactionHandle transHan { HostAddress address = HostAddress.fromString(retinaAddress.getAddress() + ":" + retinaPort); - for(int virtualNodeId = 0; virtualNodeId < virtualNodeNum; ++virtualNodeId) - { - PixelsBufferSplit split = new PixelsBufferSplit(transHandle.getTransId(), splitId++, connectorId, - schemaName, tableName, tableId, virtualNodeId, - storageScheme, - List.of(address), - columnOrder, emptyConstraint, // maybe useless - originColumnCnt, - schema.toString() - ); - pixelsBufferSplits.add(split); - } + PixelsBufferSplit split = new PixelsBufferSplit(transHandle.getTransId(), splitId++, connectorId, + schemaName, tableName, tableId, retinaAddress.getVirtualNodeId(), + storageScheme, + List.of(address), + columnOrder, emptyConstraint, // maybe useless + originColumnCnt, + schema.toString() + ); + pixelsBufferSplits.add(split); } return pixelsBufferSplits; } From 2fa992649b5e291796344ba3a5700ad4f7dd63aa Mon Sep 17 00:00:00 2001 From: AntiO2 Date: Sat, 11 Jul 2026 20:30:33 +0800 Subject: [PATCH 2/3] Add GetRetinaBuffer Option --- .../pixels/trino/PixelsSplitManager.java | 17 +++++++++++++++-- connector/src/main/resources/pixels.properties | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java b/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java index 7917a22..01bea33 100644 --- a/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java +++ b/connector/src/main/java/io/pixelsdb/pixels/trino/PixelsSplitManager.java @@ -102,6 +102,8 @@ public class PixelsSplitManager implements ConnectorSplitManager { private static final Logger logger = Logger.get(PixelsSplitManager.class); + private static final String RETINA_ENABLE = "retina.enable"; + private static final String RETINA_BUFFER_SPLIT_ENABLE = "retina.buffer.split.enable"; private final String connectorId; private final PixelsMetadataProxy metadataProxy; private final PixelsTrinoConfig config; @@ -463,8 +465,7 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle trans, .collect(Collectors.toList()); } - String retinaEnabled = config.getConfigFactory().getProperty("retina.enable"); - if (retinaEnabled != null && retinaEnabled.equalsIgnoreCase("true")) + if (isRetinaBufferSplitEnabled()) { List pixelsBufferSplits = getBufferSplits(transHandle, session, tableHandle, pixelsSplits.size()); @@ -1356,6 +1357,18 @@ private List getScanSplits(PixelsTransactionHandle transHandle, return pixelsSplits; } + private boolean isRetinaBufferSplitEnabled() + { + String retinaEnabled = config.getConfigFactory().getProperty(RETINA_ENABLE); + if (!Boolean.parseBoolean(retinaEnabled)) + { + return false; + } + + String bufferSplitEnabled = config.getConfigFactory().getProperty(RETINA_BUFFER_SPLIT_ENABLE); + return bufferSplitEnabled == null || Boolean.parseBoolean(bufferSplitEnabled); + } + private List getBufferSplits(PixelsTransactionHandle transHandle, ConnectorSession session, PixelsTableHandle tableHandle, long splitId) throws MetadataException, RetinaException { diff --git a/connector/src/main/resources/pixels.properties b/connector/src/main/resources/pixels.properties index a45aaab..798e9ba 100755 --- a/connector/src/main/resources/pixels.properties +++ b/connector/src/main/resources/pixels.properties @@ -1,5 +1,8 @@ # pixels connector configurations connector.name=pixels +# Retina config +# Set false to skip Retina buffer splits and read only flushed file splits. +retina.buffer.split.enable=true # serverless config # it can be on, off, auto, or session From c3eb9cea5235e51bb02b33236e9ab97b9ac9ca2a Mon Sep 17 00:00:00 2001 From: AntiO2 Date: Sun, 12 Jul 2026 22:00:39 +0800 Subject: [PATCH 3/3] Remove prop --- connector/src/main/resources/pixels.properties | 3 --- 1 file changed, 3 deletions(-) diff --git a/connector/src/main/resources/pixels.properties b/connector/src/main/resources/pixels.properties index 798e9ba..a45aaab 100755 --- a/connector/src/main/resources/pixels.properties +++ b/connector/src/main/resources/pixels.properties @@ -1,8 +1,5 @@ # pixels connector configurations connector.name=pixels -# Retina config -# Set false to skip Retina buffer splits and read only flushed file splits. -retina.buffer.split.enable=true # serverless config # it can be on, off, auto, or session