docs: remove memorybysubnet #452

Change-Id: I6907910e5752e0e0bd47c80f331e76210bbc744e
This commit is contained in:
onestraw 2019-02-19 14:56:32 +08:00
parent 3889888f8a
commit acdce7fea9

View file

@ -1,51 +0,0 @@
# Memory Subnet Storage
This storage system stores all peer data ephemerally in memory and prioritizes peers in the same subnet.
## Use Case
When the network being used for BitTorrent traffic is organized such that IP address can be mapped to physical location, this storage will encourage peers to transfer data between physically closer peers.
## Configuration
```yaml
chihaya:
storage:
name: memorybysubnet
config:
# The frequency which stale peers are removed.
gc_interval: 14m
# The frequency which metrics are pushed into a local Prometheus endpoint.
prometheus_reporting_interval: 1s
# The amount of time until a peer is considered stale.
# To avoid churn, keep this slightly larger than `announce_interval`
peer_lifetime: 16m
# The number of partitions data will be divided into in order to provide a
# higher degree of parallelism.
shard_count: 1024
# The number of bits that are used to mask IPv4 peers' addresses such that peers with the same mask are returned first from announces.
preferred_ipv4_subnet_mask_bits_set: 8
# The number of bits that are used to mask IPv6 peers' addresses such that peers with the same mask are returned first from announces.
preferred_ipv6_subnet_mask_bits_set: 16
```
## Implementation
The implementation of this storage strives to remain as similar to the `memory` storage system as possible.
Seeders and Leechers for a particular InfoHash are organized into maps by subnet (and then mapped to their last announce time):
```go
type swarm struct {
seeders map[peerSubnet]map[serializedPeer]int64
leechers map[peerSubnet]map[serializedPeer]int64
}
```
This causes the allocation and maintenance overhead of many extra maps.
Expect approximately a x2 slowdown in performance compared to `memory`.