steviez
ec7ca411dd
Make PacketBatch packets vector non-public ( #25413 )
...
Upcoming changes to PacketBatch to support variable sized packets will
modify the internals of PacketBatch. So, this change removes usage of
the internal packet struct and instead uses accessors (which are
currently just wrappers of Vector functions but will change down the
road).
2022-05-23 15:30:15 -05:00
sakridge
e22be02d3a
sigverify: add discard before dedup ( #25388 )
2022-05-23 03:40:33 +02:00
Brennan Watt
e025376719
Fix packet accounting after dedup ( #25357 )
...
* Fix packet accounting after dedup
* Rename function to better represent intent
2022-05-20 17:00:13 -07:00
Christian Kamm
503d0baf6d
SigVerify: Add total time metrics for dedup/discard/verify ( #24768 )
...
* SigVerify: Add total time metrics for dedup/discard/verify
Previously it was impossible to determine the total time the stage spent
on these activities within a measurement window.
* SigVerify: Add _us postfix to time metrics
2022-05-03 14:59:25 +02:00
sakridge
5a430c15e2
Separate sigverify metrics for each verifier ( #24744 )
2022-04-28 01:16:17 -07:00
Tao Zhu
c478fe2047
add timing metrics, some renaming
2022-03-17 19:31:28 -05:00
Tao Zhu
fd515097d8
leader qos part 2: add stage to find sender stake, set to packet meta
2022-03-17 19:31:28 -05:00
Stephen Akridge
976b138e76
Add tx weighting stage
2022-03-17 19:31:28 -05:00
buffalu
70ebab2c82
Add rustfmt.toml and `cargo fmt` ( #23238 )
...
* fmt
* formatted
Co-authored-by: Lucas B <buffalu@jito.network>
2022-02-19 13:32:29 +08:00
anatoly yakovenko
83d31c9e65
shrink batches when over 80% of the space is wasted ( #23066 )
...
* shrink batches when over 80% of the space is wasted
2022-02-16 08:18:17 -08:00
sakridge
2e56c59bcb
Handle already discarded packets in gpu sigverify path ( #22680 )
2022-01-24 14:35:47 +01:00
anatoly yakovenko
d6011ba14d
Dedup bloom filter is too slow ( #22607 )
...
* Faster dedup
* use ahash
* fixup
* single threaded
* use duration type
* remove the count
* fixup
2022-01-21 20:23:48 -07:00
sakridge
38b02bbcc0
Handle already discarded packets in discard_excess_packets ( #22594 )
2022-01-21 17:22:50 +01:00
anatoly yakovenko
d343713f61
Optimize packet dedup ( #22571 )
...
* Use bloom filter to dedup packets
* dedup first
* Update bloom/src/bloom.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* fixup
* fixup
* fixup
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
2022-01-19 13:58:20 -08:00
behzad nouri
dcf44d2523
improves sigverify discard_excess_packets performance ( #22577 )
...
As shown by the added benchmark, current code does worse if there is a
spam address plus a lot of unique addresses.
on current master:
test bench_packet_discard_many_senders ... bench: 1,997,960 ns/iter (+/- 103,715)
test bench_packet_discard_mixed_senders ... bench: 14,256,116 ns/iter (+/- 534,865)
test bench_packet_discard_single_sender ... bench: 1,306,809 ns/iter (+/- 61,992)
with this commit:
test bench_packet_discard_many_senders ... bench: 1,644,025 ns/iter (+/- 83,715)
test bench_packet_discard_mixed_senders ... bench: 1,089,789 ns/iter (+/- 86,324)
test bench_packet_discard_single_sender ... bench: 955,234 ns/iter (+/- 55,953)
2022-01-19 18:10:02 +00:00
anatoly yakovenko
e616a7ebfc
Track discard time of excess packets in sigverify ( #22554 )
...
* discard time histogram
* closer to the if
* update
2022-01-18 15:09:39 -07:00
sakridge
49443406fd
Use VecDeque instead of Vec in sigverify stage ( #22538 )
...
avoid bad performance of remove(0) for a single sender
2022-01-17 18:37:05 +01:00
Jeff Biseda
8b66625c95
convert std::sync::mpsc to crossbeam_channel ( #22264 )
2022-01-11 02:44:46 -08:00
behzad nouri
01a096adc8
adds bitflags to Packet.Meta
...
Instead of a separate bool type for each flag, all the flags can be
encoded in a type-safe bitflags encoded in a single u8:
https://github.com/solana-labs/solana/blob/d6ec103be/sdk/src/packet.rs#L19-L31
2022-01-04 13:53:40 +00:00
behzad nouri
73a7741c49
uses std::net::IpAddr type for Packet.Meta.addr
2022-01-04 13:53:40 +00:00
Justin Starry
254ef3e7b6
Rename Packets to PacketBatch ( #21794 )
2021-12-11 09:44:15 -05:00
Michael Vines
b8837c04ec
Reformat imports to a consistent style for imports
...
rustfmt.toml configuration:
imports_granularity = "One"
group_imports = "One"
2021-12-03 09:19:13 -08:00
sakridge
94668c95c2
Prune sigverify queue ( #20331 )
2021-09-30 05:41:05 +02:00
Jeff Biseda
640e93187c
periodically report sigverify_stage stats ( #19674 )
2021-09-21 10:37:58 -07:00
behzad nouri
7d56fa8363
sends packets in batches from sigverify-stage ( #18446 )
...
sigverify-stage is breaking batches to single-item vectors before
sending them down the channel:
https://github.com/solana-labs/solana/blob/d451363dc/core/src/sigverify_stage.rs#L88-L92
Also simplifying window-service code, reducing number of nested branches.
2021-07-22 14:49:21 +00:00
Michael Vines
4a12c715a3
Drop Error suffix from enum values to avoid the enum_variant_names clippy lint
2021-06-18 23:02:13 +00:00
carllin
2bee9435f3
Add tracer key for tracing transaction path through the network ( #15732 )
2021-03-08 19:31:00 -08:00
anatoly yakovenko
9cedeb0a8d
Pull streamer out into its own module. ( #8917 )
...
automerge
2020-03-17 23:30:23 -07:00
Greg Fitzgerald
a707c9410e
More thiserror ( #7183 )
...
* Less solana_core::result. Module now private.
* Drop solana_core::result dependency from a few more modules
* Fix warning
* Cleanup
* Fix typo
2020-01-02 20:50:43 -07:00
carllin
146bc95c16
Fix sigverify metrics ( #7393 )
...
* Add filter
* Collapse logs
* Fix dashboard
2019-12-10 11:28:07 -08:00
Greg Fitzgerald
a3a830e1ab
Delete Service trait ( #6921 )
2019-11-13 11:12:09 -07:00
anatoly yakovenko
b825d04597
Pull perf into a separate module. ( #6718 )
...
automerge
2019-11-04 20:13:43 -08:00
anatoly yakovenko
385b4ce959
Get rid of verified packets and use the Meta::discard flag ( #6674 )
...
* get rid of verified packets and use the disabled meta field everywhere
2019-11-01 14:23:03 -07:00
anatoly yakovenko
34a9619806
SigVerify stage for shreds. ( #6563 )
2019-10-28 16:07:51 -07:00
Greg Fitzgerald
5468be2ef9
Add solana-ledger crate ( #6415 )
...
automerge
2019-10-18 09:28:51 -07:00
sakridge
5ef012b2c1
Tweak debug to remove unreadable datapoints ( #6060 )
2019-10-04 16:25:22 -07:00
Michael Vines
b4da83a3ab
Remove CUDA feature ( #6094 )
2019-09-26 13:36:51 -07:00
sakridge
a89589a1d5
Add Measure abstraction over measuring time intervals ( #4851 )
...
Allows one to swap in different implementations. This provides
the normal Insant::now() -> .elapsed() path.
2019-06-29 15:34:49 +02:00
sakridge
fbea9d8621
Page-pin packet memory for cuda ( #4250 )
...
* Page-pin packet memory for cuda
Bring back recyclers and pin offset buffers
* Add packet recycler to streamer
* Add set_pinnable to sigverify vecs to pin them
* Add packets reset test
* Add test for recycler and reduce the gc lock critical section
* Add comments/tests to cuda_runtime
* Add recycler to recv_blobs path.
* Add trace/names for debug and PacketsRecycler to bench-streamer
* Predict realloc and unpin beforehand.
* Add helper to reserve and pin
* Cap buffered packets length
* Call cuda wrapper functions
2019-06-27 09:32:32 +02:00
carllin
9a52b01171
Change to crossbeam channel in banking_threads VerifiedReceiver ( #4822 )
...
* Add crossbeam channel instead of channel in banking_stage
2019-06-26 18:42:27 -07:00
sakridge
7153abd483
Revert "Performance tweaks ( #4340 )" ( #4350 )
...
* Revert "Performance tweaks (#4340 )"
This reverts commit 55cee5742f
.
* Revert Rc change
2019-05-20 17:48:42 -07:00
sakridge
55cee5742f
Performance tweaks ( #4340 )
...
* Use Rc to prevent clone of Packets
* Fix min => max in banking_stage threads.
Coalesce packet buffers better since a larger batch will
be faster through banking and sigverify.
Deconstruct batches into banking_stage from sigverify since
sigverify likes to accumulate batches but then a single banking_stage
thread will be stuck with a large batch. Maximize parallelism by
creating more chunks of work for banking_stage.
2019-05-20 09:15:00 -07:00
Pankaj Garg
9476fe5ce3
Use log levels for datapoint metrics ( #4335 )
...
* Use log levels for datapoint metrics
* address review comments
* fix cyclomatic complexity
2019-05-17 17:34:05 -07:00
Jack May
f567877d1d
Cleanup metrics ( #4230 )
2019-05-10 08:33:58 -07:00
Pankaj Garg
d22a1c9b1f
Use smaller batch size in sigverify stage if CUDA is not available ( #3951 )
2019-04-23 12:41:50 -07:00
Sagar Dhawan
9c2809db21
Delete SharedPackets ( #3843 )
...
* Delete SharedPackets
* Fix bench and sigverify
2019-04-17 18:15:50 -07:00
Stephen Akridge
92b5e131fe
Name sigverify threads
2019-04-13 11:24:36 -07:00
Stephen Akridge
1dac4c33b8
Change sigverify counter from entries to packets
...
batch or entries kind of useless since it can have some
variable number of packets
2019-04-12 13:19:46 -07:00
Pankaj Garg
dc6c34da5d
Fast-track vote signature verification and processing ( #3695 )
2019-04-09 12:57:12 -07:00
Sagar Dhawan
f5f4434e0a
Remove unnecessary lock in sigverify
2019-04-05 16:57:45 -07:00