Class BulkWriterConfig
- java.lang.Object
-
- org.apache.cassandra.spark.bulkwriter.BulkWriterConfig
-
- All Implemented Interfaces:
java.io.Serializable
public final class BulkWriterConfig extends java.lang.Object implements java.io.SerializableImmutable configuration data class for BulkWriter jobs that is safe to broadcast to Spark executors. This class contains pre-computed, serializable values that were computed on the driver.Serialization Architecture: This class is the ONLY object that gets broadcast to Spark executors (via Spark's broadcast mechanism). It contains broadcastable wrapper implementations with ZERO transient fields and NO Logger references:
BroadcastableClusterInfoorBroadcastableClusterInfoGroup- cluster metadataBroadcastableJobInfo- job configuration withBroadcastableTokenPartitionerBroadcastableSchemaInfo- schema metadata
On the driver,
BulkWriterContextinstances use driver-only implementations:CassandraClusterInfo,CassandraJobInfo,CassandraSchemaInfo. Before broadcasting, these are converted to broadcastable wrappers to avoid Logger references and minimize Spark SizeEstimator overhead.On executors,
BulkWriterContextinstances are reconstructed from this config usingBulkWriterContext.from(BulkWriterConfig), which detects the broadcastable wrappers and reconstructs the full implementations with fresh data from Cassandra Sidecar.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BulkWriterConfig(BulkSparkConf conf, int sparkDefaultParallelism, BroadcastableJobInfo jobInfo, IBroadcastableClusterInfo clusterInfo, BroadcastableSchemaInfo schemaInfo, java.lang.String lowestCassandraVersion)Creates a new immutable BulkWriterConfig with pre-computed values
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IBroadcastableClusterInfogetBroadcastableClusterInfo()BroadcastableJobInfogetBroadcastableJobInfo()BroadcastableSchemaInfogetBroadcastableSchemaInfo()BulkSparkConfgetConf()java.lang.StringgetLowestCassandraVersion()intgetSparkDefaultParallelism()
-
-
-
Constructor Detail
-
BulkWriterConfig
public BulkWriterConfig(@NotNull BulkSparkConf conf, int sparkDefaultParallelism, @NotNull BroadcastableJobInfo jobInfo, @NotNull IBroadcastableClusterInfo clusterInfo, @NotNull BroadcastableSchemaInfo schemaInfo, @NotNull java.lang.String lowestCassandraVersion)Creates a new immutable BulkWriterConfig with pre-computed values- Parameters:
conf- Bulk writer Spark configurationsparkDefaultParallelism- Spark default parallelism settingjobInfo- Broadcastable job informationclusterInfo- Broadcastable cluster information (BroadcastableCluster or BroadcastableClusterInfoGroup)schemaInfo- Broadcastable schema informationlowestCassandraVersion- Lowest Cassandra version in the cluster
-
-
Method Detail
-
getConf
public BulkSparkConf getConf()
-
getSparkDefaultParallelism
public int getSparkDefaultParallelism()
-
getBroadcastableJobInfo
public BroadcastableJobInfo getBroadcastableJobInfo()
-
getBroadcastableClusterInfo
public IBroadcastableClusterInfo getBroadcastableClusterInfo()
-
getBroadcastableSchemaInfo
public BroadcastableSchemaInfo getBroadcastableSchemaInfo()
-
getLowestCassandraVersion
public java.lang.String getLowestCassandraVersion()
-
-