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

New cassandra backend #2782

Merged
merged 22 commits into from Oct 13, 2015
Merged

New cassandra backend #2782

merged 22 commits into from Oct 13, 2015

Conversation

piotrmaslanka
Copy link
Contributor

As per #2669 this is a Cassandra backend using DataStax python-driver.

For compatibility reasons it's called new_cassandra, and not cassandra. Configuration options also differ, mainly to force users to understand that it's a different thing.

Using old cassandra backend will raise a deprecation warning.

Schema is different from Thrift one. Assuming keyspace exists, column family will be created by default (fixes #1763).

module :mod:`cassandra` is not available.

"""
servers = []
Copy link
Contributor

Choose a reason for hiding this comment

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

Please, avoid mutable class-level objects. IMO we don't need all these connection-related parameters on class level.

Juan Rossi and others added 2 commits August 24, 2015 19:24
@thedrow
Copy link
Member

thedrow commented Aug 25, 2015

Can you please rebase?

@piotrmaslanka
Copy link
Contributor Author

Rebased all right.

@egon1024
Copy link

Just curious if there's any sort of timeline on getting this into Celery? We're looking to use it in a new project that's ramping up right now (Celery with Cassandra results storage, but on Python 3 so pycassa isn't an option).

@thedrow
Copy link
Member

thedrow commented Oct 13, 2015

I'll speak with @ask about it first but it looks good.

@ask
Copy link
Contributor

ask commented Oct 13, 2015

How about we keep it as new_cassandra in 3.1, but drop the old one in 3.2?

@ask ask merged commit 5d98164 into celery:master Oct 13, 2015
@ask
Copy link
Contributor

ask commented Oct 13, 2015

Good work! Tested it and it seems to work. Merged into master

@thedrow
Copy link
Member

thedrow commented Oct 14, 2015

@ask That would kinda break semantic versioning that I think we should adopt.
Keep it as new_cassandra for now.

@egon1024
Copy link

Fantastic! Thanks for merging this folks! Any idea when the next release will be that will contain this?

@thedrow
Copy link
Member

thedrow commented Oct 14, 2015

@egon1024 Sorry, we don't yet. Unfortunately we have some pretty critical bugs to resolve before we release a new major version.
I'm also working to rewrite our test suite to be more extensive and include end to end tests.

@egon1024
Copy link

No worries - keep up the great work, it's very much appreciated. :)

@ask
Copy link
Contributor

ask commented Oct 14, 2015

@thedrow 3.2 should probably be 4.0 at this point.
What do we do when the new_new_cassandra backend comes?

semantic versioning is good, but adding experimental features to point releases can be useful, but only
if it's completely orthogonal to existing features (like the qpid transport, or new result backends).

@thedrow
Copy link
Member

thedrow commented Oct 16, 2015

If it's 4.0 then we can rename the backend. Yes.

@davidharrigan
Copy link
Contributor

@ask @piotrmaslanka My team is looking to use Cassandra for our Celery backend, but I'm not sure if our timeline matches for when this feature becomes stable, so I am looking to patch up our local mirror of Celery with this feature. What are the steps that I should take about doing that? I also don't see any code diff in this PR that would enable new Cassandra backend.

@piotrmaslanka
Copy link
Contributor Author

@davidharrigan I guess celery/backends/__init__.py and celery/backends/new_cassandra.py are the only files to add/modify in this case. celery/master is fine to fork from, just please patch against #2901 or wait until this is integrated. I will be running this backend in production from 5th Nov (it passed stress tests on staging), so if there are any bugs I'll get to fix them ASAP.

@davidharrigan
Copy link
Contributor

Awesome, thanks for the quick response :D

@piotrmaslanka
Copy link
Contributor Author

@davidharrigan There was a small revolution in the master - old cassandra is no more. Please be aware of that, and repatch against #2901. I rebased it for simpler inclusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use Cassandra as backend to store task results
6 participants