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

Implement Optional Compression Methods in Cluster Constructor #1

Closed
Daniel-Boll opened this issue Oct 14, 2023 · 2 comments · Fixed by #4
Closed

Implement Optional Compression Methods in Cluster Constructor #1

Daniel-Boll opened this issue Oct 14, 2023 · 2 comments · Fixed by #4
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers hacktoberfest help wanted Extra attention is needed performance

Comments

@Daniel-Boll
Copy link
Owner

Overview:
This issue proposes the enhancement of adding optional compression methods to the Cluster constructor, aligning with the Scylla Rust Driver's capabilities as documented here. The feature should allow users to specify their preferred compression (LZ4, Snappy, or None) when establishing a connection to a Scylla cluster.

Detailed Behavior:
The new feature will expand the Cluster constructor's functionality by introducing a compression parameter. This parameter will accept an enum, Compression, that includes the options NONE (default), LZ4, and SNAPPY. The specified compression algorithm will be used in the communication between the driver and Scylla nodes, potentially reducing network traffic and improving performance, especially when large volumes of data are being transferred.

Proposed Implementation:
The implementation will leverage napi-rs to bridge the Rust Scylla driver's capabilities with Node.js. Here's a preliminary look at how the API might be structured:

import { Cluster, Compression } from "@lambda-group/scylladb";

const cluster = new Cluster({
  nodes: ["127.0.0.1:9042"],
  compression: Compression.LZ4, // options: Compression.NONE (default), Compression.LZ4, Compression.SNAPPY
});

Assignees and Mentions:

  • TBD depending on who is interested or has the relevant expertise. '@' mention or assign the issue to them.

Progress/Updates:

  • This is the initial issue creation. Updates will follow as discussions proceed, decisions are made, and implementation begins.
@Daniel-Boll Daniel-Boll added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers hacktoberfest performance labels Oct 14, 2023
@f0ntana
Copy link
Contributor

f0ntana commented Oct 14, 2023

@Daniel-Boll let me try it!

@Daniel-Boll
Copy link
Owner Author

You've been selected for the task, @f0ntana. Should you encounter any uncertainties or have any concerns, please don't hesitate to reach out to me. Together, we'll collaborate effectively to address any issues and ensure a successful outcome.

Daniel Boll. 🎴

Daniel-Boll added a commit that referenced this issue Oct 14, 2023
…ession-methods-in-cluster-constructor

Feature/1 implement optional compression methods in cluster constructor Closes #1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment