You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 3, 2024. It is now read-only.
Copy file name to clipboardexpand all lines: src/routes/(blog-article)/profiling-the-torrust-bittorrent-udp-tracker/+page.md
+61-51
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ In our quest to elevate the Torrust BitTorrent Tracker's performance, we've embr
51
51
52
52
In the previous article we introduced to the community the benchmarking tools we are using at the moment to know whether the Tracker performs at the same level as other applications on the market.
53
53
54
-
With those benchmarking tools we ensure that the Tracker has a good performance and we don't have regressions. If you are curious about how we do benchmarking you can read the "[Benchmarking the Torrust BitTorrent Tracker]about(benchmarking-the-torrust-bittorrent-tracker)" article.
54
+
With those benchmarking tools we ensure that the Tracker has a good performance and we don't have regressions. If you are curious about how we do benchmarking you can read the "[Benchmarking the Torrust BitTorrent Tracker](benchmarking-the-torrust-bittorrent-tracker)" article.
55
55
56
56
In this article we will explain how we are collecting metrics to know which parts of the code we should improve.
57
57
@@ -107,68 +107,78 @@ The `announce` request is the most important request a tracker needs to handle.
107
107
108
108
Every request is a write/read request. The system is intensive in writes. All requests eventually try to acquire a write lock to include themselves in the peer list. That's why we think that's the main bottleneck in our implementation, at the moment. For that reason we have been trying different implementations of the torrents repository:
The first one it's the default one when you run the tracker. We are benchmarking all the implementations.
127
+
The default implementation used in production is `TorrentsSkipMapMutexStd`.
117
128
118
129
<Callouttype="info">
119
130
120
-
NOTICE: All implementations are based on the `BTreeMap`. The reason we use a `BTreeMap` is because the tracker API has an endpoint where you can get the ordered list of all torrents in the tracker repository.
131
+
**NOTICE**: All implementations are based on types that support ordering like `BTreeMap` or `SkipMap`. The reason we use those types is because the tracker API has an endpoint where you can get the ordered list of all torrents in the tracker repository.
121
132
122
133
</Callout>
123
134
124
-
We are implementing a new repository using a different data structure that allows concurrent writes called [DashMap](https://docs.rs/dashmap/latest/dashmap/).
125
-
126
135
## Internal Repository Benchmarking
127
136
128
137
As we explained in a previous article ("[Benchmarking the Torrust BitTorrent Tracker](benchmarking-the-torrust-bittorrent-tracker)") you can run the benchmark for those different repository implementations with the following command:
0 commit comments