BitTorrentの仕組みを読むのが早い。
完全な P2P というわけではなく、コンテンツとピアの情報を管理するトラッカーというサーバーがいる。トラッカー不在でも動作するDHTモードという仕組みもある。
| #!/usr/bin/env python | |
| from __future__ import print_function | |
| from argparse import ArgumentParser, RawDescriptionHelpFormatter | |
| import re | |
| import sys | |
| # Constants | |
| HELP_DESCRIPTION = '''\ | |
| Annotate id-ns output for humans. |
BitTorrentの仕組みを読むのが早い。
完全な P2P というわけではなく、コンテンツとピアの情報を管理するトラッカーというサーバーがいる。トラッカー不在でも動作するDHTモードという仕組みもある。
| #!/usr/bin/python3 | |
| from argparse import ArgumentParser | |
| import os | |
| from os.path import dirname, realpath | |
| from tempfile import NamedTemporaryFile | |
| def syncdir(d: str): | |
| fd = os.open(d, os.O_RDONLY|os.O_DIRECTORY) | |
| os.fsync(fd) |
| Ubuntu VM ディスクイメージを gzip, Zstd, Brotli で圧縮 | |
| $ time lzop -d < vm-generic.lzo | gzip > vm-generic.gz | |
| real 0m44.422s | |
| user 0m46.736s | |
| sys 0m1.312s | |
| $ time lzop -d < vm-generic.lzo | zstd > vm-generic.zstd | |
| real 0m9.863s | |
| user 0m10.336s |
| #!/bin/sh -e | |
| NS=testns | |
| BR1=testbr1 | |
| VETH1=testveth1 | |
| BR2=testbr2 | |
| VETH2=testveth2 | |
| LINKS="$VETH1 $VETH2 $BR1 $BR2" |
| package main | |
| import ( | |
| "os" | |
| networkingv1beta1 "k8s.io/api/networking/v1beta1" | |
| "k8s.io/apimachinery/pkg/runtime/serializer/json" | |
| "k8s.io/client-go/kubernetes/scheme" | |
| ) |