Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose cassandra consistency and serial consistency settings in configuration #533

Merged

Conversation

mastermanu
Copy link
Member

@mastermanu mastermanu commented Jul 12, 2020

This change enables an end-user to configure consistency and serial consistency for their Cassandra Datastores. The behavior is as follows:

If the user chooses not to set this at all, we default to local_quorum and local_serial respectively.
The user can choose to set a "default" that applies to ALL stores.

We have not exposed a configuration setting for the Cassandra admin tool, which defaults to ALL for the Quorum level.

It is an open question on whether we want to expose one configuration knob per store, or expose a few configuration knobs, some of which apply to a set of stores. There may also be stores which we don't want to expose any kind of knob for. We can have this discussion via PR comments or offline.

A whole slew of unit tests were added that provide 100% code coverage for the added configuration code, and the existing persistence tests ran after ensuring validate was called. Also ran the server locally and tested putting in different values for a few different stores.

@@ -66,3 +76,95 @@ func (c *Persistence) Validate() error {
func (c *Persistence) IsAdvancedVisibilityConfigExist() bool {
return len(c.AdvancedVisibilityStore) != 0
}

// GetConsistency returns the gosql.Consistency setting from the configuration for the store
func (c *CassandraConsistencySettings) GetConsistency() gocql.Consistency {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also consider moving these to a separate cassandra specific file. Am on the fence.

@mastermanu mastermanu merged commit 89c51cc into temporalio:master Jul 13, 2020
@mastermanu mastermanu linked an issue Jul 14, 2020 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cassandra Consistency and SerialConsistency should be configurable
2 participants