-
Notifications
You must be signed in to change notification settings - Fork 638
Use iai_callgrind for benchmarks. #1726
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
nihohit
wants to merge
20
commits into
redis-rs:1.0.x
Choose a base branch
from
nihohit:bench
base: 1.0.x
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a7dcc81
to
af61f66
Compare
* Prepare 1.0.x branch for usage. * t * Remove unsafe iterators.
* feat: Make transaction status of pipelines public (redis-rs#1663) When trying to mock Redis connections, the `ConnectionLike`'s `req_packed_commands` expects a different response shape on `transactional` and non-`transactional` pipelines. (Vec with single entry of Redis array of results, resp. Vec of results) In order to hide this difference from users, it would be helpful to check if a pipeline is in transaction mode or not. To allow this, we make the accessor function public. Co-authored-by: Christian Aistleitner <[email protected]> * Pipeline: Add comments explaining offset and count (redis-rs#1664) Co-authored-by: Christian Aistleitner <[email protected]> * prevent Smol tasks from being cancelled when dropped. * Remove deprecated features. --------- Co-authored-by: somechris <[email protected]> Co-authored-by: Christian Aistleitner <[email protected]>
This will save users who just want to parse some data from checking for client or server errors.
* Upgrade criterion version. * increase MSRV * fix lint
* Make the num-bigint crate optional again. * Fix no-default-features. It didn't work because the default features were pulled by redis-test.
* Add TCP settings to sync connections. * Hide internal structure of ConnectionInfo and RedisConnectionInfo. This will allow us to modify the structs without breaking users code. * Remove features that are settable through TcpSettings. * Fix cache index. The `cache_cmd_index` value was miscalculated, because all tests that checked it had all features enabled, which implicitly removed the CLIENT SETINFO calls form the pipeline. * fix broken doc links. * fix cargo config. * further limit feature combination tests. * Remove redis setting helper functions. * fix docs
* Move command modules to commands folder. * Move vector sets structs to separate module.
* Move errors to separate modules. * Clarify type error. * Fill out ServerError. * Use ArcStr in errors, to reduce their size. * Add ServerError to RedisError variants. * Add NOPERM error kind. * Remove repeated variants between ErrorKind and ServerErrorKind. * Replace some server error kinds with more correct kinds. * Remove the `ErrorRepr::WithDescription` variant. It's a repeat of `WithDescriptionAndDetail`. * Remove `Error` suffix from variants. * Remove `ErrorRepr::Extension` variant. It's a repeat of the `ServerError::Extension` variant. * Ensure internal errors are exposed in `Error::source`. * Move error constructors to the error modules. * Allow users to use `ServerError`. It's already exposed in `Value`, this allows the users to actually use it, too, without exposing its internal implementation.
* Move cluster files to shared directory. * Move shared logic out of sync connection. * Split slot map from routing. * Update cluster routing information. This is based on the work done in the valkey-glide project for mapping commands and their routing info.
Align with the changes to `ConnectionInfo` in redis-rs#1669
* Move retry_method to server_error. * Move pipeline response handling to shared function. * Allow user to receive results or values with server errors per-request. * Added detailed pipeline error case when user doesn't choose type to RedisResult or Value. * fix docs * revert the ability to get all values even on a failure.
* Use ArcStr for cluster node addresses. This reduces the size of allocations, and removes the implied ability to mutate the addresses. * Improve map usage in clusters. Removed some repeated key checks. * Improve slot parsing. Remove vector splitting and unnecessary ConnectionAddr creation. * Use ArcStr in ClusterParams, to reduce size. * Replace some more usage of String with ArcStr.
We want more users to be aware of the typed traits, in order to save issues like redis-rs#1730.
This benchmark is more stable, and less affected by random OS noise.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This benchmark is more stable, and less affected by random OS noise.