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

Upgrade to Cassandra Driver 4.3 [DATACASS-656] #825

Closed
spring-projects-issues opened this issue May 11, 2019 · 4 comments
Closed

Upgrade to Cassandra Driver 4.3 [DATACASS-656] #825

spring-projects-issues opened this issue May 11, 2019 · 4 comments
Assignees
Labels
type: dependency-upgrade A dependency upgrade

Comments

@spring-projects-issues
Copy link

Mark Paluch opened DATACASS-656 and commented

We should consider upgrading to Cassandra Driver 4.0. The new driver entirely changes how we integrate with Cassandra as concepts like the Cluster abstraction are no longer present.

Part of this ticket is to investigate whether we are able to migrate to the new driver at all. The OSS driver does not support reactive execution and it comes with a new package structure that requires rebasing of the whole Spring Data Cassandra project onto the new driver structure


Issue Links:

  • DATACASS-709 Add support for programmatic DriverConfigLoader
    ("is depended on by")

  • DATACASS-710 Migrate to native ReactiveSession and ReactiveResultSet
    ("is depended on by")

  • DATACASS-708 Extend QueryOptions with serial consistency and execution profile
    ("is depended on by")

  • DATACASS-704 Add utility to initialize and cleanup the CQL keyspace

  • DATACASS-705 Introduce SessionFactoryFactoryBean

  • DATACASS-703 Move Keyspace initialization from CassandraClusterFactoryBean to CassandraCqlSessionFactoryBean

  • DATACASS-655 Eliminate a vulnerability of DataStax Cassandra driver
    ("supersedes")

  • DATACASS-695 Force quote everywhere configuration needed
    ("supersedes")

Referenced from: pull request #167

1 votes, 5 watchers

@spring-projects-issues
Copy link
Author

Mark Paluch commented

Upgrading to the Cassandra 4 driver comes with several breaking changes:

  1. New package structure
  2. Removal of the intermediate Cluster object
  3. Query builder uses immutable objects

Areas of work

  1. Major version bump to Spring Data for Apache Cassandra 3
  2. Removal of CassandraCqlClusterFactoryBean and CassandraClusterFactoryBean.
  3. Extend CassandraCqlSessionFactoryBean with properties from CassandraClusterFactoryBean and CassandraSessionFactoryBean.
  4. Deprecate CassandraSessionFactoryBean in favor of CassandraCqlSessionFactoryBean.
  5. Keyspace creation and removal will be migrated into CassandraCqlSessionFactoryBean.
  6. Migration of connection-related properties to CassandraCqlSessionFactoryBean (was: CassandraClusterFactoryBean)
  7. QueryBuilder API must work with immutable query objects

Going forward it would make sense to extract general script handling into ScriptUtils, DatabasePopulator and CqlSessionInitializer utilities.

 

The following unknowns need to be addressed:

  • Will reactive support get merged into the OSS driver? If not, then it doesn't make so much sense to have the breaking upgrade as we don't benefit from the driver right now 

@spring-projects-issues
Copy link
Author

Mark Paluch commented

The code for this ticket resides on the following branch:

https://github.com/spring-projects/spring-data-cassandra/tree/3.0.x

Cassandra driver 4.4 will ship with built-in reactive support so we can remove our bridged reactive session

@spring-projects-issues
Copy link
Author

Mark Paluch commented

Early snapshots are available:

<dependencies>
  <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-cassandra</artifactId>
    <version>3.0.0.BUILD-SNAPSHOT</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
    <id>spring-libs-snapshot</id>
    <url>https://repo.spring.io/libs-snapshot</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>

@spring-projects-issues
Copy link
Author

Damien commented

Wondering if u have an eta on this Mark Paluch? Thanks 

 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: dependency-upgrade A dependency upgrade
Projects
None yet
Development

No branches or pull requests

2 participants