-
Notifications
You must be signed in to change notification settings - Fork 105
Apache Cassandra® engine addition #236
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
base: master
Are you sure you want to change the base?
Conversation
for more information, see https://pre-commit.ci
Good day @KShivendu @tellet-q - could you please review and merge this PR? Thank you in advance! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a basic implementation of an Apache Cassandra® engine to the benchmark suite. Key changes include:
- Adding a Cassandra driver dependency and a new single-node Cassandra server via Docker Compose.
- Implementing Cassandra clients for uploading, searching, configuration, and query parsing.
Reviewed Changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
pyproject.toml | Added dependency for the Cassandra driver |
engine/servers/cassandra-single-node/docker-compose.yaml | Introduced a Docker Compose file for a single-node Cassandra server |
engine/clients/client_factory.py | Registered Cassandra engine implementations |
engine/clients/cassandra/*.py | Implemented Cassandra clients for upload, search, configuration, and condition parsing |
engine/clients/cassandra/README.md | Added documentation for setup and usage of the Cassandra engine |
Files not reviewed (1)
- experiments/configurations/cassandra-single-node.json: Language not supported
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a minimal Apache Cassandra® engine implementation to the benchmark suite. Key changes include:
- Adding a dependency on the cassandra-driver in pyproject.toml.
- Introducing a new docker-compose configuration and server files for a single-node Cassandra setup.
- Implementing new client modules for Cassandra upload, search, configuration, and query parsing.
Reviewed Changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
pyproject.toml | Added cassandra-driver dependency to support the new engine. |
engine/servers/cassandra-single-node/docker-compose.yaml | Introduced a Docker configuration for deploying Cassandra. |
engine/clients/client_factory.py | Updated factory to include Cassandra configurator, uploader, and searcher. |
engine/clients/cassandra/upload.py | Added Cassandra upload functionality. |
engine/clients/cassandra/search.py | Added Cassandra search functionality with support for filtered searches. |
engine/clients/cassandra/parser.py | Provided a parser for building CQL conditions. |
engine/clients/cassandra/configure.py | Implemented Cassandra keyspace and table setup along with index creation. |
engine/clients/cassandra/config.py | Defined configuration variables for Cassandra. |
engine/clients/cassandra/init.py | Exported the Cassandra engine components. |
engine/clients/cassandra/README.md | Documented setup and usage of the Cassandra engine. |
Files not reviewed (1)
- experiments/configurations/cassandra-single-node.json: Language not supported
Comments suppressed due to low confidence (1)
engine/clients/cassandra/search.py:100
- Injecting filter conditions into the CQL query via string formatting could pose a security risk if the inputs are not properly sanitized. Consider using parameterized queries to mitigate potential injection issues.
query_with_conditions = cls.filtered_search_query_template.format(conditions=filter_conditions)
@tellet-q could you please review, approve and merge? I've rebased from |
Tagging @KShivendu here as I missed adding in my last comment. Thank you in advance! |
This PR adds a very minimal and basic implementation of the Apache Cassandra® engine to the benchmark tool / suite.