]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/doc/redundancy.md
Improve redundancy: add 'min_lifetime' configuration
[github/Chocobozzz/PeerTube.git] / support / doc / redundancy.md
1 # Redundancy
2
3 A PeerTube instance can cache other PeerTube videos to improve bandwidth of popular videos or small instances.
4
5 ## How it works
6
7 The instance administrator can choose between multiple redundancy strategies (cache trending videos or recently uploaded videos etc), set their maximum size and the minimum duplication lifetime.
8 Then, they choose the instances they want to cache in `Manage follows -> Following` admin table.
9
10 Videos are kept in the cache for at least `min_lifetime`, and then evicted when the cache is full.
11
12 When PeerTube chooses a video to duplicate, it imports all the resolution files (to avoid consistency issues) using their magnet URI and put them in the `storage.videos` directory.
13 Then it sends a `Create -> CacheFile` ActivityPub message to other federated instances. This new instance is injected as [WebSeed](https://github.com/Chocobozzz/PeerTube/blob/develop/FAQ.md#what-is-webseed) in the magnet URI by instances that received this ActivityPub message.
14
15 ## Stats
16
17 See the `/api/v1/server/stats` endpoint. For example:
18
19 ```
20 {
21 ...
22 "videosRedundancy": [
23 {
24 "totalUsed": 0,
25 "totalVideos": 0,
26 "totalVideoFiles": 0,
27 "strategy": "most-views",
28 "totalSize": 104857600
29 },
30 {
31 "totalUsed": 0,
32 "totalVideos": 0,
33 "totalVideoFiles": 0,
34 "strategy": "trending",
35 "totalSize": 104857600
36 },
37 {
38 "totalUsed": 0,
39 "totalVideos": 0,
40 "totalVideoFiles": 0,
41 "strategy": "recently-added",
42 "totalSize": 104857600
43 }
44 ]
45 }
46 ```