{"record":{"id":"c0696321dcd777e9","repo":"apache/beam","slug":"only-murmur3partitioner-is-supported-for-splitting-using-an","errorCode":null,"errorMessage":"Only Murmur3Partitioner is supported for splitting, using an unique source for the read","messagePattern":"Only Murmur3Partitioner is supported for splitting, using an unique source for the read","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/java/io/cassandra/src/main/java/org/apache/beam/sdk/io/cassandra/CassandraIO.java","lineNumber":467,"sourceCode":"            Integer splitCount;\n            if (read.minNumberOfSplits() != null && read.minNumberOfSplits().get() != null) {\n              splitCount = read.minNumberOfSplits().get();\n            } else {\n              splitCount = cluster.getMetadata().getAllHosts().size();\n            }\n            List<BigInteger> tokens =\n                cluster.getMetadata().getTokenRanges().stream()\n                    .map(tokenRange -> new BigInteger(tokenRange.getEnd().getValue().toString()))\n                    .collect(Collectors.toList());\n            SplitGenerator splitGenerator =\n                new SplitGenerator(cluster.getMetadata().getPartitioner());\n\n            return splitGenerator.generateSplits(splitCount, tokens).stream()\n                .flatMap(List::stream)\n                .collect(Collectors.toSet());\n\n          } else {\n            LOG.warn(\n                \"Only Murmur3Partitioner is supported for splitting, using an unique source for \"\n                    + \"the read\");\n            String partitioner = cluster.getMetadata().getPartitioner();\n            RingRange totalRingRange =\n                RingRange.of(\n                    SplitGenerator.getRangeMin(partitioner),\n                    SplitGenerator.getRangeMax(partitioner));\n            return Collections.singleton(totalRingRange);\n          }\n        }\n      }\n    }\n\n    @AutoValue.Builder\n    abstract static class Builder<T> {\n      abstract Builder<T> setHosts(ValueProvider<List<String>> hosts);\n\n      abstract Builder<T> setQuery(ValueProvider<String> query);","sourceCodeStart":449,"sourceCodeEnd":485,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/cassandra/src/main/java/org/apache/beam/sdk/io/cassandra/CassandraIO.java#L449-L485","documentation":"Warning logged by CassandraIO's split logic when the cluster does not use the Murmur3 partitioner. Token-range splitting is only implemented for Murmur3, so instead of failing, the read silently degrades to a single (unique) source with no parallelism — the message tells the user why the requested split count was not honored.","triggerScenarios":"Thrown at sdks/java/io/cassandra/src/main/java/org/apache/beam/sdk/io/cassandra/CassandraIO.java:467 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Migrate the Cassandra cluster to Murmur3Partitioner to enable token-range splitting and read parallelism","Accept single-source reads (reduced parallelism) on non-Murmur3 clusters"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}