Skip to content

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

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Conversation

msmygit
Copy link

@msmygit msmygit commented Apr 8, 2025

This PR adds a very minimal and basic implementation of the Apache Cassandra® engine to the benchmark tool / suite.

@msmygit
Copy link
Author

msmygit commented Apr 8, 2025

Good day @KShivendu @tellet-q - could you please review and merge this PR? Thank you in advance!

Copy link

@Copilot Copilot AI left a 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>
@msmygit msmygit requested a review from Copilot May 1, 2025 21:46
Copy link

@Copilot Copilot AI left a 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)

@msmygit
Copy link
Author

msmygit commented May 8, 2025

@tellet-q could you please review, approve and merge? I've rebased from master now. Thank you in advance!

@msmygit
Copy link
Author

msmygit commented May 9, 2025

Tagging @KShivendu here as I missed adding in my last comment. Thank you in advance!

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.

1 participant