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] Support for new Module API - modulePropagateFilters #1377

Open
artikell opened this issue Nov 29, 2024 · 2 comments
Open

[NEW] Support for new Module API - modulePropagateFilters #1377

artikell opened this issue Nov 29, 2024 · 2 comments

Comments

@artikell
Copy link
Contributor

The problem/use-case that the feature addresses

For the propagation of information, the system should possess a filtering capability.

On one hand, due to the update of Valkey, some commands are not in the old version, like EXPIREAT for 5.0, and thus if the version is not compatible, hybrid scheduling cannot be achieved.

On the other hand, this can enable the system to possess certain statistical capabilities.

At the same time, it is also closed-loop with the CommandFilter ability, and can do some control when synchronizing information externally

Description of the feature

Support an API in propagateNow, such as modulePropagateFilter, for processing argv. The following methods are supported:

  • modulePropagateFilters
  • RegisterPropagateFilter
  • UnregisterPropagateFilter
  • PropagateFilterArgsCount
  • PropagateFilterArgGet
  • PropagateFilterArgInsert
  • PropagateFilterArgReplace
  • PropagateFilterArgDelete

Alternatives you've considered

  • Use external components to synchronize, such as DTS.
  • Hardcoding, adaptation logic for version 5.0

Additional information

NA

@zuiderkwast
Copy link
Contributor

Interesting, but I want to understand the full picture. Do you want to attach a 5.0 replica to a new Valkey? There is another problem: It can't do full sync because it doesn't know the new RDB version.

@artikell
Copy link
Contributor Author

artikell commented Dec 5, 2024

Interesting, but I want to understand the full picture. Do you want to attach a 5.0 replica to a new Valkey? There is another problem: It can't do full sync because it doesn't know the new RDB version.

Sorry for the late reply. This is a good question. In order to support flexible grey release, of course, compatibility issues are also solved in the middle, but this is indeed a relatively safe operation for upgrading (otherwise you need to rely on DTS for data transfer). In fact, we have the ability to switch between different RDB VERSION. But I'm not sure if the community needs this function.

Secondly, making an interface in Propagate can have very flexible extensibility. On the one hand, Propagate can do some operation conversion, such as compatibility adaptation. Secondly, it can also encrypt the log securely. Finally, Propagate is used as an event trigger source to achieve many flexible functions.

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

No branches or pull requests

2 participants