You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by lu...@apache.org on 2026/04/23 17:02:29 UTC
(cassandra-analytics) branch trunk updated: CASSANALYTICS-156: Reading BTI may require partitions and rows indexes Patch by Lukasz Antoniak; Reviewed by Yifan Cai for CASSANALYTICS-156
This is an automated email from the ASF dual-hosted git repository.
lukasz-antoniak pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-analytics.git
The following commit(s) were added to refs/heads/trunk by this push:
new a5241234 CASSANALYTICS-156: Reading BTI may require partitions and rows indexes Patch by Lukasz Antoniak; Reviewed by Yifan Cai for CASSANALYTICS-156
a5241234 is described below
commit a5241234aa53027f77c8309202c02261cb1c0997
Author: Lukasz Antoniak <Lu...@gmail.com>
AuthorDate: Wed Apr 22 12:06:53 2026 +0200
CASSANALYTICS-156: Reading BTI may require partitions and rows indexes
Patch by Lukasz Antoniak; Reviewed by Yifan Cai for CASSANALYTICS-156
---
CHANGES.txt | 1 +
.../org/apache/cassandra/spark/data/SSTable.java | 6 +++---
.../spark/data/partitioner/SingleReplicaTests.java | 21 ++++++++++++++++-----
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index fb5e79a2..c436add1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
0.4.0
-----
+ * Reading BTI may require partitions and rows indexes (CASSANALYTICS-156)
* Make KafkaPublisher class generic to publish GenericRecords for different value serializers (CASSANALYTICS-154)
* Cannot read start offset from BTI index with big partitions (CASSANALYTICS-151)
* BufferingInputStream fails to read last unaligned chunk (CASSANALYTICS-147)
diff --git a/cassandra-analytics-common/src/main/java/org/apache/cassandra/spark/data/SSTable.java b/cassandra-analytics-common/src/main/java/org/apache/cassandra/spark/data/SSTable.java
index 61214e6f..f2febcbe 100644
--- a/cassandra-analytics-common/src/main/java/org/apache/cassandra/spark/data/SSTable.java
+++ b/cassandra-analytics-common/src/main/java/org/apache/cassandra/spark/data/SSTable.java
@@ -111,10 +111,10 @@ public abstract class SSTable implements Serializable, CassandraFile
{
throw new IncompleteSSTableException(FileType.SUMMARY, FileType.INDEX);
}
- // For BTI format, we just need partitions index
- if (isBtiFormat() && isMissing(FileType.PARTITIONS_INDEX))
+ // For BTI format, we may need both - partitions and rows index
+ if (isBtiFormat() && (isMissing(FileType.PARTITIONS_INDEX) || isMissing(FileType.ROWS_INDEX)))
{
- throw new IncompleteSSTableException(FileType.PARTITIONS_INDEX);
+ throw new IncompleteSSTableException(FileType.PARTITIONS_INDEX, FileType.ROWS_INDEX);
}
}
diff --git a/cassandra-analytics-core/src/test/java/org/apache/cassandra/spark/data/partitioner/SingleReplicaTests.java b/cassandra-analytics-core/src/test/java/org/apache/cassandra/spark/data/partitioner/SingleReplicaTests.java
index acaa4de2..434f8f63 100644
--- a/cassandra-analytics-core/src/test/java/org/apache/cassandra/spark/data/partitioner/SingleReplicaTests.java
+++ b/cassandra-analytics-core/src/test/java/org/apache/cassandra/spark/data/partitioner/SingleReplicaTests.java
@@ -84,12 +84,20 @@ public class SingleReplicaTests
runTest(dataFileName, false, FileType.SUMMARY);
}
- @ParameterizedTest
- @MethodSource("dataFileNames")
- public void testMissingOnlyIndexFile(String dataFileName) throws ExecutionException, InterruptedException, IOException
+ @Test
+ public void testBigMissingOnlyIndexFile() throws ExecutionException, InterruptedException, IOException
{
// Index.db can be missing if we can use Summary.db
- runTest(dataFileName, false, FileType.INDEX);
+ runTest("na-1-big-Data.db", false, FileType.INDEX);
+ }
+
+ @Test
+ public void testBtiMissingPartitionsRowsIndexFile()
+ {
+ assertThatThrownBy(() -> runTest("da-1-bti-Data.db", true, FileType.PARTITIONS_INDEX))
+ .isInstanceOf(IOException.class);
+ assertThatThrownBy(() -> runTest("da-1-bti-Data.db", true, FileType.ROWS_INDEX))
+ .isInstanceOf(IOException.class);
}
@ParameterizedTest
@@ -268,6 +276,9 @@ public class SingleReplicaTests
public static List<Named<String>> dataFileNames()
{
- return Arrays.asList(Named.of("BIG", "na-1-big-Data.db"));
+ return Arrays.asList(
+ Named.of("BIG", "na-1-big-Data.db"),
+ Named.of("BTI", "da-1-bti-Data.db")
+ );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org