|
|
|
[package]
|
|
|
|
authors = ["Sayan Nandan <ohsayan@outlook.com>"]
|
|
|
|
edition = "2021"
|
|
|
|
name = "sky-bench"
|
|
|
|
version = "0.8.0"
|
|
|
|
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
# internal deps
|
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:
1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)
2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.
3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.
4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.
5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
|
|
|
skytable = { git = "https://github.com/skytable/client-rust.git", features = [
|
|
|
|
"sync",
|
|
|
|
"dbg",
|
|
|
|
] }
|
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:
1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)
2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.
3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.
4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.
5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
|
|
|
libstress = { path = "../libstress" }
|
|
|
|
# external deps
|
|
|
|
clap = { version = "2", features = ["yaml"] }
|
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:
1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)
2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.
3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.
4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.
5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
|
|
|
log = "0.4.17"
|
|
|
|
env_logger = "0.10.0"
|
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:
1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)
2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.
3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.
4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.
5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
|
|
|
devtimer = "4.0.1"
|
|
|
|
serde = { version = "1.0.163", features = ["derive"] }
|
|
|
|
serde_json = "1.0.96"
|
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:
1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)
2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.
3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.
4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.
5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
|
|
|
rand = "0.8.5"
|