final case class SchemaAgreementConfig(interval: Duration = SchemaAgreementConfig.Default.interval, timeout: Duration = SchemaAgreementConfig.Default.timeout, warnOnFailure: Boolean = SchemaAgreementConfig.Default.warnOnFailure) extends Product with Serializable
Due to the distributed nature of Cassandra, schema changes made on one node might not be immediately visible to others. Under certain circumstances, the driver waits until all nodes agree on a common schema version (namely: before a schema refresh, before repreparing all queries on a newly up node, and before completing a successful schema-altering query). To do so, it queries system tables to find out the schema version of all nodes that are currently UP. If all the versions match, the check succeeds, otherwise it is retried periodically, until a given timeout.
A schema agreement failure is not fatal, but it might produce unexpected results (for example, getting an "unconfigured table" error for a table that you created right before, just because the two queries went to different coordinators).
Note that schema agreement never succeeds in a mixed-version cluster (it would be challenging because the way the schema version is computed varies across server versions); the assumption is that schema updates are unlikely to happen during a rolling upgrade anyway.
- interval
The interval between each attempt.
- timeout
The timeout after which schema agreement fails. If this is set to 0, schema agreement is skipped and will always fail.
- warnOnFailure
Whether to log a warning if schema agreement fails. You might want to change this if you've set the timeout to 0.
- Alphabetic
- By Inheritance
- SchemaAgreementConfig
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SchemaAgreementConfig(interval: Duration = SchemaAgreementConfig.Default.interval, timeout: Duration = SchemaAgreementConfig.Default.timeout, warnOnFailure: Boolean = SchemaAgreementConfig.Default.warnOnFailure)
- interval
The interval between each attempt.
- timeout
The timeout after which schema agreement fails. If this is set to 0, schema agreement is skipped and will always fail.
- warnOnFailure
Whether to log a warning if schema agreement fails. You might want to change this if you've set the timeout to 0.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- val interval: Duration
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val timeout: Duration
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- val warnOnFailure: Boolean