Instructions to use luclima/mythos-models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use luclima/mythos-models with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf luclima/mythos-models:Q4_K_M # Run inference directly in the terminal: llama cli -hf luclima/mythos-models:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf luclima/mythos-models:Q4_K_M # Run inference directly in the terminal: llama cli -hf luclima/mythos-models:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf luclima/mythos-models:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf luclima/mythos-models:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf luclima/mythos-models:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf luclima/mythos-models:Q4_K_M
Use Docker
docker model run hf.co/luclima/mythos-models:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use luclima/mythos-models with Ollama:
ollama run hf.co/luclima/mythos-models:Q4_K_M
- Unsloth Studio
How to use luclima/mythos-models with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for luclima/mythos-models to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for luclima/mythos-models to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for luclima/mythos-models to start chatting
- Docker Model Runner
How to use luclima/mythos-models with Docker Model Runner:
docker model run hf.co/luclima/mythos-models:Q4_K_M
- Lemonade
How to use luclima/mythos-models with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull luclima/mythos-models:Q4_K_M
Run and chat with the model
lemonade run user.mythos-models-Q4_K_M
List all available models
lemonade list
- Atomic Chat
Delete folder asian_ai with huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- asian_ai/.gitkeep +0 -0
- asian_ai/asian_ai_integration.py +0 -213
- asian_ai/chinese/3FS/.clang-format +0 -29
- asian_ai/chinese/3FS/.clang-tidy +0 -117
- asian_ai/chinese/3FS/.clangd +0 -3
- asian_ai/chinese/3FS/.dockerignore +0 -3
- asian_ai/chinese/3FS/.github/workflows/build-dev-docker-image.yml +0 -52
- asian_ai/chinese/3FS/.github/workflows/build.yml +0 -30
- asian_ai/chinese/3FS/.gitignore +0 -17
- asian_ai/chinese/3FS/.gitmodules +0 -42
- asian_ai/chinese/3FS/CMakeLists.txt +0 -208
- asian_ai/chinese/3FS/Cargo.lock +0 -2139
- asian_ai/chinese/3FS/Cargo.toml +0 -22
- asian_ai/chinese/3FS/LICENSE +0 -21
- asian_ai/chinese/3FS/README.md +0 -129
- asian_ai/chinese/3FS/benchmarks/CMakeLists.txt +0 -1
- asian_ai/chinese/3FS/benchmarks/fio_usrbio/Makefile +0 -23
- asian_ai/chinese/3FS/benchmarks/fio_usrbio/README.md +0 -40
- asian_ai/chinese/3FS/benchmarks/fio_usrbio/hf3fs_usrbio.cpp +0 -286
- asian_ai/chinese/3FS/benchmarks/storage_bench/CMakeLists.txt +0 -1
- asian_ai/chinese/3FS/benchmarks/storage_bench/StorageBench.cc +0 -291
- asian_ai/chinese/3FS/benchmarks/storage_bench/StorageBench.h +0 -906
- asian_ai/chinese/3FS/cmake/AddCrate.cmake +0 -33
- asian_ai/chinese/3FS/cmake/ApacheArrow.cmake +0 -61
- asian_ai/chinese/3FS/cmake/CLangFormat.cmake +0 -24
- asian_ai/chinese/3FS/cmake/CLangTidy.cmake +0 -52
- asian_ai/chinese/3FS/cmake/CTestCustom.cmake +0 -12
- asian_ai/chinese/3FS/cmake/CodeCoverage.cmake +0 -27
- asian_ai/chinese/3FS/cmake/CompileFlags.cmake +0 -21
- asian_ai/chinese/3FS/cmake/DumpConfig.cmake +0 -15
- asian_ai/chinese/3FS/cmake/GitVersion.cmake +0 -127
- asian_ai/chinese/3FS/cmake/Jemalloc.cmake +0 -20
- asian_ai/chinese/3FS/cmake/Sanitizers.cmake +0 -242
- asian_ai/chinese/3FS/cmake/Target.cmake +0 -109
- asian_ai/chinese/3FS/configs/admin_cli.toml +0 -338
- asian_ai/chinese/3FS/configs/hf3fs_client_agent.toml +0 -557
- asian_ai/chinese/3FS/configs/hf3fs_client_agent_app.toml +0 -1
- asian_ai/chinese/3FS/configs/hf3fs_client_agent_launcher.toml +0 -88
- asian_ai/chinese/3FS/configs/hf3fs_fuse_main.toml +0 -450
- asian_ai/chinese/3FS/configs/hf3fs_fuse_main_app.toml +0 -1
- asian_ai/chinese/3FS/configs/hf3fs_fuse_main_launcher.toml +0 -95
- asian_ai/chinese/3FS/configs/meta_main.toml +0 -633
- asian_ai/chinese/3FS/configs/meta_main_app.toml +0 -2
- asian_ai/chinese/3FS/configs/meta_main_launcher.toml +0 -93
- asian_ai/chinese/3FS/configs/mgmtd_main.toml +0 -232
- asian_ai/chinese/3FS/configs/mgmtd_main_app.toml +0 -2
- asian_ai/chinese/3FS/configs/mgmtd_main_launcher.toml +0 -44
- asian_ai/chinese/3FS/configs/monitor_collector_main.toml +0 -141
- asian_ai/chinese/3FS/configs/storage_main.toml +0 -510
- asian_ai/chinese/3FS/configs/storage_main_app.toml +0 -2
asian_ai/.gitkeep
DELETED
|
File without changes
|
asian_ai/asian_ai_integration.py
DELETED
|
@@ -1,213 +0,0 @@
|
|
| 1 |
-
"""
|
| 2 |
-
MYTHOS AI - Asian AI Integration Hub
|
| 3 |
-
=====================================
|
| 4 |
-
Integracao completa com IAs Chinesas, Japonesas e Coreanas.
|
| 5 |
-
DeepSeek, Qwen, GLM, RAGFlow, MetaGPT, CuPy, Optuna, vLLM, SGLang, EXAONE, Solar.
|
| 6 |
-
"""
|
| 7 |
-
|
| 8 |
-
import os
|
| 9 |
-
import sys
|
| 10 |
-
import json
|
| 11 |
-
import logging
|
| 12 |
-
import subprocess
|
| 13 |
-
from pathlib import Path
|
| 14 |
-
from dataclasses import dataclass, field
|
| 15 |
-
from typing import Dict, List, Optional, Any
|
| 16 |
-
|
| 17 |
-
logger = logging.getLogger(__name__)
|
| 18 |
-
|
| 19 |
-
BASE_DIR = Path(__file__).parent
|
| 20 |
-
CHINESE_DIR = BASE_DIR / "chinese"
|
| 21 |
-
JAPANESE_DIR = BASE_DIR / "japanese"
|
| 22 |
-
KOREAN_DIR = BASE_DIR / "korean"
|
| 23 |
-
PERFORMANCE_DIR = BASE_DIR / "performance"
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
@dataclass
|
| 27 |
-
class RepoInfo:
|
| 28 |
-
name: str
|
| 29 |
-
path: Path
|
| 30 |
-
country: str
|
| 31 |
-
category: str
|
| 32 |
-
stars: int = 0
|
| 33 |
-
license: str = ""
|
| 34 |
-
description: str = ""
|
| 35 |
-
installed: bool = False
|
| 36 |
-
pip_installed: bool = False
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
class AsianAIHub:
|
| 40 |
-
"""Hub central para todas as IAs asiaticas integradas ao MYTHOS."""
|
| 41 |
-
|
| 42 |
-
def __init__(self):
|
| 43 |
-
self.repos: Dict[str, RepoInfo] = {}
|
| 44 |
-
self._discover_repos()
|
| 45 |
-
self._check_pip_packages()
|
| 46 |
-
|
| 47 |
-
def _discover_repos(self):
|
| 48 |
-
"""Descobre todos os repos clonados."""
|
| 49 |
-
repo_configs = {
|
| 50 |
-
# CHINESES - DeepSeek
|
| 51 |
-
"DeepSeek-V3": {"country": "china", "category": "llm", "stars": 104000,
|
| 52 |
-
"license": "MIT", "description": "MoE 671B, MLA attention, 14.8T tokens"},
|
| 53 |
-
"DeepSeek-R1": {"country": "china", "category": "reasoning", "stars": 92000,
|
| 54 |
-
"license": "MIT", "description": "RL-based reasoning, self-verification"},
|
| 55 |
-
"DeepEP": {"country": "china", "category": "infrastructure", "stars": 9800,
|
| 56 |
-
"license": "MIT", "description": "Expert-parallel communication library"},
|
| 57 |
-
"DeepGEMM": {"country": "china", "category": "infrastructure", "stars": 7500,
|
| 58 |
-
"license": "MIT", "description": "Efficient GPU BLAS kernels"},
|
| 59 |
-
"DeepSpec": {"country": "china", "category": "inference", "stars": 5900,
|
| 60 |
-
"license": "MIT", "description": "Speculative decoding full-stack"},
|
| 61 |
-
"3FS": {"country": "china", "category": "infrastructure", "stars": 8000,
|
| 62 |
-
"license": "MIT", "description": "High-performance distributed file system"},
|
| 63 |
-
|
| 64 |
-
# CHINESES - Qwen/Alibaba
|
| 65 |
-
"Qwen3": {"country": "china", "category": "llm", "stars": 25000,
|
| 66 |
-
"license": "Apache-2.0", "description": "MoE 235B, thinking modes, 100+ languages"},
|
| 67 |
-
"Qwen-Agent": {"country": "china", "category": "agent", "stars": 12000,
|
| 68 |
-
"license": "Apache-2.0", "description": "Agent framework with planning, tools"},
|
| 69 |
-
|
| 70 |
-
# CHINESES - Plataformas
|
| 71 |
-
"RAGFlow": {"country": "china", "category": "rag", "stars": 84000,
|
| 72 |
-
"license": "Apache-2.0", "description": "RAG engine with deep document parsing"},
|
| 73 |
-
"FastGPT": {"country": "china", "category": "rag", "stars": 29000,
|
| 74 |
-
"license": "Apache-2.0", "description": "Knowledge base + visual workflow"},
|
| 75 |
-
"Dify": {"country": "china", "category": "platform", "stars": 135000,
|
| 76 |
-
"license": "Apache-2.0", "description": "LLM app builder with RAG, agents, workflows"},
|
| 77 |
-
"MetaGPT": {"country": "china", "category": "agent", "stars": 59000,
|
| 78 |
-
"license": "MIT", "description": "Multi-agent software company simulation"},
|
| 79 |
-
"PaddleOCR": {"country": "china", "category": "ocr", "stars": 84500,
|
| 80 |
-
"license": "Apache-2.0", "description": "OCR 100+ languages, PDF to structured data"},
|
| 81 |
-
|
| 82 |
-
# CHINESES - GLM/Zhipu
|
| 83 |
-
"GLM-4": {"country": "china", "category": "llm", "stars": 10000,
|
| 84 |
-
"license": "Apache-2.0", "description": "355B MoE, visual reasoning"},
|
| 85 |
-
|
| 86 |
-
# JAPONESAS
|
| 87 |
-
"CuPy": {"country": "japan", "category": "gpu", "stars": 9500,
|
| 88 |
-
"license": "MIT", "description": "NumPy-compatible GPU matrix library"},
|
| 89 |
-
"Optuna": {"country": "japan", "category": "optimization", "stars": 12000,
|
| 90 |
-
"license": "MIT", "description": "Automatic hyperparameter optimization"},
|
| 91 |
-
"PFRL": {"country": "japan", "category": "rl", "stars": 1300,
|
| 92 |
-
"license": "MIT", "description": "PyTorch reinforcement learning library"},
|
| 93 |
-
|
| 94 |
-
# COREANAS
|
| 95 |
-
"K-EXAONE": {"country": "korea", "category": "llm", "stars": 1000,
|
| 96 |
-
"license": "Mixed", "description": "LG AI MoE multilingual model"},
|
| 97 |
-
}
|
| 98 |
-
|
| 99 |
-
for category_dir, repos in [
|
| 100 |
-
(CHINESE_DIR, repo_configs),
|
| 101 |
-
(JAPANESE_DIR, repo_configs),
|
| 102 |
-
(KOREAN_DIR, repo_configs),
|
| 103 |
-
]:
|
| 104 |
-
if not category_dir.exists():
|
| 105 |
-
continue
|
| 106 |
-
for repo_dir in category_dir.iterdir():
|
| 107 |
-
if repo_dir.is_dir() and repo_dir.name in repos:
|
| 108 |
-
config = repos[repo_dir.name]
|
| 109 |
-
self.repos[repo_dir.name] = RepoInfo(
|
| 110 |
-
name=repo_dir.name,
|
| 111 |
-
path=repo_dir,
|
| 112 |
-
country=config["country"],
|
| 113 |
-
category=config["category"],
|
| 114 |
-
stars=config["stars"],
|
| 115 |
-
license=config["license"],
|
| 116 |
-
description=config["description"],
|
| 117 |
-
installed=True,
|
| 118 |
-
)
|
| 119 |
-
|
| 120 |
-
# Performance repos
|
| 121 |
-
if PERFORMANCE_DIR.exists():
|
| 122 |
-
perf_configs = {
|
| 123 |
-
"vLLM": {"category": "inference", "stars": 45000, "license": "Apache-2.0",
|
| 124 |
-
"description": "High-throughput LLM serving with PagedAttention"},
|
| 125 |
-
"SGLang": {"category": "inference", "stars": 12000, "license": "Apache-2.0",
|
| 126 |
-
"description": "Runtime for LLM with structured generation"},
|
| 127 |
-
}
|
| 128 |
-
for repo_dir in PERFORMANCE_DIR.iterdir():
|
| 129 |
-
if repo_dir.is_dir() and repo_dir.name in perf_configs:
|
| 130 |
-
config = perf_configs[repo_dir.name]
|
| 131 |
-
self.repos[repo_dir.name] = RepoInfo(
|
| 132 |
-
name=repo_dir.name,
|
| 133 |
-
path=repo_dir,
|
| 134 |
-
country="performance",
|
| 135 |
-
category=config["category"],
|
| 136 |
-
stars=config["stars"],
|
| 137 |
-
license=config["license"],
|
| 138 |
-
description=config["description"],
|
| 139 |
-
installed=True,
|
| 140 |
-
)
|
| 141 |
-
|
| 142 |
-
def _check_pip_packages(self):
|
| 143 |
-
"""Verifica quais pacotes estao instalados via pip."""
|
| 144 |
-
pip_packages = {
|
| 145 |
-
"optuna": "Optuna",
|
| 146 |
-
"cupy": "CuPy",
|
| 147 |
-
"cupyx": "CuPy",
|
| 148 |
-
"transformers": "Transformers",
|
| 149 |
-
"accelerate": "Accelerate",
|
| 150 |
-
"bitsandbytes": "BitsAndBytes",
|
| 151 |
-
"sentencepiece": "SentencePiece",
|
| 152 |
-
"huggingface_hub": "HuggingFace Hub",
|
| 153 |
-
"paddleocr": "PaddleOCR",
|
| 154 |
-
"paddlepaddle": "PaddlePaddle",
|
| 155 |
-
}
|
| 156 |
-
for pkg, repo_name in pip_packages.items():
|
| 157 |
-
try:
|
| 158 |
-
__import__(pkg)
|
| 159 |
-
if repo_name in self.repos:
|
| 160 |
-
self.repos[repo_name].pip_installed = True
|
| 161 |
-
except ImportError:
|
| 162 |
-
pass
|
| 163 |
-
|
| 164 |
-
def get_summary(self) -> Dict[str, Any]:
|
| 165 |
-
"""Retorna resumo de todos os repos."""
|
| 166 |
-
by_country = {"china": [], "japan": [], "korea": [], "performance": []}
|
| 167 |
-
for repo in self.repos.values():
|
| 168 |
-
by_country.setdefault(repo.country, []).append({
|
| 169 |
-
"name": repo.name,
|
| 170 |
-
"category": repo.category,
|
| 171 |
-
"stars": repo.stars,
|
| 172 |
-
"license": repo.license,
|
| 173 |
-
"description": repo.description,
|
| 174 |
-
"installed": repo.installed,
|
| 175 |
-
"pip_installed": repo.pip_installed,
|
| 176 |
-
"path": str(repo.path),
|
| 177 |
-
})
|
| 178 |
-
return {
|
| 179 |
-
"total_repos": len(self.repos),
|
| 180 |
-
"total_stars": sum(r.stars for r in self.repos.values()),
|
| 181 |
-
"by_country": by_country,
|
| 182 |
-
"pip_packages_installed": sum(1 for r in self.repos.values() if r.pip_installed),
|
| 183 |
-
}
|
| 184 |
-
|
| 185 |
-
def print_status(self):
|
| 186 |
-
"""Imprime status formatado."""
|
| 187 |
-
summary = self.get_summary()
|
| 188 |
-
print(f"\n{'='*60}")
|
| 189 |
-
print(f" MYTHOS AI - Asian AI Hub")
|
| 190 |
-
print(f" {summary['total_repos']} repos | {summary['total_stars']:,} stars total")
|
| 191 |
-
print(f"{'='*60}")
|
| 192 |
-
|
| 193 |
-
for country, flag in [("china", "CN"), ("japan", "JP"), ("korea", "KR"), ("performance", "PERF")]:
|
| 194 |
-
repos = summary["by_country"].get(country, [])
|
| 195 |
-
if repos:
|
| 196 |
-
print(f"\n [{flag}] {country.upper()} ({len(repos)} repos)")
|
| 197 |
-
for r in repos:
|
| 198 |
-
status = "[pip]" if r["pip_installed"] else "[clone]"
|
| 199 |
-
print(f" {status} {r['name']:20s} | {r['category']:15s} | {r['stars']:>6,} stars | {r['license']}")
|
| 200 |
-
|
| 201 |
-
print(f"\n{'='*60}\n")
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
def get_asian_ai_hub() -> AsianAIHub:
|
| 205 |
-
"""Singleton para o Asian AI Hub."""
|
| 206 |
-
if not hasattr(get_asian_ai_hub, "_instance"):
|
| 207 |
-
get_asian_ai_hub._instance = AsianAIHub()
|
| 208 |
-
return get_asian_ai_hub._instance
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
if __name__ == "__main__":
|
| 212 |
-
hub = get_asian_ai_hub()
|
| 213 |
-
hub.print_status()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.clang-format
DELETED
|
@@ -1,29 +0,0 @@
|
|
| 1 |
-
BasedOnStyle: Google
|
| 2 |
-
Language: Cpp
|
| 3 |
-
Standard: c++20
|
| 4 |
-
AlignAfterOpenBracket: Align
|
| 5 |
-
AlignEscapedNewlines: Left
|
| 6 |
-
AlignTrailingComments: true
|
| 7 |
-
AllowAllArgumentsOnNextLine: false
|
| 8 |
-
AllowAllParametersOfDeclarationOnNextLine: false
|
| 9 |
-
AlwaysBreakAfterReturnType: None
|
| 10 |
-
AlwaysBreakTemplateDeclarations: true
|
| 11 |
-
BinPackArguments: false
|
| 12 |
-
BinPackParameters: false
|
| 13 |
-
BitFieldColonSpacing: Both
|
| 14 |
-
BreakConstructorInitializers: BeforeColon
|
| 15 |
-
BreakInheritanceList: BeforeColon
|
| 16 |
-
IndentWidth: 2
|
| 17 |
-
PointerAlignment: Right
|
| 18 |
-
DerivePointerAlignment: false
|
| 19 |
-
ColumnLimit: 120
|
| 20 |
-
PackConstructorInitializers: Never
|
| 21 |
-
SpaceAfterTemplateKeyword: true
|
| 22 |
-
|
| 23 |
-
IncludeCategories:
|
| 24 |
-
- Regex: 'Flat_generated\.h("|>)'
|
| 25 |
-
Priority: 1000
|
| 26 |
-
SortPriority: 1000
|
| 27 |
-
- Regex: '"fbs/macros/'
|
| 28 |
-
Priority: 1001
|
| 29 |
-
SortPriority: 1001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.clang-tidy
DELETED
|
@@ -1,117 +0,0 @@
|
|
| 1 |
-
Checks: >
|
| 2 |
-
-*,
|
| 3 |
-
bugprone-undelegated-constructor,
|
| 4 |
-
bugprone-argument-comment,
|
| 5 |
-
bugprone-bad-signal-to-kill-thread,
|
| 6 |
-
bugprone-bool-pointer-implicit-conversion,
|
| 7 |
-
bugprone-copy-constructor-init,
|
| 8 |
-
bugprone-dangling-handle,
|
| 9 |
-
bugprone-forward-declaration-namespace,
|
| 10 |
-
bugprone-fold-init-type,
|
| 11 |
-
bugprone-inaccurate-erase,
|
| 12 |
-
bugprone-incorrect-roundings,
|
| 13 |
-
bugprone-infinite-loop,
|
| 14 |
-
bugprone-integer-division,
|
| 15 |
-
bugprone-macro-repeated-side-effects,
|
| 16 |
-
bugprone-misplaced-operator-in-strlen-in-alloc,
|
| 17 |
-
bugprone-misplaced-pointer-arithmetic-in-alloc,
|
| 18 |
-
bugprone-misplaced-widening-cast,
|
| 19 |
-
bugprone-move-forwarding-reference,
|
| 20 |
-
bugprone-multiple-statement-macro,
|
| 21 |
-
bugprone-parent-virtual-call,
|
| 22 |
-
bugprone-posix-return,
|
| 23 |
-
bugprone-reserved-identifier,
|
| 24 |
-
bugprone-signed-char-misuse,
|
| 25 |
-
bugprone-sizeof-container,
|
| 26 |
-
bugprone-sizeof-expression,
|
| 27 |
-
bugprone-string-constructor,
|
| 28 |
-
bugprone-string-integer-assignment,
|
| 29 |
-
bugprone-string-literal-with-embedded-nul,
|
| 30 |
-
bugprone-suspicious-enum-usage,
|
| 31 |
-
bugprone-suspicious-include,
|
| 32 |
-
bugprone-suspicious-memset-usage,
|
| 33 |
-
bugprone-suspicious-missing-comma,
|
| 34 |
-
bugprone-suspicious-string-compare,
|
| 35 |
-
bugprone-swapped-arguments,
|
| 36 |
-
bugprone-terminating-continue,
|
| 37 |
-
bugprone-throw-keyword-missing,
|
| 38 |
-
bugprone-too-small-loop-variable,
|
| 39 |
-
bugprone-undefined-memory-manipulation,
|
| 40 |
-
bugprone-unhandled-self-assignment,
|
| 41 |
-
bugprone-unused-raii,
|
| 42 |
-
bugprone-unused-return-value,
|
| 43 |
-
bugprone-use-after-move,
|
| 44 |
-
bugprone-virtual-near-miss,
|
| 45 |
-
# bugprone-macro-parentheses,
|
| 46 |
-
# bugprone-narrowing-conversions,
|
| 47 |
-
# bugprone-exception-escape,
|
| 48 |
-
|
| 49 |
-
performance-faster-string-find,
|
| 50 |
-
performance-for-range-copy,
|
| 51 |
-
performance-implicit-conversion-in-loop,
|
| 52 |
-
performance-inefficient-algorithm,
|
| 53 |
-
performance-inefficient-vector-operation,
|
| 54 |
-
performance-move-constructor-init,
|
| 55 |
-
performance-no-automatic-move,
|
| 56 |
-
performance-trivially-destructible,
|
| 57 |
-
performance-unnecessary-copy-initialization,
|
| 58 |
-
performance-move-const-arg,
|
| 59 |
-
|
| 60 |
-
modernize-avoid-bind,
|
| 61 |
-
modernize-loop-convert,
|
| 62 |
-
modernize-make-shared,
|
| 63 |
-
modernize-make-unique,
|
| 64 |
-
modernize-raw-string-literal,
|
| 65 |
-
modernize-redundant-void-arg,
|
| 66 |
-
modernize-replace-auto-ptr,
|
| 67 |
-
modernize-replace-random-shuffle,
|
| 68 |
-
modernize-use-auto,
|
| 69 |
-
modernize-use-bool-literals,
|
| 70 |
-
modernize-use-nullptr,
|
| 71 |
-
modernize-use-using,
|
| 72 |
-
modernize-use-override,
|
| 73 |
-
modernize-use-equals-default,
|
| 74 |
-
modernize-use-equals-delete,
|
| 75 |
-
|
| 76 |
-
misc-throw-by-value-catch-by-reference,
|
| 77 |
-
misc-misplaced-const,
|
| 78 |
-
misc-unconventional-assign-operator,
|
| 79 |
-
misc-redundant-expression,
|
| 80 |
-
misc-static-assert,
|
| 81 |
-
misc-unconventional-assign-operator,
|
| 82 |
-
misc-uniqueptr-reset-release,
|
| 83 |
-
misc-unused-alias-decls,
|
| 84 |
-
misc-unused-parameters,
|
| 85 |
-
misc-unused-using-decls,
|
| 86 |
-
|
| 87 |
-
readability-avoid-const-params-in-decls
|
| 88 |
-
readability-const-return-type,
|
| 89 |
-
readability-container-size-empty,
|
| 90 |
-
readability-delete-null-pointer,
|
| 91 |
-
readability-deleted-default,
|
| 92 |
-
readability-misplaced-array-index,
|
| 93 |
-
readability-non-const-parameter,
|
| 94 |
-
readability-redundant-control-flow,
|
| 95 |
-
readability-redundant-function-ptr-dereference,
|
| 96 |
-
readability-redundant-smartptr-get,
|
| 97 |
-
readability-redundant-string-cstr,
|
| 98 |
-
readability-redundant-string-init,
|
| 99 |
-
readability-static-definition-in-anonymous-namespace,
|
| 100 |
-
readability-string-compare,
|
| 101 |
-
readability-uniqueptr-delete-release,
|
| 102 |
-
readability-simplify-subscript-expr,
|
| 103 |
-
readability-simplify-boolean-expr,
|
| 104 |
-
readability-inconsistent-declaration-parameter-name,
|
| 105 |
-
# readability-qualified-auto,
|
| 106 |
-
|
| 107 |
-
cert-flp30-c,
|
| 108 |
-
cert-mem57-cpp,
|
| 109 |
-
cert-oop58-cpp,
|
| 110 |
-
google-build-explicit-make-pair,
|
| 111 |
-
google-runtime-operator,
|
| 112 |
-
hicpp-exception-baseclass,
|
| 113 |
-
cppcoreguidelines-virtual-class-destructor,
|
| 114 |
-
WarningsAsErrors: ""
|
| 115 |
-
CheckOptions:
|
| 116 |
-
- key: performance-move-const-arg.CheckTriviallyCopyableMove
|
| 117 |
-
value: false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.clangd
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
CompileFlags:
|
| 2 |
-
Add: -fcoroutines-ts
|
| 3 |
-
Remove: [-fcoroutines, -DNO_INTELLISENSE]
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.dockerignore
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
clang
|
| 2 |
-
build
|
| 3 |
-
deploy/*/Dockerfile
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.github/workflows/build-dev-docker-image.yml
DELETED
|
@@ -1,52 +0,0 @@
|
|
| 1 |
-
name: Build development Docker image
|
| 2 |
-
|
| 3 |
-
on:
|
| 4 |
-
workflow_dispatch:
|
| 5 |
-
|
| 6 |
-
env:
|
| 7 |
-
REGISTRY: ghcr.io
|
| 8 |
-
IMAGE_NAME: ${{ github.repository }}-dev
|
| 9 |
-
|
| 10 |
-
jobs:
|
| 11 |
-
push_to_registry:
|
| 12 |
-
runs-on: ubuntu-latest
|
| 13 |
-
|
| 14 |
-
permissions:
|
| 15 |
-
packages: write
|
| 16 |
-
contents: read
|
| 17 |
-
attestations: write
|
| 18 |
-
id-token: write
|
| 19 |
-
|
| 20 |
-
steps:
|
| 21 |
-
- name: Check out the repository
|
| 22 |
-
uses: actions/checkout@v4
|
| 23 |
-
|
| 24 |
-
- name: Log in to the Container registry
|
| 25 |
-
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
|
| 26 |
-
with:
|
| 27 |
-
registry: ${{ env.REGISTRY }}
|
| 28 |
-
username: ${{ github.actor }}
|
| 29 |
-
password: ${{ secrets.GITHUB_TOKEN }}
|
| 30 |
-
|
| 31 |
-
- name: Extract metadata (tags, labels) for Docker
|
| 32 |
-
id: meta
|
| 33 |
-
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
|
| 34 |
-
with:
|
| 35 |
-
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
| 36 |
-
|
| 37 |
-
- name: Build and push Docker image
|
| 38 |
-
id: push
|
| 39 |
-
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
|
| 40 |
-
with:
|
| 41 |
-
context: .
|
| 42 |
-
file: ./dockerfile/dev.dockerfile
|
| 43 |
-
push: true
|
| 44 |
-
tags: ${{ steps.meta.outputs.tags }}
|
| 45 |
-
labels: ${{ steps.meta.outputs.labels }}
|
| 46 |
-
|
| 47 |
-
- name: Generate artifact attestation
|
| 48 |
-
uses: actions/attest-build-provenance@v2
|
| 49 |
-
with:
|
| 50 |
-
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
|
| 51 |
-
subject-digest: ${{ steps.push.outputs.digest }}
|
| 52 |
-
push-to-registry: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.github/workflows/build.yml
DELETED
|
@@ -1,30 +0,0 @@
|
|
| 1 |
-
name: Build
|
| 2 |
-
|
| 3 |
-
on:
|
| 4 |
-
push:
|
| 5 |
-
branches: [ "main" ]
|
| 6 |
-
pull_request:
|
| 7 |
-
branches: [ "main" ]
|
| 8 |
-
|
| 9 |
-
jobs:
|
| 10 |
-
build:
|
| 11 |
-
runs-on: self-hosted # or `ubuntu-22.04`
|
| 12 |
-
|
| 13 |
-
steps:
|
| 14 |
-
- uses: actions/checkout@v4
|
| 15 |
-
|
| 16 |
-
- name: Prepare
|
| 17 |
-
run: |
|
| 18 |
-
sudo apt install -y cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libdwarf-dev libunwind-dev
|
| 19 |
-
sudo apt install -y libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14
|
| 20 |
-
sudo apt install -y libgoogle-perftools-dev google-perftools libssl-dev gcc-12 g++-12 libboost-all-dev meson rustc cargo
|
| 21 |
-
wget https://github.com/apple/foundationdb/releases/download/7.1.61/foundationdb-clients_7.1.61-1_amd64.deb && sudo dpkg -i foundationdb-clients_7.1.61-1_amd64.deb
|
| 22 |
-
git clone https://github.com/libfuse/libfuse.git libfuse -b fuse-3.16.2 --depth 1 && mkdir libfuse/build && cd libfuse/build && meson setup .. && ninja && sudo ninja install && cd ../.. && rm -rf libfuse
|
| 23 |
-
git submodule update --init --recursive
|
| 24 |
-
./patches/apply.sh
|
| 25 |
-
|
| 26 |
-
- name: Build
|
| 27 |
-
run: |
|
| 28 |
-
cargo build --release
|
| 29 |
-
cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSHUFFLE_METHOD=g++11
|
| 30 |
-
cmake --build build -j 32
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.gitignore
DELETED
|
@@ -1,17 +0,0 @@
|
|
| 1 |
-
/.cache
|
| 2 |
-
/.vscode
|
| 3 |
-
/build
|
| 4 |
-
/debug
|
| 5 |
-
/release
|
| 6 |
-
/clang
|
| 7 |
-
/clangdbg
|
| 8 |
-
/packages
|
| 9 |
-
*.o
|
| 10 |
-
*.a
|
| 11 |
-
*.so
|
| 12 |
-
*.log
|
| 13 |
-
compile_commands.json
|
| 14 |
-
*_generated.h
|
| 15 |
-
*~
|
| 16 |
-
__pycache__
|
| 17 |
-
/target
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/.gitmodules
DELETED
|
@@ -1,42 +0,0 @@
|
|
| 1 |
-
[submodule "third_party/googletest"]
|
| 2 |
-
path = third_party/googletest
|
| 3 |
-
url = https://github.com/google/googletest.git
|
| 4 |
-
[submodule "third_party/folly"]
|
| 5 |
-
path = third_party/folly
|
| 6 |
-
url = https://github.com/facebook/folly.git
|
| 7 |
-
[submodule "third_party/leveldb"]
|
| 8 |
-
path = third_party/leveldb
|
| 9 |
-
url = https://github.com/google/leveldb.git
|
| 10 |
-
[submodule "third_party/rocksdb"]
|
| 11 |
-
path = third_party/rocksdb
|
| 12 |
-
url = https://github.com/facebook/rocksdb.git
|
| 13 |
-
[submodule "third_party/scnlib"]
|
| 14 |
-
path = third_party/scnlib
|
| 15 |
-
url = https://github.com/eliaskosunen/scnlib.git
|
| 16 |
-
[submodule "third_party/pybind11"]
|
| 17 |
-
path = third_party/pybind11
|
| 18 |
-
url = https://github.com/pybind/pybind11.git
|
| 19 |
-
[submodule "third_party/clickhouse-cpp"]
|
| 20 |
-
path = third_party/clickhouse-cpp
|
| 21 |
-
url = https://github.com/ClickHouse/clickhouse-cpp.git
|
| 22 |
-
[submodule "third_party/fmt"]
|
| 23 |
-
path = third_party/fmt
|
| 24 |
-
url = https://github.com/fmtlib/fmt.git
|
| 25 |
-
[submodule "third_party/toml11"]
|
| 26 |
-
path = third_party/toml11
|
| 27 |
-
url = https://github.com/ToruNiina/toml11.git
|
| 28 |
-
[submodule "third_party/jemalloc"]
|
| 29 |
-
path = third_party/jemalloc
|
| 30 |
-
url = https://github.com/jemalloc/jemalloc.git
|
| 31 |
-
[submodule "third_party/mimalloc"]
|
| 32 |
-
path = third_party/mimalloc
|
| 33 |
-
url = https://github.com/microsoft/mimalloc.git
|
| 34 |
-
[submodule "third_party/zstd"]
|
| 35 |
-
path = third_party/zstd
|
| 36 |
-
url = https://github.com/facebook/zstd.git
|
| 37 |
-
[submodule "third_party/liburing"]
|
| 38 |
-
path = third_party/liburing
|
| 39 |
-
url = https://github.com/axboe/liburing.git
|
| 40 |
-
[submodule "third_party/gtest-parallel"]
|
| 41 |
-
path = third_party/gtest-parallel
|
| 42 |
-
url = https://github.com/google/gtest-parallel.git
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/CMakeLists.txt
DELETED
|
@@ -1,208 +0,0 @@
|
|
| 1 |
-
cmake_minimum_required(VERSION 3.12)
|
| 2 |
-
project(3FS VERSION 0.1.5 LANGUAGES C CXX)
|
| 3 |
-
|
| 4 |
-
set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Debug;Release;MinSizeRel" CACHE STRING "" FORCE)
|
| 5 |
-
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "None")
|
| 6 |
-
set (CMAKE_BUILD_TYPE "RelWithDebInfo")
|
| 7 |
-
message (STATUS "CMAKE_BUILD_TYPE is not set, set to default = ${CMAKE_BUILD_TYPE}")
|
| 8 |
-
endif ()
|
| 9 |
-
message (STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
| 10 |
-
|
| 11 |
-
string (TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UC)
|
| 12 |
-
|
| 13 |
-
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG" )
|
| 14 |
-
option(ENABLE_ASSERTIONS "Enable assertions" ON)
|
| 15 |
-
else()
|
| 16 |
-
option(ENABLE_ASSERTIONS "Enable assertions" OFF)
|
| 17 |
-
endif()
|
| 18 |
-
message (STATUS "ENABLE_ASSERTIONS: ${ENABLE_ASSERTIONS}")
|
| 19 |
-
|
| 20 |
-
if(ENABLE_ASSERTIONS)
|
| 21 |
-
add_definitions(-D_DEBUG)
|
| 22 |
-
# On non-Debug builds cmake automatically defines NDEBUG, so we explicitly undefine it:
|
| 23 |
-
if(NOT CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
| 24 |
-
# NOTE: use `add_compile_options` rather than `add_definitions` since
|
| 25 |
-
# `add_definitions` does not support generator expressions.
|
| 26 |
-
add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-UNDEBUG>)
|
| 27 |
-
endif()
|
| 28 |
-
endif()
|
| 29 |
-
|
| 30 |
-
set(SHUFFLE_METHODS "g++10" "g++11" "stdshuffle")
|
| 31 |
-
set(SHUFFLE_METHOD "" CACHE STRING "Choose the shuffle method (REQUIRED)")
|
| 32 |
-
set_property(CACHE SHUFFLE_METHOD PROPERTY STRINGS ${SHUFFLE_METHODS})
|
| 33 |
-
|
| 34 |
-
if("${SHUFFLE_METHOD}" STREQUAL "")
|
| 35 |
-
message(FATAL_ERROR
|
| 36 |
-
"\n [ERROR]: SHUFFLE_METHOD is not set!\n"
|
| 37 |
-
" You must specify it using: cmake -DSHUFFLE_METHOD=<value>\n"
|
| 38 |
-
" Valid options are: ${SHUFFLE_METHODS}"
|
| 39 |
-
)
|
| 40 |
-
elseif(NOT SHUFFLE_METHOD IN_LIST SHUFFLE_METHODS)
|
| 41 |
-
message(FATAL_ERROR
|
| 42 |
-
"\n [ERROR]: Invalid SHUFFLE_METHOD: '${SHUFFLE_METHOD}'\n"
|
| 43 |
-
" Valid options are: ${SHUFFLE_METHODS}"
|
| 44 |
-
)
|
| 45 |
-
endif()
|
| 46 |
-
|
| 47 |
-
message(STATUS "Use Shuffle Method: ${SHUFFLE_METHOD}")
|
| 48 |
-
if(SHUFFLE_METHOD STREQUAL "stdshuffle")
|
| 49 |
-
add_compile_definitions(USE_STD_SHUFFLE)
|
| 50 |
-
elseif(SHUFFLE_METHOD STREQUAL "g++10")
|
| 51 |
-
add_compile_definitions(USE_GCC10_SHUFFLE)
|
| 52 |
-
elseif(SHUFFLE_METHOD STREQUAL "g++11")
|
| 53 |
-
add_compile_definitions(USE_GCC11_SHUFFLE)
|
| 54 |
-
endif()
|
| 55 |
-
|
| 56 |
-
option(OVERRIDE_CXX_NEW_DELETE "Override C++ new/delete operator" OFF)
|
| 57 |
-
option(SAVE_ALLOCATE_SIZE "Use more memory to save allocate size" OFF)
|
| 58 |
-
|
| 59 |
-
option(ENABLE_FUSE_APPLICATION "" ON)
|
| 60 |
-
|
| 61 |
-
if (DEFINED SANITIZER AND SANITIZER)
|
| 62 |
-
set(OVERRIDE_CXX_NEW_DELETE OFF)
|
| 63 |
-
endif()
|
| 64 |
-
message (STATUS "OVERRIDE_CXX_NEW_DELETE: ${OVERRIDE_CXX_NEW_DELETE}")
|
| 65 |
-
|
| 66 |
-
if (OVERRIDE_CXX_NEW_DELETE)
|
| 67 |
-
add_definitions(-DOVERRIDE_CXX_NEW_DELETE)
|
| 68 |
-
if (SAVE_ALLOCATE_SIZE)
|
| 69 |
-
add_definitions(-DSAVE_ALLOCATE_SIZE)
|
| 70 |
-
endif()
|
| 71 |
-
endif()
|
| 72 |
-
message (STATUS "SAVE_ALLOCATE_SIZE: ${SAVE_ALLOCATE_SIZE}")
|
| 73 |
-
|
| 74 |
-
set(CMAKE_C_STANDARD 11)
|
| 75 |
-
set(CMAKE_C_STANDARD_REQUIRED OFF)
|
| 76 |
-
set(CMAKE_C_EXTENSIONS ON)
|
| 77 |
-
set(CMAKE_CXX_STANDARD 20)
|
| 78 |
-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
| 79 |
-
set(CMAKE_CXX_EXTENSIONS OFF)
|
| 80 |
-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
| 81 |
-
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
| 82 |
-
|
| 83 |
-
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
| 84 |
-
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines-ts")
|
| 85 |
-
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
|
| 86 |
-
add_link_options(-fuse-ld=lld)
|
| 87 |
-
# Do not build with libc++ (LLVM's implementation of the C++ standard library) in fdb
|
| 88 |
-
set(USE_LIBCXX OFF)
|
| 89 |
-
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
| 90 |
-
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines")
|
| 91 |
-
endif()
|
| 92 |
-
|
| 93 |
-
# Remove project root from the __FILE__ macro variable
|
| 94 |
-
add_compile_options(-fmacro-prefix-map=${CMAKE_SOURCE_DIR}=.)
|
| 95 |
-
|
| 96 |
-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
| 97 |
-
add_compile_options(-msse4.2 -mavx2)
|
| 98 |
-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
|
| 99 |
-
# ARM architecture detected:
|
| 100 |
-
# Clang on ARM uses built-in runtime library (compiler-rt) to provide symbols like '__muloti4'.
|
| 101 |
-
# Without explicitly specifying '-rtlib=compiler-rt', linking may fail due to missing '__muloti4'.
|
| 102 |
-
# '-unwindlib=libgcc' ensures proper exception unwinding compatibility.
|
| 103 |
-
add_compile_options(-march=armv8-a+crc)
|
| 104 |
-
message(STATUS "ARM architecture detected, linking with compiler-rt and libgcc.")
|
| 105 |
-
add_link_options("-rtlib=compiler-rt" "-unwindlib=libgcc")
|
| 106 |
-
endif()
|
| 107 |
-
add_compile_definitions(ROCKSDB_NAMESPACE=rocksdb_internal)
|
| 108 |
-
include(cmake/Sanitizers.cmake)
|
| 109 |
-
include(cmake/CompileFlags.cmake)
|
| 110 |
-
|
| 111 |
-
# folly can't work normally under -Werror
|
| 112 |
-
store_compile_flags()
|
| 113 |
-
add_subdirectory("third_party/fmt" EXCLUDE_FROM_ALL)
|
| 114 |
-
restore_compile_flags()
|
| 115 |
-
set(ZSTD_BUILD_STATIC ON)
|
| 116 |
-
add_subdirectory("third_party/zstd/build/cmake" EXCLUDE_FROM_ALL)
|
| 117 |
-
set(zstd_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/third_party/zstd/lib")
|
| 118 |
-
set(ZSTD_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/third_party/zstd/lib")
|
| 119 |
-
set(zstd_FOUND ON)
|
| 120 |
-
set(ZSTD_FOUND ON)
|
| 121 |
-
set(zstd_LIBRARIES "${PROJECT_BINARY_DIR}/third_party/zstd/build/cmake/lib/libzstd.a")
|
| 122 |
-
set(ZSTD_LIBRARY "${PROJECT_BINARY_DIR}/third_party/zstd/build/cmake/lib/libzstd.a")
|
| 123 |
-
restore_compile_flags()
|
| 124 |
-
add_subdirectory("third_party/googletest" EXCLUDE_FROM_ALL)
|
| 125 |
-
restore_compile_flags()
|
| 126 |
-
set(FOLLY_NO_EXCEPTION_TRACER ON)
|
| 127 |
-
add_subdirectory("third_party/folly" EXCLUDE_FROM_ALL)
|
| 128 |
-
restore_compile_flags()
|
| 129 |
-
set(LEVELDB_BUILD_TESTS OFF CACHE BOOL "Disable LevelDB tests")
|
| 130 |
-
set(LEVELDB_BUILD_BENCHMARKS OFF CACHE BOOL "Disable LevelDB benchmarks")
|
| 131 |
-
set(LEVELDB_INSTALL OFF CACHE BOOL "Disable LevelDB install")
|
| 132 |
-
add_subdirectory("third_party/leveldb" EXCLUDE_FROM_ALL)
|
| 133 |
-
restore_compile_flags()
|
| 134 |
-
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
| 135 |
-
set(WITH_LZ4 ON)
|
| 136 |
-
set(WITH_ZSTD ON)
|
| 137 |
-
set(USE_RTTI ON)
|
| 138 |
-
set(WITH_TESTS OFF)
|
| 139 |
-
set(WITH_BENCHMARK_TOOLS OFF)
|
| 140 |
-
set(WITH_TOOLS OFF)
|
| 141 |
-
set(WITH_ALL_TESTS OFF)
|
| 142 |
-
|
| 143 |
-
add_subdirectory("third_party/rocksdb" EXCLUDE_FROM_ALL)
|
| 144 |
-
restore_compile_flags()
|
| 145 |
-
set(SCN_TESTS OFF)
|
| 146 |
-
set(SCN_EXAMPLES OFF)
|
| 147 |
-
set(SCN_BENCHMARKS OFF)
|
| 148 |
-
set(SCN_DOCS OFF)
|
| 149 |
-
set(SCN_INSTALL OFF)
|
| 150 |
-
set(SCN_PEDANTIC OFF)
|
| 151 |
-
add_subdirectory("third_party/scnlib" EXCLUDE_FROM_ALL)
|
| 152 |
-
restore_compile_flags()
|
| 153 |
-
add_subdirectory("third_party/pybind11" EXCLUDE_FROM_ALL)
|
| 154 |
-
restore_compile_flags()
|
| 155 |
-
add_subdirectory("third_party/toml11" EXCLUDE_FROM_ALL)
|
| 156 |
-
restore_compile_flags()
|
| 157 |
-
set (MI_OVERRIDE OFF)
|
| 158 |
-
add_subdirectory("third_party/mimalloc" EXCLUDE_FROM_ALL)
|
| 159 |
-
restore_compile_flags()
|
| 160 |
-
add_subdirectory("third_party/clickhouse-cpp" EXCLUDE_FROM_ALL)
|
| 161 |
-
TARGET_INCLUDE_DIRECTORIES(clickhouse-cpp-lib
|
| 162 |
-
PUBLIC ${PROJECT_SOURCE_DIR}/third_party/clickhouse-cpp
|
| 163 |
-
)
|
| 164 |
-
TARGET_INCLUDE_DIRECTORIES(clickhouse-cpp-lib-static
|
| 165 |
-
PUBLIC ${PROJECT_SOURCE_DIR}/third_party/clickhouse-cpp
|
| 166 |
-
)
|
| 167 |
-
TARGET_INCLUDE_DIRECTORIES (absl-lib
|
| 168 |
-
PUBLIC ${PROJECT_SOURCE_DIR}/third_party/clickhouse-cpp/contrib
|
| 169 |
-
)
|
| 170 |
-
restore_compile_flags()
|
| 171 |
-
add_subdirectory("third_party/liburing-cmake" EXCLUDE_FROM_ALL)
|
| 172 |
-
restore_compile_flags()
|
| 173 |
-
|
| 174 |
-
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wpedantic")
|
| 175 |
-
|
| 176 |
-
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS}")
|
| 177 |
-
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 ${DEBUG_INFO_FLAGS} ${CMAKE_CXX_FLAGS_ADD}")
|
| 178 |
-
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 ${DEBUG_INFO_FLAGS} -fno-inline ${CMAKE_CXX_FLAGS_ADD}")
|
| 179 |
-
|
| 180 |
-
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILER_FLAGS} ${CMAKE_C_FLAGS_ADD}")
|
| 181 |
-
set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 ${DEBUG_INFO_FLAGS} ${CMAKE_C_FLAGS_ADD}")
|
| 182 |
-
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 ${DEBUG_INFO_FLAGS} -fno-inline ${CMAKE_C_FLAGS_ADD}")
|
| 183 |
-
|
| 184 |
-
set (CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${COMPILER_FLAGS} ${CMAKE_ASM_FLAGS_ADD}")
|
| 185 |
-
set (CMAKE_ASM_FLAGS_RELWITHDEBINFO "${CMAKE_ASM_FLAGS_RELWITHDEBINFO} -O3 ${DEBUG_INFO_FLAGS} ${CMAKE_ASM_FLAGS_ADD}")
|
| 186 |
-
set (CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -O0 ${DEBUG_INFO_FLAGS} -fno-inline ${CMAKE_ASM_FLAGS_ADD}")
|
| 187 |
-
|
| 188 |
-
set(Boost_USE_STATIC_LIBS ON)
|
| 189 |
-
set(FDB_VERSION 7.1.5-ibe)
|
| 190 |
-
|
| 191 |
-
find_package(Threads REQUIRED)
|
| 192 |
-
find_package(Boost REQUIRED COMPONENTS filesystem system program_options)
|
| 193 |
-
find_library(LIBUV_LIBRARY NAMES libuv1)
|
| 194 |
-
enable_testing()
|
| 195 |
-
|
| 196 |
-
include(cmake/CodeCoverage.cmake)
|
| 197 |
-
include(cmake/CLangFormat.cmake)
|
| 198 |
-
include(cmake/CLangTidy.cmake)
|
| 199 |
-
include(cmake/Target.cmake)
|
| 200 |
-
include(cmake/DumpConfig.cmake)
|
| 201 |
-
include(cmake/Jemalloc.cmake)
|
| 202 |
-
include(cmake/ApacheArrow.cmake)
|
| 203 |
-
include(cmake/AddCrate.cmake)
|
| 204 |
-
configure_file(cmake/CTestCustom.cmake ${CMAKE_BINARY_DIR} @ONLY)
|
| 205 |
-
|
| 206 |
-
add_subdirectory(src)
|
| 207 |
-
add_subdirectory(tests)
|
| 208 |
-
add_subdirectory(benchmarks)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/Cargo.lock
DELETED
|
@@ -1,2139 +0,0 @@
|
|
| 1 |
-
# This file is automatically @generated by Cargo.
|
| 2 |
-
# It is not intended for manual editing.
|
| 3 |
-
version = 4
|
| 4 |
-
|
| 5 |
-
[[package]]
|
| 6 |
-
name = "aho-corasick"
|
| 7 |
-
version = "1.1.3"
|
| 8 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 9 |
-
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
|
| 10 |
-
dependencies = [
|
| 11 |
-
"memchr",
|
| 12 |
-
]
|
| 13 |
-
|
| 14 |
-
[[package]]
|
| 15 |
-
name = "android-tzdata"
|
| 16 |
-
version = "0.1.1"
|
| 17 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 18 |
-
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
| 19 |
-
|
| 20 |
-
[[package]]
|
| 21 |
-
name = "android_system_properties"
|
| 22 |
-
version = "0.1.5"
|
| 23 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 24 |
-
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
| 25 |
-
dependencies = [
|
| 26 |
-
"libc",
|
| 27 |
-
]
|
| 28 |
-
|
| 29 |
-
[[package]]
|
| 30 |
-
name = "anes"
|
| 31 |
-
version = "0.1.6"
|
| 32 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 33 |
-
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
| 34 |
-
|
| 35 |
-
[[package]]
|
| 36 |
-
name = "ansi_term"
|
| 37 |
-
version = "0.12.1"
|
| 38 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 39 |
-
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
|
| 40 |
-
dependencies = [
|
| 41 |
-
"winapi",
|
| 42 |
-
]
|
| 43 |
-
|
| 44 |
-
[[package]]
|
| 45 |
-
name = "anstream"
|
| 46 |
-
version = "0.6.18"
|
| 47 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 48 |
-
checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
|
| 49 |
-
dependencies = [
|
| 50 |
-
"anstyle",
|
| 51 |
-
"anstyle-parse",
|
| 52 |
-
"anstyle-query",
|
| 53 |
-
"anstyle-wincon",
|
| 54 |
-
"colorchoice",
|
| 55 |
-
"is_terminal_polyfill",
|
| 56 |
-
"utf8parse",
|
| 57 |
-
]
|
| 58 |
-
|
| 59 |
-
[[package]]
|
| 60 |
-
name = "anstyle"
|
| 61 |
-
version = "1.0.10"
|
| 62 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 63 |
-
checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
|
| 64 |
-
|
| 65 |
-
[[package]]
|
| 66 |
-
name = "anstyle-parse"
|
| 67 |
-
version = "0.2.6"
|
| 68 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 69 |
-
checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
|
| 70 |
-
dependencies = [
|
| 71 |
-
"utf8parse",
|
| 72 |
-
]
|
| 73 |
-
|
| 74 |
-
[[package]]
|
| 75 |
-
name = "anstyle-query"
|
| 76 |
-
version = "1.1.2"
|
| 77 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 78 |
-
checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
|
| 79 |
-
dependencies = [
|
| 80 |
-
"windows-sys 0.59.0",
|
| 81 |
-
]
|
| 82 |
-
|
| 83 |
-
[[package]]
|
| 84 |
-
name = "anstyle-wincon"
|
| 85 |
-
version = "3.0.7"
|
| 86 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 87 |
-
checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
|
| 88 |
-
dependencies = [
|
| 89 |
-
"anstyle",
|
| 90 |
-
"once_cell",
|
| 91 |
-
"windows-sys 0.59.0",
|
| 92 |
-
]
|
| 93 |
-
|
| 94 |
-
[[package]]
|
| 95 |
-
name = "anyhow"
|
| 96 |
-
version = "1.0.94"
|
| 97 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 98 |
-
checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7"
|
| 99 |
-
|
| 100 |
-
[[package]]
|
| 101 |
-
name = "atomic-wait"
|
| 102 |
-
version = "1.1.0"
|
| 103 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 104 |
-
checksum = "a55b94919229f2c42292fd71ffa4b75e83193bffdd77b1e858cd55fd2d0b0ea8"
|
| 105 |
-
dependencies = [
|
| 106 |
-
"libc",
|
| 107 |
-
"windows-sys 0.42.0",
|
| 108 |
-
]
|
| 109 |
-
|
| 110 |
-
[[package]]
|
| 111 |
-
name = "atty"
|
| 112 |
-
version = "0.2.14"
|
| 113 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 114 |
-
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
| 115 |
-
dependencies = [
|
| 116 |
-
"hermit-abi 0.1.19",
|
| 117 |
-
"libc",
|
| 118 |
-
"winapi",
|
| 119 |
-
]
|
| 120 |
-
|
| 121 |
-
[[package]]
|
| 122 |
-
name = "autocfg"
|
| 123 |
-
version = "1.4.0"
|
| 124 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 125 |
-
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
| 126 |
-
|
| 127 |
-
[[package]]
|
| 128 |
-
name = "bindgen"
|
| 129 |
-
version = "0.69.5"
|
| 130 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 131 |
-
checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
|
| 132 |
-
dependencies = [
|
| 133 |
-
"bitflags 2.6.0",
|
| 134 |
-
"cexpr",
|
| 135 |
-
"clang-sys",
|
| 136 |
-
"itertools 0.12.1",
|
| 137 |
-
"lazy_static",
|
| 138 |
-
"lazycell",
|
| 139 |
-
"proc-macro2",
|
| 140 |
-
"quote",
|
| 141 |
-
"regex",
|
| 142 |
-
"rustc-hash 1.1.0",
|
| 143 |
-
"shlex",
|
| 144 |
-
"syn 2.0.100",
|
| 145 |
-
]
|
| 146 |
-
|
| 147 |
-
[[package]]
|
| 148 |
-
name = "bindgen"
|
| 149 |
-
version = "0.71.1"
|
| 150 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 151 |
-
checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3"
|
| 152 |
-
dependencies = [
|
| 153 |
-
"bitflags 2.6.0",
|
| 154 |
-
"cexpr",
|
| 155 |
-
"clang-sys",
|
| 156 |
-
"itertools 0.12.1",
|
| 157 |
-
"log",
|
| 158 |
-
"prettyplease",
|
| 159 |
-
"proc-macro2",
|
| 160 |
-
"quote",
|
| 161 |
-
"regex",
|
| 162 |
-
"rustc-hash 2.1.1",
|
| 163 |
-
"shlex",
|
| 164 |
-
"syn 2.0.100",
|
| 165 |
-
]
|
| 166 |
-
|
| 167 |
-
[[package]]
|
| 168 |
-
name = "bitflags"
|
| 169 |
-
version = "1.3.2"
|
| 170 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 171 |
-
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
| 172 |
-
|
| 173 |
-
[[package]]
|
| 174 |
-
name = "bitflags"
|
| 175 |
-
version = "2.6.0"
|
| 176 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 177 |
-
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
|
| 178 |
-
|
| 179 |
-
[[package]]
|
| 180 |
-
name = "bumpalo"
|
| 181 |
-
version = "3.16.0"
|
| 182 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 183 |
-
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
| 184 |
-
|
| 185 |
-
[[package]]
|
| 186 |
-
name = "byteorder"
|
| 187 |
-
version = "1.5.0"
|
| 188 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 189 |
-
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
| 190 |
-
|
| 191 |
-
[[package]]
|
| 192 |
-
name = "bzip2-sys"
|
| 193 |
-
version = "0.1.11+1.0.8"
|
| 194 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 195 |
-
checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
|
| 196 |
-
dependencies = [
|
| 197 |
-
"cc",
|
| 198 |
-
"libc",
|
| 199 |
-
"pkg-config",
|
| 200 |
-
]
|
| 201 |
-
|
| 202 |
-
[[package]]
|
| 203 |
-
name = "cast"
|
| 204 |
-
version = "0.3.0"
|
| 205 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 206 |
-
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
| 207 |
-
|
| 208 |
-
[[package]]
|
| 209 |
-
name = "cc"
|
| 210 |
-
version = "1.2.2"
|
| 211 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 212 |
-
checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
|
| 213 |
-
dependencies = [
|
| 214 |
-
"jobserver",
|
| 215 |
-
"libc",
|
| 216 |
-
"shlex",
|
| 217 |
-
]
|
| 218 |
-
|
| 219 |
-
[[package]]
|
| 220 |
-
name = "cexpr"
|
| 221 |
-
version = "0.6.0"
|
| 222 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 223 |
-
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
| 224 |
-
dependencies = [
|
| 225 |
-
"nom",
|
| 226 |
-
]
|
| 227 |
-
|
| 228 |
-
[[package]]
|
| 229 |
-
name = "cfg-if"
|
| 230 |
-
version = "1.0.0"
|
| 231 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 232 |
-
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
| 233 |
-
|
| 234 |
-
[[package]]
|
| 235 |
-
name = "cfg_aliases"
|
| 236 |
-
version = "0.2.1"
|
| 237 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 238 |
-
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
| 239 |
-
|
| 240 |
-
[[package]]
|
| 241 |
-
name = "chrono"
|
| 242 |
-
version = "0.4.38"
|
| 243 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 244 |
-
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
|
| 245 |
-
dependencies = [
|
| 246 |
-
"android-tzdata",
|
| 247 |
-
"iana-time-zone",
|
| 248 |
-
"js-sys",
|
| 249 |
-
"num-traits",
|
| 250 |
-
"wasm-bindgen",
|
| 251 |
-
"windows-targets",
|
| 252 |
-
]
|
| 253 |
-
|
| 254 |
-
[[package]]
|
| 255 |
-
name = "chunk_engine"
|
| 256 |
-
version = "0.1.11"
|
| 257 |
-
dependencies = [
|
| 258 |
-
"anyhow",
|
| 259 |
-
"byteorder",
|
| 260 |
-
"clap 4.5.22",
|
| 261 |
-
"crc32c",
|
| 262 |
-
"criterion",
|
| 263 |
-
"cxx",
|
| 264 |
-
"cxx-build",
|
| 265 |
-
"dashmap",
|
| 266 |
-
"derse",
|
| 267 |
-
"lazy_static",
|
| 268 |
-
"libc",
|
| 269 |
-
"lockmap",
|
| 270 |
-
"rand",
|
| 271 |
-
"rocksdb",
|
| 272 |
-
"rolling-file",
|
| 273 |
-
"serde",
|
| 274 |
-
"static_assertions",
|
| 275 |
-
"tempfile",
|
| 276 |
-
"tinyvec",
|
| 277 |
-
"toml",
|
| 278 |
-
"tracing",
|
| 279 |
-
"tracing-appender",
|
| 280 |
-
"tracing-subscriber",
|
| 281 |
-
]
|
| 282 |
-
|
| 283 |
-
[[package]]
|
| 284 |
-
name = "ciborium"
|
| 285 |
-
version = "0.2.2"
|
| 286 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 287 |
-
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
|
| 288 |
-
dependencies = [
|
| 289 |
-
"ciborium-io",
|
| 290 |
-
"ciborium-ll",
|
| 291 |
-
"serde",
|
| 292 |
-
]
|
| 293 |
-
|
| 294 |
-
[[package]]
|
| 295 |
-
name = "ciborium-io"
|
| 296 |
-
version = "0.2.2"
|
| 297 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 298 |
-
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
|
| 299 |
-
|
| 300 |
-
[[package]]
|
| 301 |
-
name = "ciborium-ll"
|
| 302 |
-
version = "0.2.2"
|
| 303 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 304 |
-
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
|
| 305 |
-
dependencies = [
|
| 306 |
-
"ciborium-io",
|
| 307 |
-
"half",
|
| 308 |
-
]
|
| 309 |
-
|
| 310 |
-
[[package]]
|
| 311 |
-
name = "clang-sys"
|
| 312 |
-
version = "1.8.1"
|
| 313 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 314 |
-
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
|
| 315 |
-
dependencies = [
|
| 316 |
-
"glob",
|
| 317 |
-
"libc",
|
| 318 |
-
"libloading",
|
| 319 |
-
]
|
| 320 |
-
|
| 321 |
-
[[package]]
|
| 322 |
-
name = "clap"
|
| 323 |
-
version = "2.34.0"
|
| 324 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 325 |
-
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
|
| 326 |
-
dependencies = [
|
| 327 |
-
"ansi_term",
|
| 328 |
-
"atty",
|
| 329 |
-
"bitflags 1.3.2",
|
| 330 |
-
"strsim 0.8.0",
|
| 331 |
-
"textwrap",
|
| 332 |
-
"unicode-width",
|
| 333 |
-
"vec_map",
|
| 334 |
-
]
|
| 335 |
-
|
| 336 |
-
[[package]]
|
| 337 |
-
name = "clap"
|
| 338 |
-
version = "4.5.22"
|
| 339 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 340 |
-
checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b"
|
| 341 |
-
dependencies = [
|
| 342 |
-
"clap_builder",
|
| 343 |
-
"clap_derive",
|
| 344 |
-
]
|
| 345 |
-
|
| 346 |
-
[[package]]
|
| 347 |
-
name = "clap_builder"
|
| 348 |
-
version = "4.5.22"
|
| 349 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 350 |
-
checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1"
|
| 351 |
-
dependencies = [
|
| 352 |
-
"anstream",
|
| 353 |
-
"anstyle",
|
| 354 |
-
"clap_lex",
|
| 355 |
-
"strsim 0.11.1",
|
| 356 |
-
]
|
| 357 |
-
|
| 358 |
-
[[package]]
|
| 359 |
-
name = "clap_derive"
|
| 360 |
-
version = "4.5.18"
|
| 361 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 362 |
-
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
|
| 363 |
-
dependencies = [
|
| 364 |
-
"heck 0.5.0",
|
| 365 |
-
"proc-macro2",
|
| 366 |
-
"quote",
|
| 367 |
-
"syn 2.0.100",
|
| 368 |
-
]
|
| 369 |
-
|
| 370 |
-
[[package]]
|
| 371 |
-
name = "clap_lex"
|
| 372 |
-
version = "0.7.3"
|
| 373 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 374 |
-
checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7"
|
| 375 |
-
|
| 376 |
-
[[package]]
|
| 377 |
-
name = "codespan-reporting"
|
| 378 |
-
version = "0.11.1"
|
| 379 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 380 |
-
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
|
| 381 |
-
dependencies = [
|
| 382 |
-
"termcolor",
|
| 383 |
-
"unicode-width",
|
| 384 |
-
]
|
| 385 |
-
|
| 386 |
-
[[package]]
|
| 387 |
-
name = "colorchoice"
|
| 388 |
-
version = "1.0.3"
|
| 389 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 390 |
-
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
|
| 391 |
-
|
| 392 |
-
[[package]]
|
| 393 |
-
name = "core-foundation-sys"
|
| 394 |
-
version = "0.8.7"
|
| 395 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 396 |
-
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
| 397 |
-
|
| 398 |
-
[[package]]
|
| 399 |
-
name = "crc32c"
|
| 400 |
-
version = "0.6.8"
|
| 401 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 402 |
-
checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47"
|
| 403 |
-
dependencies = [
|
| 404 |
-
"rustc_version",
|
| 405 |
-
]
|
| 406 |
-
|
| 407 |
-
[[package]]
|
| 408 |
-
name = "criterion"
|
| 409 |
-
version = "0.5.1"
|
| 410 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 411 |
-
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
|
| 412 |
-
dependencies = [
|
| 413 |
-
"anes",
|
| 414 |
-
"cast",
|
| 415 |
-
"ciborium",
|
| 416 |
-
"clap 4.5.22",
|
| 417 |
-
"criterion-plot",
|
| 418 |
-
"is-terminal",
|
| 419 |
-
"itertools 0.10.5",
|
| 420 |
-
"num-traits",
|
| 421 |
-
"once_cell",
|
| 422 |
-
"oorandom",
|
| 423 |
-
"plotters",
|
| 424 |
-
"rayon",
|
| 425 |
-
"regex",
|
| 426 |
-
"serde",
|
| 427 |
-
"serde_derive",
|
| 428 |
-
"serde_json",
|
| 429 |
-
"tinytemplate",
|
| 430 |
-
"walkdir",
|
| 431 |
-
]
|
| 432 |
-
|
| 433 |
-
[[package]]
|
| 434 |
-
name = "criterion-plot"
|
| 435 |
-
version = "0.5.0"
|
| 436 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 437 |
-
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
|
| 438 |
-
dependencies = [
|
| 439 |
-
"cast",
|
| 440 |
-
"itertools 0.10.5",
|
| 441 |
-
]
|
| 442 |
-
|
| 443 |
-
[[package]]
|
| 444 |
-
name = "crossbeam-channel"
|
| 445 |
-
version = "0.5.13"
|
| 446 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 447 |
-
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
|
| 448 |
-
dependencies = [
|
| 449 |
-
"crossbeam-utils",
|
| 450 |
-
]
|
| 451 |
-
|
| 452 |
-
[[package]]
|
| 453 |
-
name = "crossbeam-deque"
|
| 454 |
-
version = "0.8.5"
|
| 455 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 456 |
-
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
| 457 |
-
dependencies = [
|
| 458 |
-
"crossbeam-epoch",
|
| 459 |
-
"crossbeam-utils",
|
| 460 |
-
]
|
| 461 |
-
|
| 462 |
-
[[package]]
|
| 463 |
-
name = "crossbeam-epoch"
|
| 464 |
-
version = "0.9.18"
|
| 465 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 466 |
-
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
| 467 |
-
dependencies = [
|
| 468 |
-
"crossbeam-utils",
|
| 469 |
-
]
|
| 470 |
-
|
| 471 |
-
[[package]]
|
| 472 |
-
name = "crossbeam-utils"
|
| 473 |
-
version = "0.8.20"
|
| 474 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 475 |
-
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
|
| 476 |
-
|
| 477 |
-
[[package]]
|
| 478 |
-
name = "crunchy"
|
| 479 |
-
version = "0.2.2"
|
| 480 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 481 |
-
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
| 482 |
-
|
| 483 |
-
[[package]]
|
| 484 |
-
name = "cxx"
|
| 485 |
-
version = "1.0.133"
|
| 486 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 487 |
-
checksum = "05e1ec88093d2abd9cf1b09ffd979136b8e922bf31cad966a8fe0d73233112ef"
|
| 488 |
-
dependencies = [
|
| 489 |
-
"cc",
|
| 490 |
-
"cxxbridge-cmd",
|
| 491 |
-
"cxxbridge-flags",
|
| 492 |
-
"cxxbridge-macro",
|
| 493 |
-
"foldhash",
|
| 494 |
-
"link-cplusplus",
|
| 495 |
-
]
|
| 496 |
-
|
| 497 |
-
[[package]]
|
| 498 |
-
name = "cxx-build"
|
| 499 |
-
version = "1.0.133"
|
| 500 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 501 |
-
checksum = "9afa390d956ee7ccb41aeed7ed7856ab3ffb4fc587e7216be7e0f83e949b4e6c"
|
| 502 |
-
dependencies = [
|
| 503 |
-
"cc",
|
| 504 |
-
"codespan-reporting",
|
| 505 |
-
"proc-macro2",
|
| 506 |
-
"quote",
|
| 507 |
-
"scratch",
|
| 508 |
-
"syn 2.0.100",
|
| 509 |
-
]
|
| 510 |
-
|
| 511 |
-
[[package]]
|
| 512 |
-
name = "cxxbridge-cmd"
|
| 513 |
-
version = "1.0.133"
|
| 514 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 515 |
-
checksum = "3c23bfff654d6227cbc83de8e059d2f8678ede5fc3a6c5a35d5c379983cc61e6"
|
| 516 |
-
dependencies = [
|
| 517 |
-
"clap 4.5.22",
|
| 518 |
-
"codespan-reporting",
|
| 519 |
-
"proc-macro2",
|
| 520 |
-
"quote",
|
| 521 |
-
"syn 2.0.100",
|
| 522 |
-
]
|
| 523 |
-
|
| 524 |
-
[[package]]
|
| 525 |
-
name = "cxxbridge-flags"
|
| 526 |
-
version = "1.0.133"
|
| 527 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 528 |
-
checksum = "f7c01b36e22051bc6928a78583f1621abaaf7621561c2ada1b00f7878fbe2caa"
|
| 529 |
-
|
| 530 |
-
[[package]]
|
| 531 |
-
name = "cxxbridge-macro"
|
| 532 |
-
version = "1.0.133"
|
| 533 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 534 |
-
checksum = "f6e14013136fac689345d17b9a6df55977251f11d333c0a571e8d963b55e1f95"
|
| 535 |
-
dependencies = [
|
| 536 |
-
"proc-macro2",
|
| 537 |
-
"quote",
|
| 538 |
-
"rustversion",
|
| 539 |
-
"syn 2.0.100",
|
| 540 |
-
]
|
| 541 |
-
|
| 542 |
-
[[package]]
|
| 543 |
-
name = "dashmap"
|
| 544 |
-
version = "6.1.0"
|
| 545 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 546 |
-
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
|
| 547 |
-
dependencies = [
|
| 548 |
-
"cfg-if",
|
| 549 |
-
"crossbeam-utils",
|
| 550 |
-
"hashbrown 0.14.5",
|
| 551 |
-
"lock_api",
|
| 552 |
-
"once_cell",
|
| 553 |
-
"parking_lot_core",
|
| 554 |
-
]
|
| 555 |
-
|
| 556 |
-
[[package]]
|
| 557 |
-
name = "deranged"
|
| 558 |
-
version = "0.3.11"
|
| 559 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 560 |
-
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
|
| 561 |
-
dependencies = [
|
| 562 |
-
"powerfmt",
|
| 563 |
-
]
|
| 564 |
-
|
| 565 |
-
[[package]]
|
| 566 |
-
name = "derse"
|
| 567 |
-
version = "0.1.32"
|
| 568 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 569 |
-
checksum = "ddcfe91e406c110568015f9cd5934396bcfdf745c3c265c00a6e5c381f0fcde5"
|
| 570 |
-
dependencies = [
|
| 571 |
-
"derse-derive",
|
| 572 |
-
"thiserror",
|
| 573 |
-
"tinyvec",
|
| 574 |
-
]
|
| 575 |
-
|
| 576 |
-
[[package]]
|
| 577 |
-
name = "derse-derive"
|
| 578 |
-
version = "0.1.15"
|
| 579 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 580 |
-
checksum = "effbaf2997637f96a3b52502d1b4d8ca7a7f4a55a5206ef6d4d71712fa2368be"
|
| 581 |
-
dependencies = [
|
| 582 |
-
"proc-macro-crate",
|
| 583 |
-
"proc-macro2",
|
| 584 |
-
"quote",
|
| 585 |
-
"syn 2.0.100",
|
| 586 |
-
]
|
| 587 |
-
|
| 588 |
-
[[package]]
|
| 589 |
-
name = "either"
|
| 590 |
-
version = "1.13.0"
|
| 591 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 592 |
-
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
|
| 593 |
-
|
| 594 |
-
[[package]]
|
| 595 |
-
name = "equivalent"
|
| 596 |
-
version = "1.0.1"
|
| 597 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 598 |
-
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
| 599 |
-
|
| 600 |
-
[[package]]
|
| 601 |
-
name = "errno"
|
| 602 |
-
version = "0.3.10"
|
| 603 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 604 |
-
checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
|
| 605 |
-
dependencies = [
|
| 606 |
-
"libc",
|
| 607 |
-
"windows-sys 0.59.0",
|
| 608 |
-
]
|
| 609 |
-
|
| 610 |
-
[[package]]
|
| 611 |
-
name = "fastrand"
|
| 612 |
-
version = "2.2.0"
|
| 613 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 614 |
-
checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"
|
| 615 |
-
|
| 616 |
-
[[package]]
|
| 617 |
-
name = "foldhash"
|
| 618 |
-
version = "0.1.3"
|
| 619 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 620 |
-
checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
|
| 621 |
-
|
| 622 |
-
[[package]]
|
| 623 |
-
name = "getrandom"
|
| 624 |
-
version = "0.2.15"
|
| 625 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 626 |
-
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
| 627 |
-
dependencies = [
|
| 628 |
-
"cfg-if",
|
| 629 |
-
"libc",
|
| 630 |
-
"wasi 0.11.0+wasi-snapshot-preview1",
|
| 631 |
-
]
|
| 632 |
-
|
| 633 |
-
[[package]]
|
| 634 |
-
name = "getrandom"
|
| 635 |
-
version = "0.3.1"
|
| 636 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 637 |
-
checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
|
| 638 |
-
dependencies = [
|
| 639 |
-
"cfg-if",
|
| 640 |
-
"libc",
|
| 641 |
-
"wasi 0.13.3+wasi-0.2.2",
|
| 642 |
-
"windows-targets",
|
| 643 |
-
]
|
| 644 |
-
|
| 645 |
-
[[package]]
|
| 646 |
-
name = "glob"
|
| 647 |
-
version = "0.3.1"
|
| 648 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 649 |
-
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
| 650 |
-
|
| 651 |
-
[[package]]
|
| 652 |
-
name = "half"
|
| 653 |
-
version = "2.4.1"
|
| 654 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 655 |
-
checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
|
| 656 |
-
dependencies = [
|
| 657 |
-
"cfg-if",
|
| 658 |
-
"crunchy",
|
| 659 |
-
]
|
| 660 |
-
|
| 661 |
-
[[package]]
|
| 662 |
-
name = "hashbrown"
|
| 663 |
-
version = "0.14.5"
|
| 664 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 665 |
-
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
| 666 |
-
|
| 667 |
-
[[package]]
|
| 668 |
-
name = "hashbrown"
|
| 669 |
-
version = "0.15.2"
|
| 670 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 671 |
-
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
|
| 672 |
-
|
| 673 |
-
[[package]]
|
| 674 |
-
name = "heck"
|
| 675 |
-
version = "0.3.3"
|
| 676 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 677 |
-
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
|
| 678 |
-
dependencies = [
|
| 679 |
-
"unicode-segmentation",
|
| 680 |
-
]
|
| 681 |
-
|
| 682 |
-
[[package]]
|
| 683 |
-
name = "heck"
|
| 684 |
-
version = "0.5.0"
|
| 685 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 686 |
-
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
| 687 |
-
|
| 688 |
-
[[package]]
|
| 689 |
-
name = "hermit-abi"
|
| 690 |
-
version = "0.1.19"
|
| 691 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 692 |
-
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
|
| 693 |
-
dependencies = [
|
| 694 |
-
"libc",
|
| 695 |
-
]
|
| 696 |
-
|
| 697 |
-
[[package]]
|
| 698 |
-
name = "hermit-abi"
|
| 699 |
-
version = "0.4.0"
|
| 700 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 701 |
-
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
|
| 702 |
-
|
| 703 |
-
[[package]]
|
| 704 |
-
name = "hf3fs-usrbio-sys"
|
| 705 |
-
version = "0.1.0"
|
| 706 |
-
dependencies = [
|
| 707 |
-
"bindgen 0.71.1",
|
| 708 |
-
"shared_memory",
|
| 709 |
-
"uuid",
|
| 710 |
-
]
|
| 711 |
-
|
| 712 |
-
[[package]]
|
| 713 |
-
name = "iana-time-zone"
|
| 714 |
-
version = "0.1.61"
|
| 715 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 716 |
-
checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
|
| 717 |
-
dependencies = [
|
| 718 |
-
"android_system_properties",
|
| 719 |
-
"core-foundation-sys",
|
| 720 |
-
"iana-time-zone-haiku",
|
| 721 |
-
"js-sys",
|
| 722 |
-
"wasm-bindgen",
|
| 723 |
-
"windows-core",
|
| 724 |
-
]
|
| 725 |
-
|
| 726 |
-
[[package]]
|
| 727 |
-
name = "iana-time-zone-haiku"
|
| 728 |
-
version = "0.1.2"
|
| 729 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 730 |
-
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
| 731 |
-
dependencies = [
|
| 732 |
-
"cc",
|
| 733 |
-
]
|
| 734 |
-
|
| 735 |
-
[[package]]
|
| 736 |
-
name = "indexmap"
|
| 737 |
-
version = "2.7.0"
|
| 738 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 739 |
-
checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
|
| 740 |
-
dependencies = [
|
| 741 |
-
"equivalent",
|
| 742 |
-
"hashbrown 0.15.2",
|
| 743 |
-
]
|
| 744 |
-
|
| 745 |
-
[[package]]
|
| 746 |
-
name = "is-terminal"
|
| 747 |
-
version = "0.4.13"
|
| 748 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 749 |
-
checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
|
| 750 |
-
dependencies = [
|
| 751 |
-
"hermit-abi 0.4.0",
|
| 752 |
-
"libc",
|
| 753 |
-
"windows-sys 0.52.0",
|
| 754 |
-
]
|
| 755 |
-
|
| 756 |
-
[[package]]
|
| 757 |
-
name = "is_terminal_polyfill"
|
| 758 |
-
version = "1.70.1"
|
| 759 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 760 |
-
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
|
| 761 |
-
|
| 762 |
-
[[package]]
|
| 763 |
-
name = "itertools"
|
| 764 |
-
version = "0.10.5"
|
| 765 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 766 |
-
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
| 767 |
-
dependencies = [
|
| 768 |
-
"either",
|
| 769 |
-
]
|
| 770 |
-
|
| 771 |
-
[[package]]
|
| 772 |
-
name = "itertools"
|
| 773 |
-
version = "0.12.1"
|
| 774 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 775 |
-
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
|
| 776 |
-
dependencies = [
|
| 777 |
-
"either",
|
| 778 |
-
]
|
| 779 |
-
|
| 780 |
-
[[package]]
|
| 781 |
-
name = "itoa"
|
| 782 |
-
version = "1.0.14"
|
| 783 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 784 |
-
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
| 785 |
-
|
| 786 |
-
[[package]]
|
| 787 |
-
name = "jobserver"
|
| 788 |
-
version = "0.1.32"
|
| 789 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 790 |
-
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
|
| 791 |
-
dependencies = [
|
| 792 |
-
"libc",
|
| 793 |
-
]
|
| 794 |
-
|
| 795 |
-
[[package]]
|
| 796 |
-
name = "js-sys"
|
| 797 |
-
version = "0.3.74"
|
| 798 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 799 |
-
checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705"
|
| 800 |
-
dependencies = [
|
| 801 |
-
"once_cell",
|
| 802 |
-
"wasm-bindgen",
|
| 803 |
-
]
|
| 804 |
-
|
| 805 |
-
[[package]]
|
| 806 |
-
name = "lazy_static"
|
| 807 |
-
version = "1.5.0"
|
| 808 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 809 |
-
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
| 810 |
-
|
| 811 |
-
[[package]]
|
| 812 |
-
name = "lazycell"
|
| 813 |
-
version = "1.3.0"
|
| 814 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 815 |
-
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
| 816 |
-
|
| 817 |
-
[[package]]
|
| 818 |
-
name = "libc"
|
| 819 |
-
version = "0.2.167"
|
| 820 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 821 |
-
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
|
| 822 |
-
|
| 823 |
-
[[package]]
|
| 824 |
-
name = "libloading"
|
| 825 |
-
version = "0.8.6"
|
| 826 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 827 |
-
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
|
| 828 |
-
dependencies = [
|
| 829 |
-
"cfg-if",
|
| 830 |
-
"windows-targets",
|
| 831 |
-
]
|
| 832 |
-
|
| 833 |
-
[[package]]
|
| 834 |
-
name = "librocksdb-sys"
|
| 835 |
-
version = "0.16.0+8.10.0"
|
| 836 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 837 |
-
checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c"
|
| 838 |
-
dependencies = [
|
| 839 |
-
"bindgen 0.69.5",
|
| 840 |
-
"bzip2-sys",
|
| 841 |
-
"cc",
|
| 842 |
-
"glob",
|
| 843 |
-
"libc",
|
| 844 |
-
"libz-sys",
|
| 845 |
-
"lz4-sys",
|
| 846 |
-
"zstd-sys",
|
| 847 |
-
]
|
| 848 |
-
|
| 849 |
-
[[package]]
|
| 850 |
-
name = "libz-sys"
|
| 851 |
-
version = "1.1.20"
|
| 852 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 853 |
-
checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472"
|
| 854 |
-
dependencies = [
|
| 855 |
-
"cc",
|
| 856 |
-
"pkg-config",
|
| 857 |
-
"vcpkg",
|
| 858 |
-
]
|
| 859 |
-
|
| 860 |
-
[[package]]
|
| 861 |
-
name = "link-cplusplus"
|
| 862 |
-
version = "1.0.9"
|
| 863 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 864 |
-
checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9"
|
| 865 |
-
dependencies = [
|
| 866 |
-
"cc",
|
| 867 |
-
]
|
| 868 |
-
|
| 869 |
-
[[package]]
|
| 870 |
-
name = "linux-raw-sys"
|
| 871 |
-
version = "0.4.14"
|
| 872 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 873 |
-
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
|
| 874 |
-
|
| 875 |
-
[[package]]
|
| 876 |
-
name = "lock_api"
|
| 877 |
-
version = "0.4.12"
|
| 878 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 879 |
-
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
|
| 880 |
-
dependencies = [
|
| 881 |
-
"autocfg",
|
| 882 |
-
"scopeguard 1.2.0",
|
| 883 |
-
]
|
| 884 |
-
|
| 885 |
-
[[package]]
|
| 886 |
-
name = "lockmap"
|
| 887 |
-
version = "0.1.6"
|
| 888 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 889 |
-
checksum = "8aaaea9efca9e51113b978e9c485d2d16603693b8c82fff6ebe585ebe253f451"
|
| 890 |
-
dependencies = [
|
| 891 |
-
"atomic-wait",
|
| 892 |
-
]
|
| 893 |
-
|
| 894 |
-
[[package]]
|
| 895 |
-
name = "log"
|
| 896 |
-
version = "0.4.22"
|
| 897 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 898 |
-
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
|
| 899 |
-
|
| 900 |
-
[[package]]
|
| 901 |
-
name = "lz4-sys"
|
| 902 |
-
version = "1.11.1+lz4-1.10.0"
|
| 903 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 904 |
-
checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6"
|
| 905 |
-
dependencies = [
|
| 906 |
-
"cc",
|
| 907 |
-
"libc",
|
| 908 |
-
]
|
| 909 |
-
|
| 910 |
-
[[package]]
|
| 911 |
-
name = "memchr"
|
| 912 |
-
version = "2.7.4"
|
| 913 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 914 |
-
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
| 915 |
-
|
| 916 |
-
[[package]]
|
| 917 |
-
name = "memoffset"
|
| 918 |
-
version = "0.6.5"
|
| 919 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 920 |
-
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
|
| 921 |
-
dependencies = [
|
| 922 |
-
"autocfg",
|
| 923 |
-
]
|
| 924 |
-
|
| 925 |
-
[[package]]
|
| 926 |
-
name = "minimal-lexical"
|
| 927 |
-
version = "0.2.1"
|
| 928 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 929 |
-
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
| 930 |
-
|
| 931 |
-
[[package]]
|
| 932 |
-
name = "nix"
|
| 933 |
-
version = "0.23.2"
|
| 934 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 935 |
-
checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
|
| 936 |
-
dependencies = [
|
| 937 |
-
"bitflags 1.3.2",
|
| 938 |
-
"cc",
|
| 939 |
-
"cfg-if",
|
| 940 |
-
"libc",
|
| 941 |
-
"memoffset",
|
| 942 |
-
]
|
| 943 |
-
|
| 944 |
-
[[package]]
|
| 945 |
-
name = "nix"
|
| 946 |
-
version = "0.29.0"
|
| 947 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 948 |
-
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
|
| 949 |
-
dependencies = [
|
| 950 |
-
"bitflags 2.6.0",
|
| 951 |
-
"cfg-if",
|
| 952 |
-
"cfg_aliases",
|
| 953 |
-
"libc",
|
| 954 |
-
]
|
| 955 |
-
|
| 956 |
-
[[package]]
|
| 957 |
-
name = "nom"
|
| 958 |
-
version = "7.1.3"
|
| 959 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 960 |
-
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
| 961 |
-
dependencies = [
|
| 962 |
-
"memchr",
|
| 963 |
-
"minimal-lexical",
|
| 964 |
-
]
|
| 965 |
-
|
| 966 |
-
[[package]]
|
| 967 |
-
name = "nu-ansi-term"
|
| 968 |
-
version = "0.46.0"
|
| 969 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 970 |
-
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
|
| 971 |
-
dependencies = [
|
| 972 |
-
"overload",
|
| 973 |
-
"winapi",
|
| 974 |
-
]
|
| 975 |
-
|
| 976 |
-
[[package]]
|
| 977 |
-
name = "num-conv"
|
| 978 |
-
version = "0.1.0"
|
| 979 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 980 |
-
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
| 981 |
-
|
| 982 |
-
[[package]]
|
| 983 |
-
name = "num-traits"
|
| 984 |
-
version = "0.2.19"
|
| 985 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 986 |
-
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
| 987 |
-
dependencies = [
|
| 988 |
-
"autocfg",
|
| 989 |
-
]
|
| 990 |
-
|
| 991 |
-
[[package]]
|
| 992 |
-
name = "once_cell"
|
| 993 |
-
version = "1.20.2"
|
| 994 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 995 |
-
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
|
| 996 |
-
|
| 997 |
-
[[package]]
|
| 998 |
-
name = "oorandom"
|
| 999 |
-
version = "11.1.4"
|
| 1000 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1001 |
-
checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
|
| 1002 |
-
|
| 1003 |
-
[[package]]
|
| 1004 |
-
name = "overload"
|
| 1005 |
-
version = "0.1.1"
|
| 1006 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1007 |
-
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
| 1008 |
-
|
| 1009 |
-
[[package]]
|
| 1010 |
-
name = "parking_lot_core"
|
| 1011 |
-
version = "0.9.10"
|
| 1012 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1013 |
-
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
|
| 1014 |
-
dependencies = [
|
| 1015 |
-
"cfg-if",
|
| 1016 |
-
"libc",
|
| 1017 |
-
"redox_syscall",
|
| 1018 |
-
"smallvec",
|
| 1019 |
-
"windows-targets",
|
| 1020 |
-
]
|
| 1021 |
-
|
| 1022 |
-
[[package]]
|
| 1023 |
-
name = "pin-project-lite"
|
| 1024 |
-
version = "0.2.15"
|
| 1025 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1026 |
-
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
|
| 1027 |
-
|
| 1028 |
-
[[package]]
|
| 1029 |
-
name = "pkg-config"
|
| 1030 |
-
version = "0.3.31"
|
| 1031 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1032 |
-
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
|
| 1033 |
-
|
| 1034 |
-
[[package]]
|
| 1035 |
-
name = "plotters"
|
| 1036 |
-
version = "0.3.7"
|
| 1037 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1038 |
-
checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
|
| 1039 |
-
dependencies = [
|
| 1040 |
-
"num-traits",
|
| 1041 |
-
"plotters-backend",
|
| 1042 |
-
"plotters-svg",
|
| 1043 |
-
"wasm-bindgen",
|
| 1044 |
-
"web-sys",
|
| 1045 |
-
]
|
| 1046 |
-
|
| 1047 |
-
[[package]]
|
| 1048 |
-
name = "plotters-backend"
|
| 1049 |
-
version = "0.3.7"
|
| 1050 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1051 |
-
checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
|
| 1052 |
-
|
| 1053 |
-
[[package]]
|
| 1054 |
-
name = "plotters-svg"
|
| 1055 |
-
version = "0.3.7"
|
| 1056 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1057 |
-
checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
|
| 1058 |
-
dependencies = [
|
| 1059 |
-
"plotters-backend",
|
| 1060 |
-
]
|
| 1061 |
-
|
| 1062 |
-
[[package]]
|
| 1063 |
-
name = "powerfmt"
|
| 1064 |
-
version = "0.2.0"
|
| 1065 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1066 |
-
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
| 1067 |
-
|
| 1068 |
-
[[package]]
|
| 1069 |
-
name = "ppv-lite86"
|
| 1070 |
-
version = "0.2.20"
|
| 1071 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1072 |
-
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
|
| 1073 |
-
dependencies = [
|
| 1074 |
-
"zerocopy",
|
| 1075 |
-
]
|
| 1076 |
-
|
| 1077 |
-
[[package]]
|
| 1078 |
-
name = "prettyplease"
|
| 1079 |
-
version = "0.2.30"
|
| 1080 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1081 |
-
checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a"
|
| 1082 |
-
dependencies = [
|
| 1083 |
-
"proc-macro2",
|
| 1084 |
-
"syn 2.0.100",
|
| 1085 |
-
]
|
| 1086 |
-
|
| 1087 |
-
[[package]]
|
| 1088 |
-
name = "proc-macro-crate"
|
| 1089 |
-
version = "3.2.0"
|
| 1090 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1091 |
-
checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
|
| 1092 |
-
dependencies = [
|
| 1093 |
-
"toml_edit",
|
| 1094 |
-
]
|
| 1095 |
-
|
| 1096 |
-
[[package]]
|
| 1097 |
-
name = "proc-macro-error"
|
| 1098 |
-
version = "1.0.4"
|
| 1099 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1100 |
-
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
| 1101 |
-
dependencies = [
|
| 1102 |
-
"proc-macro-error-attr",
|
| 1103 |
-
"proc-macro2",
|
| 1104 |
-
"quote",
|
| 1105 |
-
"syn 1.0.109",
|
| 1106 |
-
"version_check",
|
| 1107 |
-
]
|
| 1108 |
-
|
| 1109 |
-
[[package]]
|
| 1110 |
-
name = "proc-macro-error-attr"
|
| 1111 |
-
version = "1.0.4"
|
| 1112 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1113 |
-
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
| 1114 |
-
dependencies = [
|
| 1115 |
-
"proc-macro2",
|
| 1116 |
-
"quote",
|
| 1117 |
-
"version_check",
|
| 1118 |
-
]
|
| 1119 |
-
|
| 1120 |
-
[[package]]
|
| 1121 |
-
name = "proc-macro2"
|
| 1122 |
-
version = "1.0.92"
|
| 1123 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1124 |
-
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
|
| 1125 |
-
dependencies = [
|
| 1126 |
-
"unicode-ident",
|
| 1127 |
-
]
|
| 1128 |
-
|
| 1129 |
-
[[package]]
|
| 1130 |
-
name = "quote"
|
| 1131 |
-
version = "1.0.37"
|
| 1132 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1133 |
-
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
| 1134 |
-
dependencies = [
|
| 1135 |
-
"proc-macro2",
|
| 1136 |
-
]
|
| 1137 |
-
|
| 1138 |
-
[[package]]
|
| 1139 |
-
name = "rand"
|
| 1140 |
-
version = "0.8.5"
|
| 1141 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1142 |
-
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
| 1143 |
-
dependencies = [
|
| 1144 |
-
"libc",
|
| 1145 |
-
"rand_chacha",
|
| 1146 |
-
"rand_core",
|
| 1147 |
-
]
|
| 1148 |
-
|
| 1149 |
-
[[package]]
|
| 1150 |
-
name = "rand_chacha"
|
| 1151 |
-
version = "0.3.1"
|
| 1152 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1153 |
-
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
| 1154 |
-
dependencies = [
|
| 1155 |
-
"ppv-lite86",
|
| 1156 |
-
"rand_core",
|
| 1157 |
-
]
|
| 1158 |
-
|
| 1159 |
-
[[package]]
|
| 1160 |
-
name = "rand_core"
|
| 1161 |
-
version = "0.6.4"
|
| 1162 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1163 |
-
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
| 1164 |
-
dependencies = [
|
| 1165 |
-
"getrandom 0.2.15",
|
| 1166 |
-
]
|
| 1167 |
-
|
| 1168 |
-
[[package]]
|
| 1169 |
-
name = "rayon"
|
| 1170 |
-
version = "1.10.0"
|
| 1171 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1172 |
-
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
|
| 1173 |
-
dependencies = [
|
| 1174 |
-
"either",
|
| 1175 |
-
"rayon-core",
|
| 1176 |
-
]
|
| 1177 |
-
|
| 1178 |
-
[[package]]
|
| 1179 |
-
name = "rayon-core"
|
| 1180 |
-
version = "1.12.1"
|
| 1181 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1182 |
-
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
|
| 1183 |
-
dependencies = [
|
| 1184 |
-
"crossbeam-deque",
|
| 1185 |
-
"crossbeam-utils",
|
| 1186 |
-
]
|
| 1187 |
-
|
| 1188 |
-
[[package]]
|
| 1189 |
-
name = "redox_syscall"
|
| 1190 |
-
version = "0.5.7"
|
| 1191 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1192 |
-
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
|
| 1193 |
-
dependencies = [
|
| 1194 |
-
"bitflags 2.6.0",
|
| 1195 |
-
]
|
| 1196 |
-
|
| 1197 |
-
[[package]]
|
| 1198 |
-
name = "regex"
|
| 1199 |
-
version = "1.11.1"
|
| 1200 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1201 |
-
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
|
| 1202 |
-
dependencies = [
|
| 1203 |
-
"aho-corasick",
|
| 1204 |
-
"memchr",
|
| 1205 |
-
"regex-automata",
|
| 1206 |
-
"regex-syntax",
|
| 1207 |
-
]
|
| 1208 |
-
|
| 1209 |
-
[[package]]
|
| 1210 |
-
name = "regex-automata"
|
| 1211 |
-
version = "0.4.9"
|
| 1212 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1213 |
-
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
|
| 1214 |
-
dependencies = [
|
| 1215 |
-
"aho-corasick",
|
| 1216 |
-
"memchr",
|
| 1217 |
-
"regex-syntax",
|
| 1218 |
-
]
|
| 1219 |
-
|
| 1220 |
-
[[package]]
|
| 1221 |
-
name = "regex-syntax"
|
| 1222 |
-
version = "0.8.5"
|
| 1223 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1224 |
-
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
| 1225 |
-
|
| 1226 |
-
[[package]]
|
| 1227 |
-
name = "rocksdb"
|
| 1228 |
-
version = "0.22.0"
|
| 1229 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1230 |
-
checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7"
|
| 1231 |
-
dependencies = [
|
| 1232 |
-
"libc",
|
| 1233 |
-
"librocksdb-sys",
|
| 1234 |
-
]
|
| 1235 |
-
|
| 1236 |
-
[[package]]
|
| 1237 |
-
name = "rolling-file"
|
| 1238 |
-
version = "0.2.0"
|
| 1239 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1240 |
-
checksum = "8395b4f860856b740f20a296ea2cd4d823e81a2658cf05ef61be22916026a906"
|
| 1241 |
-
dependencies = [
|
| 1242 |
-
"chrono",
|
| 1243 |
-
]
|
| 1244 |
-
|
| 1245 |
-
[[package]]
|
| 1246 |
-
name = "rustc-hash"
|
| 1247 |
-
version = "1.1.0"
|
| 1248 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1249 |
-
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
| 1250 |
-
|
| 1251 |
-
[[package]]
|
| 1252 |
-
name = "rustc-hash"
|
| 1253 |
-
version = "2.1.1"
|
| 1254 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1255 |
-
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
| 1256 |
-
|
| 1257 |
-
[[package]]
|
| 1258 |
-
name = "rustc_version"
|
| 1259 |
-
version = "0.4.1"
|
| 1260 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1261 |
-
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
| 1262 |
-
dependencies = [
|
| 1263 |
-
"semver",
|
| 1264 |
-
]
|
| 1265 |
-
|
| 1266 |
-
[[package]]
|
| 1267 |
-
name = "rustix"
|
| 1268 |
-
version = "0.38.41"
|
| 1269 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1270 |
-
checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6"
|
| 1271 |
-
dependencies = [
|
| 1272 |
-
"bitflags 2.6.0",
|
| 1273 |
-
"errno",
|
| 1274 |
-
"libc",
|
| 1275 |
-
"linux-raw-sys",
|
| 1276 |
-
"windows-sys 0.52.0",
|
| 1277 |
-
]
|
| 1278 |
-
|
| 1279 |
-
[[package]]
|
| 1280 |
-
name = "rustversion"
|
| 1281 |
-
version = "1.0.18"
|
| 1282 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1283 |
-
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
|
| 1284 |
-
|
| 1285 |
-
[[package]]
|
| 1286 |
-
name = "ryu"
|
| 1287 |
-
version = "1.0.18"
|
| 1288 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1289 |
-
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
|
| 1290 |
-
|
| 1291 |
-
[[package]]
|
| 1292 |
-
name = "same-file"
|
| 1293 |
-
version = "1.0.6"
|
| 1294 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1295 |
-
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
| 1296 |
-
dependencies = [
|
| 1297 |
-
"winapi-util",
|
| 1298 |
-
]
|
| 1299 |
-
|
| 1300 |
-
[[package]]
|
| 1301 |
-
name = "scopeguard"
|
| 1302 |
-
version = "0.3.3"
|
| 1303 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1304 |
-
checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
|
| 1305 |
-
|
| 1306 |
-
[[package]]
|
| 1307 |
-
name = "scopeguard"
|
| 1308 |
-
version = "1.2.0"
|
| 1309 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1310 |
-
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
| 1311 |
-
|
| 1312 |
-
[[package]]
|
| 1313 |
-
name = "scratch"
|
| 1314 |
-
version = "1.0.7"
|
| 1315 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1316 |
-
checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
|
| 1317 |
-
|
| 1318 |
-
[[package]]
|
| 1319 |
-
name = "semver"
|
| 1320 |
-
version = "1.0.23"
|
| 1321 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1322 |
-
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
| 1323 |
-
|
| 1324 |
-
[[package]]
|
| 1325 |
-
name = "serde"
|
| 1326 |
-
version = "1.0.215"
|
| 1327 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1328 |
-
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
|
| 1329 |
-
dependencies = [
|
| 1330 |
-
"serde_derive",
|
| 1331 |
-
]
|
| 1332 |
-
|
| 1333 |
-
[[package]]
|
| 1334 |
-
name = "serde_derive"
|
| 1335 |
-
version = "1.0.215"
|
| 1336 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1337 |
-
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
|
| 1338 |
-
dependencies = [
|
| 1339 |
-
"proc-macro2",
|
| 1340 |
-
"quote",
|
| 1341 |
-
"syn 2.0.100",
|
| 1342 |
-
]
|
| 1343 |
-
|
| 1344 |
-
[[package]]
|
| 1345 |
-
name = "serde_json"
|
| 1346 |
-
version = "1.0.133"
|
| 1347 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1348 |
-
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
|
| 1349 |
-
dependencies = [
|
| 1350 |
-
"itoa",
|
| 1351 |
-
"memchr",
|
| 1352 |
-
"ryu",
|
| 1353 |
-
"serde",
|
| 1354 |
-
]
|
| 1355 |
-
|
| 1356 |
-
[[package]]
|
| 1357 |
-
name = "serde_spanned"
|
| 1358 |
-
version = "0.6.8"
|
| 1359 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1360 |
-
checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
|
| 1361 |
-
dependencies = [
|
| 1362 |
-
"serde",
|
| 1363 |
-
]
|
| 1364 |
-
|
| 1365 |
-
[[package]]
|
| 1366 |
-
name = "sharded-slab"
|
| 1367 |
-
version = "0.1.7"
|
| 1368 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1369 |
-
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
|
| 1370 |
-
dependencies = [
|
| 1371 |
-
"lazy_static",
|
| 1372 |
-
]
|
| 1373 |
-
|
| 1374 |
-
[[package]]
|
| 1375 |
-
name = "shared_memory"
|
| 1376 |
-
version = "0.12.4"
|
| 1377 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1378 |
-
checksum = "ba8593196da75d9dc4f69349682bd4c2099f8cde114257d1ef7ef1b33d1aba54"
|
| 1379 |
-
dependencies = [
|
| 1380 |
-
"cfg-if",
|
| 1381 |
-
"libc",
|
| 1382 |
-
"nix 0.23.2",
|
| 1383 |
-
"rand",
|
| 1384 |
-
"win-sys",
|
| 1385 |
-
]
|
| 1386 |
-
|
| 1387 |
-
[[package]]
|
| 1388 |
-
name = "shlex"
|
| 1389 |
-
version = "1.3.0"
|
| 1390 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1391 |
-
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
| 1392 |
-
|
| 1393 |
-
[[package]]
|
| 1394 |
-
name = "smallvec"
|
| 1395 |
-
version = "1.13.2"
|
| 1396 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1397 |
-
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
| 1398 |
-
|
| 1399 |
-
[[package]]
|
| 1400 |
-
name = "static_assertions"
|
| 1401 |
-
version = "1.1.0"
|
| 1402 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1403 |
-
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
| 1404 |
-
|
| 1405 |
-
[[package]]
|
| 1406 |
-
name = "strsim"
|
| 1407 |
-
version = "0.8.0"
|
| 1408 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1409 |
-
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
|
| 1410 |
-
|
| 1411 |
-
[[package]]
|
| 1412 |
-
name = "strsim"
|
| 1413 |
-
version = "0.11.1"
|
| 1414 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1415 |
-
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
| 1416 |
-
|
| 1417 |
-
[[package]]
|
| 1418 |
-
name = "structopt"
|
| 1419 |
-
version = "0.3.26"
|
| 1420 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1421 |
-
checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
|
| 1422 |
-
dependencies = [
|
| 1423 |
-
"clap 2.34.0",
|
| 1424 |
-
"lazy_static",
|
| 1425 |
-
"structopt-derive",
|
| 1426 |
-
]
|
| 1427 |
-
|
| 1428 |
-
[[package]]
|
| 1429 |
-
name = "structopt-derive"
|
| 1430 |
-
version = "0.4.18"
|
| 1431 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1432 |
-
checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
|
| 1433 |
-
dependencies = [
|
| 1434 |
-
"heck 0.3.3",
|
| 1435 |
-
"proc-macro-error",
|
| 1436 |
-
"proc-macro2",
|
| 1437 |
-
"quote",
|
| 1438 |
-
"syn 1.0.109",
|
| 1439 |
-
]
|
| 1440 |
-
|
| 1441 |
-
[[package]]
|
| 1442 |
-
name = "syn"
|
| 1443 |
-
version = "1.0.109"
|
| 1444 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1445 |
-
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
| 1446 |
-
dependencies = [
|
| 1447 |
-
"proc-macro2",
|
| 1448 |
-
"quote",
|
| 1449 |
-
"unicode-ident",
|
| 1450 |
-
]
|
| 1451 |
-
|
| 1452 |
-
[[package]]
|
| 1453 |
-
name = "syn"
|
| 1454 |
-
version = "2.0.100"
|
| 1455 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1456 |
-
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
|
| 1457 |
-
dependencies = [
|
| 1458 |
-
"proc-macro2",
|
| 1459 |
-
"quote",
|
| 1460 |
-
"unicode-ident",
|
| 1461 |
-
]
|
| 1462 |
-
|
| 1463 |
-
[[package]]
|
| 1464 |
-
name = "tempfile"
|
| 1465 |
-
version = "3.14.0"
|
| 1466 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1467 |
-
checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
|
| 1468 |
-
dependencies = [
|
| 1469 |
-
"cfg-if",
|
| 1470 |
-
"fastrand",
|
| 1471 |
-
"once_cell",
|
| 1472 |
-
"rustix",
|
| 1473 |
-
"windows-sys 0.59.0",
|
| 1474 |
-
]
|
| 1475 |
-
|
| 1476 |
-
[[package]]
|
| 1477 |
-
name = "termcolor"
|
| 1478 |
-
version = "1.4.1"
|
| 1479 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1480 |
-
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
| 1481 |
-
dependencies = [
|
| 1482 |
-
"winapi-util",
|
| 1483 |
-
]
|
| 1484 |
-
|
| 1485 |
-
[[package]]
|
| 1486 |
-
name = "textwrap"
|
| 1487 |
-
version = "0.11.0"
|
| 1488 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1489 |
-
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
|
| 1490 |
-
dependencies = [
|
| 1491 |
-
"unicode-width",
|
| 1492 |
-
]
|
| 1493 |
-
|
| 1494 |
-
[[package]]
|
| 1495 |
-
name = "thiserror"
|
| 1496 |
-
version = "1.0.69"
|
| 1497 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1498 |
-
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
| 1499 |
-
dependencies = [
|
| 1500 |
-
"thiserror-impl",
|
| 1501 |
-
]
|
| 1502 |
-
|
| 1503 |
-
[[package]]
|
| 1504 |
-
name = "thiserror-impl"
|
| 1505 |
-
version = "1.0.69"
|
| 1506 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1507 |
-
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
| 1508 |
-
dependencies = [
|
| 1509 |
-
"proc-macro2",
|
| 1510 |
-
"quote",
|
| 1511 |
-
"syn 2.0.100",
|
| 1512 |
-
]
|
| 1513 |
-
|
| 1514 |
-
[[package]]
|
| 1515 |
-
name = "thread_local"
|
| 1516 |
-
version = "1.1.8"
|
| 1517 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1518 |
-
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
|
| 1519 |
-
dependencies = [
|
| 1520 |
-
"cfg-if",
|
| 1521 |
-
"once_cell",
|
| 1522 |
-
]
|
| 1523 |
-
|
| 1524 |
-
[[package]]
|
| 1525 |
-
name = "time"
|
| 1526 |
-
version = "0.3.37"
|
| 1527 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1528 |
-
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
|
| 1529 |
-
dependencies = [
|
| 1530 |
-
"deranged",
|
| 1531 |
-
"itoa",
|
| 1532 |
-
"num-conv",
|
| 1533 |
-
"powerfmt",
|
| 1534 |
-
"serde",
|
| 1535 |
-
"time-core",
|
| 1536 |
-
"time-macros",
|
| 1537 |
-
]
|
| 1538 |
-
|
| 1539 |
-
[[package]]
|
| 1540 |
-
name = "time-core"
|
| 1541 |
-
version = "0.1.2"
|
| 1542 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1543 |
-
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
| 1544 |
-
|
| 1545 |
-
[[package]]
|
| 1546 |
-
name = "time-macros"
|
| 1547 |
-
version = "0.2.19"
|
| 1548 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1549 |
-
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
|
| 1550 |
-
dependencies = [
|
| 1551 |
-
"num-conv",
|
| 1552 |
-
"time-core",
|
| 1553 |
-
]
|
| 1554 |
-
|
| 1555 |
-
[[package]]
|
| 1556 |
-
name = "tinytemplate"
|
| 1557 |
-
version = "1.2.1"
|
| 1558 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1559 |
-
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
|
| 1560 |
-
dependencies = [
|
| 1561 |
-
"serde",
|
| 1562 |
-
"serde_json",
|
| 1563 |
-
]
|
| 1564 |
-
|
| 1565 |
-
[[package]]
|
| 1566 |
-
name = "tinyvec"
|
| 1567 |
-
version = "1.8.0"
|
| 1568 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1569 |
-
checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
|
| 1570 |
-
dependencies = [
|
| 1571 |
-
"tinyvec_macros",
|
| 1572 |
-
]
|
| 1573 |
-
|
| 1574 |
-
[[package]]
|
| 1575 |
-
name = "tinyvec_macros"
|
| 1576 |
-
version = "0.1.1"
|
| 1577 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1578 |
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
| 1579 |
-
|
| 1580 |
-
[[package]]
|
| 1581 |
-
name = "toml"
|
| 1582 |
-
version = "0.8.19"
|
| 1583 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1584 |
-
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
|
| 1585 |
-
dependencies = [
|
| 1586 |
-
"serde",
|
| 1587 |
-
"serde_spanned",
|
| 1588 |
-
"toml_datetime",
|
| 1589 |
-
"toml_edit",
|
| 1590 |
-
]
|
| 1591 |
-
|
| 1592 |
-
[[package]]
|
| 1593 |
-
name = "toml_datetime"
|
| 1594 |
-
version = "0.6.8"
|
| 1595 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1596 |
-
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
|
| 1597 |
-
dependencies = [
|
| 1598 |
-
"serde",
|
| 1599 |
-
]
|
| 1600 |
-
|
| 1601 |
-
[[package]]
|
| 1602 |
-
name = "toml_edit"
|
| 1603 |
-
version = "0.22.22"
|
| 1604 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1605 |
-
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
|
| 1606 |
-
dependencies = [
|
| 1607 |
-
"indexmap",
|
| 1608 |
-
"serde",
|
| 1609 |
-
"serde_spanned",
|
| 1610 |
-
"toml_datetime",
|
| 1611 |
-
"winnow",
|
| 1612 |
-
]
|
| 1613 |
-
|
| 1614 |
-
[[package]]
|
| 1615 |
-
name = "tracing"
|
| 1616 |
-
version = "0.1.41"
|
| 1617 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1618 |
-
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
|
| 1619 |
-
dependencies = [
|
| 1620 |
-
"pin-project-lite",
|
| 1621 |
-
"tracing-attributes",
|
| 1622 |
-
"tracing-core",
|
| 1623 |
-
]
|
| 1624 |
-
|
| 1625 |
-
[[package]]
|
| 1626 |
-
name = "tracing-appender"
|
| 1627 |
-
version = "0.2.3"
|
| 1628 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1629 |
-
checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
|
| 1630 |
-
dependencies = [
|
| 1631 |
-
"crossbeam-channel",
|
| 1632 |
-
"thiserror",
|
| 1633 |
-
"time",
|
| 1634 |
-
"tracing-subscriber",
|
| 1635 |
-
]
|
| 1636 |
-
|
| 1637 |
-
[[package]]
|
| 1638 |
-
name = "tracing-attributes"
|
| 1639 |
-
version = "0.1.28"
|
| 1640 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1641 |
-
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
|
| 1642 |
-
dependencies = [
|
| 1643 |
-
"proc-macro2",
|
| 1644 |
-
"quote",
|
| 1645 |
-
"syn 2.0.100",
|
| 1646 |
-
]
|
| 1647 |
-
|
| 1648 |
-
[[package]]
|
| 1649 |
-
name = "tracing-core"
|
| 1650 |
-
version = "0.1.33"
|
| 1651 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1652 |
-
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
|
| 1653 |
-
dependencies = [
|
| 1654 |
-
"once_cell",
|
| 1655 |
-
"valuable",
|
| 1656 |
-
]
|
| 1657 |
-
|
| 1658 |
-
[[package]]
|
| 1659 |
-
name = "tracing-log"
|
| 1660 |
-
version = "0.2.0"
|
| 1661 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1662 |
-
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
|
| 1663 |
-
dependencies = [
|
| 1664 |
-
"log",
|
| 1665 |
-
"once_cell",
|
| 1666 |
-
"tracing-core",
|
| 1667 |
-
]
|
| 1668 |
-
|
| 1669 |
-
[[package]]
|
| 1670 |
-
name = "tracing-serde"
|
| 1671 |
-
version = "0.2.0"
|
| 1672 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1673 |
-
checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1"
|
| 1674 |
-
dependencies = [
|
| 1675 |
-
"serde",
|
| 1676 |
-
"tracing-core",
|
| 1677 |
-
]
|
| 1678 |
-
|
| 1679 |
-
[[package]]
|
| 1680 |
-
name = "tracing-subscriber"
|
| 1681 |
-
version = "0.3.19"
|
| 1682 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1683 |
-
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
|
| 1684 |
-
dependencies = [
|
| 1685 |
-
"chrono",
|
| 1686 |
-
"nu-ansi-term",
|
| 1687 |
-
"serde",
|
| 1688 |
-
"serde_json",
|
| 1689 |
-
"sharded-slab",
|
| 1690 |
-
"smallvec",
|
| 1691 |
-
"thread_local",
|
| 1692 |
-
"tracing-core",
|
| 1693 |
-
"tracing-log",
|
| 1694 |
-
"tracing-serde",
|
| 1695 |
-
]
|
| 1696 |
-
|
| 1697 |
-
[[package]]
|
| 1698 |
-
name = "trash_cleaner"
|
| 1699 |
-
version = "0.1.0"
|
| 1700 |
-
dependencies = [
|
| 1701 |
-
"chrono",
|
| 1702 |
-
"libc",
|
| 1703 |
-
"nix 0.29.0",
|
| 1704 |
-
"scopeguard 0.3.3",
|
| 1705 |
-
"serde",
|
| 1706 |
-
"serde_json",
|
| 1707 |
-
"structopt",
|
| 1708 |
-
"tempfile",
|
| 1709 |
-
"tracing",
|
| 1710 |
-
"tracing-appender",
|
| 1711 |
-
"tracing-subscriber",
|
| 1712 |
-
]
|
| 1713 |
-
|
| 1714 |
-
[[package]]
|
| 1715 |
-
name = "unicode-ident"
|
| 1716 |
-
version = "1.0.14"
|
| 1717 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1718 |
-
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
|
| 1719 |
-
|
| 1720 |
-
[[package]]
|
| 1721 |
-
name = "unicode-segmentation"
|
| 1722 |
-
version = "1.12.0"
|
| 1723 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1724 |
-
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
| 1725 |
-
|
| 1726 |
-
[[package]]
|
| 1727 |
-
name = "unicode-width"
|
| 1728 |
-
version = "0.1.14"
|
| 1729 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1730 |
-
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
|
| 1731 |
-
|
| 1732 |
-
[[package]]
|
| 1733 |
-
name = "utf8parse"
|
| 1734 |
-
version = "0.2.2"
|
| 1735 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1736 |
-
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
| 1737 |
-
|
| 1738 |
-
[[package]]
|
| 1739 |
-
name = "uuid"
|
| 1740 |
-
version = "1.15.1"
|
| 1741 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1742 |
-
checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587"
|
| 1743 |
-
dependencies = [
|
| 1744 |
-
"getrandom 0.3.1",
|
| 1745 |
-
]
|
| 1746 |
-
|
| 1747 |
-
[[package]]
|
| 1748 |
-
name = "valuable"
|
| 1749 |
-
version = "0.1.0"
|
| 1750 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1751 |
-
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
| 1752 |
-
|
| 1753 |
-
[[package]]
|
| 1754 |
-
name = "vcpkg"
|
| 1755 |
-
version = "0.2.15"
|
| 1756 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1757 |
-
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
| 1758 |
-
|
| 1759 |
-
[[package]]
|
| 1760 |
-
name = "vec_map"
|
| 1761 |
-
version = "0.8.2"
|
| 1762 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1763 |
-
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
| 1764 |
-
|
| 1765 |
-
[[package]]
|
| 1766 |
-
name = "version_check"
|
| 1767 |
-
version = "0.9.5"
|
| 1768 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1769 |
-
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
| 1770 |
-
|
| 1771 |
-
[[package]]
|
| 1772 |
-
name = "walkdir"
|
| 1773 |
-
version = "2.5.0"
|
| 1774 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1775 |
-
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
| 1776 |
-
dependencies = [
|
| 1777 |
-
"same-file",
|
| 1778 |
-
"winapi-util",
|
| 1779 |
-
]
|
| 1780 |
-
|
| 1781 |
-
[[package]]
|
| 1782 |
-
name = "wasi"
|
| 1783 |
-
version = "0.11.0+wasi-snapshot-preview1"
|
| 1784 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1785 |
-
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
| 1786 |
-
|
| 1787 |
-
[[package]]
|
| 1788 |
-
name = "wasi"
|
| 1789 |
-
version = "0.13.3+wasi-0.2.2"
|
| 1790 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1791 |
-
checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"
|
| 1792 |
-
dependencies = [
|
| 1793 |
-
"wit-bindgen-rt",
|
| 1794 |
-
]
|
| 1795 |
-
|
| 1796 |
-
[[package]]
|
| 1797 |
-
name = "wasm-bindgen"
|
| 1798 |
-
version = "0.2.97"
|
| 1799 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1800 |
-
checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c"
|
| 1801 |
-
dependencies = [
|
| 1802 |
-
"cfg-if",
|
| 1803 |
-
"once_cell",
|
| 1804 |
-
"wasm-bindgen-macro",
|
| 1805 |
-
]
|
| 1806 |
-
|
| 1807 |
-
[[package]]
|
| 1808 |
-
name = "wasm-bindgen-backend"
|
| 1809 |
-
version = "0.2.97"
|
| 1810 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1811 |
-
checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd"
|
| 1812 |
-
dependencies = [
|
| 1813 |
-
"bumpalo",
|
| 1814 |
-
"log",
|
| 1815 |
-
"once_cell",
|
| 1816 |
-
"proc-macro2",
|
| 1817 |
-
"quote",
|
| 1818 |
-
"syn 2.0.100",
|
| 1819 |
-
"wasm-bindgen-shared",
|
| 1820 |
-
]
|
| 1821 |
-
|
| 1822 |
-
[[package]]
|
| 1823 |
-
name = "wasm-bindgen-macro"
|
| 1824 |
-
version = "0.2.97"
|
| 1825 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1826 |
-
checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051"
|
| 1827 |
-
dependencies = [
|
| 1828 |
-
"quote",
|
| 1829 |
-
"wasm-bindgen-macro-support",
|
| 1830 |
-
]
|
| 1831 |
-
|
| 1832 |
-
[[package]]
|
| 1833 |
-
name = "wasm-bindgen-macro-support"
|
| 1834 |
-
version = "0.2.97"
|
| 1835 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1836 |
-
checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d"
|
| 1837 |
-
dependencies = [
|
| 1838 |
-
"proc-macro2",
|
| 1839 |
-
"quote",
|
| 1840 |
-
"syn 2.0.100",
|
| 1841 |
-
"wasm-bindgen-backend",
|
| 1842 |
-
"wasm-bindgen-shared",
|
| 1843 |
-
]
|
| 1844 |
-
|
| 1845 |
-
[[package]]
|
| 1846 |
-
name = "wasm-bindgen-shared"
|
| 1847 |
-
version = "0.2.97"
|
| 1848 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1849 |
-
checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49"
|
| 1850 |
-
|
| 1851 |
-
[[package]]
|
| 1852 |
-
name = "web-sys"
|
| 1853 |
-
version = "0.3.74"
|
| 1854 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1855 |
-
checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c"
|
| 1856 |
-
dependencies = [
|
| 1857 |
-
"js-sys",
|
| 1858 |
-
"wasm-bindgen",
|
| 1859 |
-
]
|
| 1860 |
-
|
| 1861 |
-
[[package]]
|
| 1862 |
-
name = "win-sys"
|
| 1863 |
-
version = "0.3.1"
|
| 1864 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1865 |
-
checksum = "5b7b128a98c1cfa201b09eb49ba285887deb3cbe7466a98850eb1adabb452be5"
|
| 1866 |
-
dependencies = [
|
| 1867 |
-
"windows",
|
| 1868 |
-
]
|
| 1869 |
-
|
| 1870 |
-
[[package]]
|
| 1871 |
-
name = "winapi"
|
| 1872 |
-
version = "0.3.9"
|
| 1873 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1874 |
-
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
| 1875 |
-
dependencies = [
|
| 1876 |
-
"winapi-i686-pc-windows-gnu",
|
| 1877 |
-
"winapi-x86_64-pc-windows-gnu",
|
| 1878 |
-
]
|
| 1879 |
-
|
| 1880 |
-
[[package]]
|
| 1881 |
-
name = "winapi-i686-pc-windows-gnu"
|
| 1882 |
-
version = "0.4.0"
|
| 1883 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1884 |
-
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
| 1885 |
-
|
| 1886 |
-
[[package]]
|
| 1887 |
-
name = "winapi-util"
|
| 1888 |
-
version = "0.1.9"
|
| 1889 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1890 |
-
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
| 1891 |
-
dependencies = [
|
| 1892 |
-
"windows-sys 0.59.0",
|
| 1893 |
-
]
|
| 1894 |
-
|
| 1895 |
-
[[package]]
|
| 1896 |
-
name = "winapi-x86_64-pc-windows-gnu"
|
| 1897 |
-
version = "0.4.0"
|
| 1898 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1899 |
-
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
| 1900 |
-
|
| 1901 |
-
[[package]]
|
| 1902 |
-
name = "windows"
|
| 1903 |
-
version = "0.34.0"
|
| 1904 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1905 |
-
checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f"
|
| 1906 |
-
dependencies = [
|
| 1907 |
-
"windows_aarch64_msvc 0.34.0",
|
| 1908 |
-
"windows_i686_gnu 0.34.0",
|
| 1909 |
-
"windows_i686_msvc 0.34.0",
|
| 1910 |
-
"windows_x86_64_gnu 0.34.0",
|
| 1911 |
-
"windows_x86_64_msvc 0.34.0",
|
| 1912 |
-
]
|
| 1913 |
-
|
| 1914 |
-
[[package]]
|
| 1915 |
-
name = "windows-core"
|
| 1916 |
-
version = "0.52.0"
|
| 1917 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1918 |
-
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
| 1919 |
-
dependencies = [
|
| 1920 |
-
"windows-targets",
|
| 1921 |
-
]
|
| 1922 |
-
|
| 1923 |
-
[[package]]
|
| 1924 |
-
name = "windows-sys"
|
| 1925 |
-
version = "0.42.0"
|
| 1926 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1927 |
-
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
|
| 1928 |
-
dependencies = [
|
| 1929 |
-
"windows_aarch64_gnullvm 0.42.2",
|
| 1930 |
-
"windows_aarch64_msvc 0.42.2",
|
| 1931 |
-
"windows_i686_gnu 0.42.2",
|
| 1932 |
-
"windows_i686_msvc 0.42.2",
|
| 1933 |
-
"windows_x86_64_gnu 0.42.2",
|
| 1934 |
-
"windows_x86_64_gnullvm 0.42.2",
|
| 1935 |
-
"windows_x86_64_msvc 0.42.2",
|
| 1936 |
-
]
|
| 1937 |
-
|
| 1938 |
-
[[package]]
|
| 1939 |
-
name = "windows-sys"
|
| 1940 |
-
version = "0.52.0"
|
| 1941 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1942 |
-
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
| 1943 |
-
dependencies = [
|
| 1944 |
-
"windows-targets",
|
| 1945 |
-
]
|
| 1946 |
-
|
| 1947 |
-
[[package]]
|
| 1948 |
-
name = "windows-sys"
|
| 1949 |
-
version = "0.59.0"
|
| 1950 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1951 |
-
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
| 1952 |
-
dependencies = [
|
| 1953 |
-
"windows-targets",
|
| 1954 |
-
]
|
| 1955 |
-
|
| 1956 |
-
[[package]]
|
| 1957 |
-
name = "windows-targets"
|
| 1958 |
-
version = "0.52.6"
|
| 1959 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1960 |
-
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
| 1961 |
-
dependencies = [
|
| 1962 |
-
"windows_aarch64_gnullvm 0.52.6",
|
| 1963 |
-
"windows_aarch64_msvc 0.52.6",
|
| 1964 |
-
"windows_i686_gnu 0.52.6",
|
| 1965 |
-
"windows_i686_gnullvm",
|
| 1966 |
-
"windows_i686_msvc 0.52.6",
|
| 1967 |
-
"windows_x86_64_gnu 0.52.6",
|
| 1968 |
-
"windows_x86_64_gnullvm 0.52.6",
|
| 1969 |
-
"windows_x86_64_msvc 0.52.6",
|
| 1970 |
-
]
|
| 1971 |
-
|
| 1972 |
-
[[package]]
|
| 1973 |
-
name = "windows_aarch64_gnullvm"
|
| 1974 |
-
version = "0.42.2"
|
| 1975 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1976 |
-
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
| 1977 |
-
|
| 1978 |
-
[[package]]
|
| 1979 |
-
name = "windows_aarch64_gnullvm"
|
| 1980 |
-
version = "0.52.6"
|
| 1981 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1982 |
-
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
| 1983 |
-
|
| 1984 |
-
[[package]]
|
| 1985 |
-
name = "windows_aarch64_msvc"
|
| 1986 |
-
version = "0.34.0"
|
| 1987 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1988 |
-
checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
|
| 1989 |
-
|
| 1990 |
-
[[package]]
|
| 1991 |
-
name = "windows_aarch64_msvc"
|
| 1992 |
-
version = "0.42.2"
|
| 1993 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1994 |
-
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
| 1995 |
-
|
| 1996 |
-
[[package]]
|
| 1997 |
-
name = "windows_aarch64_msvc"
|
| 1998 |
-
version = "0.52.6"
|
| 1999 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2000 |
-
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
| 2001 |
-
|
| 2002 |
-
[[package]]
|
| 2003 |
-
name = "windows_i686_gnu"
|
| 2004 |
-
version = "0.34.0"
|
| 2005 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2006 |
-
checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
|
| 2007 |
-
|
| 2008 |
-
[[package]]
|
| 2009 |
-
name = "windows_i686_gnu"
|
| 2010 |
-
version = "0.42.2"
|
| 2011 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2012 |
-
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
| 2013 |
-
|
| 2014 |
-
[[package]]
|
| 2015 |
-
name = "windows_i686_gnu"
|
| 2016 |
-
version = "0.52.6"
|
| 2017 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2018 |
-
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
| 2019 |
-
|
| 2020 |
-
[[package]]
|
| 2021 |
-
name = "windows_i686_gnullvm"
|
| 2022 |
-
version = "0.52.6"
|
| 2023 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2024 |
-
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
| 2025 |
-
|
| 2026 |
-
[[package]]
|
| 2027 |
-
name = "windows_i686_msvc"
|
| 2028 |
-
version = "0.34.0"
|
| 2029 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2030 |
-
checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
|
| 2031 |
-
|
| 2032 |
-
[[package]]
|
| 2033 |
-
name = "windows_i686_msvc"
|
| 2034 |
-
version = "0.42.2"
|
| 2035 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2036 |
-
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
| 2037 |
-
|
| 2038 |
-
[[package]]
|
| 2039 |
-
name = "windows_i686_msvc"
|
| 2040 |
-
version = "0.52.6"
|
| 2041 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2042 |
-
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
| 2043 |
-
|
| 2044 |
-
[[package]]
|
| 2045 |
-
name = "windows_x86_64_gnu"
|
| 2046 |
-
version = "0.34.0"
|
| 2047 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2048 |
-
checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
|
| 2049 |
-
|
| 2050 |
-
[[package]]
|
| 2051 |
-
name = "windows_x86_64_gnu"
|
| 2052 |
-
version = "0.42.2"
|
| 2053 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2054 |
-
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
| 2055 |
-
|
| 2056 |
-
[[package]]
|
| 2057 |
-
name = "windows_x86_64_gnu"
|
| 2058 |
-
version = "0.52.6"
|
| 2059 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2060 |
-
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
| 2061 |
-
|
| 2062 |
-
[[package]]
|
| 2063 |
-
name = "windows_x86_64_gnullvm"
|
| 2064 |
-
version = "0.42.2"
|
| 2065 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2066 |
-
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
| 2067 |
-
|
| 2068 |
-
[[package]]
|
| 2069 |
-
name = "windows_x86_64_gnullvm"
|
| 2070 |
-
version = "0.52.6"
|
| 2071 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2072 |
-
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
| 2073 |
-
|
| 2074 |
-
[[package]]
|
| 2075 |
-
name = "windows_x86_64_msvc"
|
| 2076 |
-
version = "0.34.0"
|
| 2077 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2078 |
-
checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
|
| 2079 |
-
|
| 2080 |
-
[[package]]
|
| 2081 |
-
name = "windows_x86_64_msvc"
|
| 2082 |
-
version = "0.42.2"
|
| 2083 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2084 |
-
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
| 2085 |
-
|
| 2086 |
-
[[package]]
|
| 2087 |
-
name = "windows_x86_64_msvc"
|
| 2088 |
-
version = "0.52.6"
|
| 2089 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2090 |
-
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
| 2091 |
-
|
| 2092 |
-
[[package]]
|
| 2093 |
-
name = "winnow"
|
| 2094 |
-
version = "0.6.20"
|
| 2095 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2096 |
-
checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
|
| 2097 |
-
dependencies = [
|
| 2098 |
-
"memchr",
|
| 2099 |
-
]
|
| 2100 |
-
|
| 2101 |
-
[[package]]
|
| 2102 |
-
name = "wit-bindgen-rt"
|
| 2103 |
-
version = "0.33.0"
|
| 2104 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2105 |
-
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
|
| 2106 |
-
dependencies = [
|
| 2107 |
-
"bitflags 2.6.0",
|
| 2108 |
-
]
|
| 2109 |
-
|
| 2110 |
-
[[package]]
|
| 2111 |
-
name = "zerocopy"
|
| 2112 |
-
version = "0.7.35"
|
| 2113 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2114 |
-
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
| 2115 |
-
dependencies = [
|
| 2116 |
-
"byteorder",
|
| 2117 |
-
"zerocopy-derive",
|
| 2118 |
-
]
|
| 2119 |
-
|
| 2120 |
-
[[package]]
|
| 2121 |
-
name = "zerocopy-derive"
|
| 2122 |
-
version = "0.7.35"
|
| 2123 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2124 |
-
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
| 2125 |
-
dependencies = [
|
| 2126 |
-
"proc-macro2",
|
| 2127 |
-
"quote",
|
| 2128 |
-
"syn 2.0.100",
|
| 2129 |
-
]
|
| 2130 |
-
|
| 2131 |
-
[[package]]
|
| 2132 |
-
name = "zstd-sys"
|
| 2133 |
-
version = "2.0.13+zstd.1.5.6"
|
| 2134 |
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2135 |
-
checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
|
| 2136 |
-
dependencies = [
|
| 2137 |
-
"cc",
|
| 2138 |
-
"pkg-config",
|
| 2139 |
-
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/Cargo.toml
DELETED
|
@@ -1,22 +0,0 @@
|
|
| 1 |
-
[workspace]
|
| 2 |
-
members = [
|
| 3 |
-
"src/client/trash_cleaner",
|
| 4 |
-
"src/storage/chunk_engine",
|
| 5 |
-
"src/lib/rs/hf3fs-usrbio-sys"
|
| 6 |
-
]
|
| 7 |
-
default-members = [
|
| 8 |
-
"src/client/trash_cleaner",
|
| 9 |
-
"src/storage/chunk_engine",
|
| 10 |
-
]
|
| 11 |
-
resolver = "2"
|
| 12 |
-
|
| 13 |
-
[workspace.package]
|
| 14 |
-
authors = ["dev <noreply@deepseek.com>"]
|
| 15 |
-
edition = "2021"
|
| 16 |
-
license = "MIT"
|
| 17 |
-
rust-version = "1.85.0" # MSRV
|
| 18 |
-
|
| 19 |
-
[profile.release-cmake]
|
| 20 |
-
debug = true
|
| 21 |
-
inherits = "release"
|
| 22 |
-
lto = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
| 1 |
-
MIT License
|
| 2 |
-
|
| 3 |
-
Copyright (c) 2025 DeepSeek
|
| 4 |
-
|
| 5 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
-
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
-
in the Software without restriction, including without limitation the rights
|
| 8 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
-
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
-
furnished to do so, subject to the following conditions:
|
| 11 |
-
|
| 12 |
-
The above copyright notice and this permission notice shall be included in all
|
| 13 |
-
copies or substantial portions of the Software.
|
| 14 |
-
|
| 15 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
-
SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/README.md
DELETED
|
@@ -1,129 +0,0 @@
|
|
| 1 |
-
# Fire-Flyer File System
|
| 2 |
-
|
| 3 |
-
[](https://github.com/deepseek-ai/3fs/actions/workflows/build.yml)
|
| 4 |
-
[](LICENSE)
|
| 5 |
-
|
| 6 |
-
The Fire-Flyer File System (3FS) is a high-performance distributed file system designed to address the challenges of AI training and inference workloads. It leverages modern SSDs and RDMA networks to provide a shared storage layer that simplifies development of distributed applications. Key features and benefits of 3FS include:
|
| 7 |
-
|
| 8 |
-
- Performance and Usability
|
| 9 |
-
- **Disaggregated Architecture** Combines the throughput of thousands of SSDs and the network bandwidth of hundreds of storage nodes, enabling applications to access storage resource in a locality-oblivious manner.
|
| 10 |
-
- **Strong Consistency** Implements Chain Replication with Apportioned Queries (CRAQ) for strong consistency, making application code simple and easy to reason about.
|
| 11 |
-
- **File Interfaces** Develops stateless metadata services backed by a transactional key-value store (e.g., FoundationDB). The file interface is well known and used everywhere. There is no need to learn a new storage API.
|
| 12 |
-
|
| 13 |
-
- Diverse Workloads
|
| 14 |
-
- **Data Preparation** Organizes outputs of data analytics pipelines into hierarchical directory structures and manages a large volume of intermediate outputs efficiently.
|
| 15 |
-
- **Dataloaders** Eliminates the need for prefetching or shuffling datasets by enabling random access to training samples across compute nodes.
|
| 16 |
-
- **Checkpointing** Supports high-throughput parallel checkpointing for large-scale training.
|
| 17 |
-
- **KVCache for Inference** Provides a cost-effective alternative to DRAM-based caching, offering high throughput and significantly larger capacity.
|
| 18 |
-
|
| 19 |
-
## Documentation
|
| 20 |
-
|
| 21 |
-
* [Design Notes](docs/design_notes.md)
|
| 22 |
-
* [Setup Guide](deploy/README.md)
|
| 23 |
-
* [USRBIO API Reference](src/lib/api/UsrbIo.md)
|
| 24 |
-
* [P Specifications](./specs/README.md)
|
| 25 |
-
|
| 26 |
-
## Performance
|
| 27 |
-
|
| 28 |
-
### 1. Peak throughput
|
| 29 |
-
|
| 30 |
-
The following figure demonstrates the throughput of read stress test on a large 3FS cluster. This cluster consists of 180 storage nodes, each equipped with 2×200Gbps InfiniBand NICs and sixteen 14TiB NVMe SSDs. Approximately 500+ client nodes were used for the read stress test, with each client node configured with 1x200Gbps InfiniBand NIC. The final aggregate read throughput reached approximately 6.6 TiB/s with background traffic from training jobs.
|
| 31 |
-
|
| 32 |
-

|
| 33 |
-
|
| 34 |
-
To benchmark 3FS, please use our [fio engine for USRBIO](benchmarks/fio_usrbio/README.md).
|
| 35 |
-
|
| 36 |
-
### 2. GraySort
|
| 37 |
-
|
| 38 |
-
We evaluated [smallpond](https://github.com/deepseek-ai/smallpond) using the GraySort benchmark, which measures sort performance on large-scale datasets. Our implementation adopts a two-phase approach: (1) partitioning data via shuffle using the prefix bits of keys, and (2) in-partition sorting. Both phases read/write data from/to 3FS.
|
| 39 |
-
|
| 40 |
-
The test cluster comprised 25 storage nodes (2 NUMA domains/node, 1 storage service/NUMA, 2×400Gbps NICs/node) and 50 compute nodes (2 NUMA domains, 192 physical cores, 2.2 TiB RAM, and 1×200 Gbps NIC/node). Sorting 110.5 TiB of data across 8,192 partitions completed in 30 minutes and 14 seconds, achieving an average throughput of *3.66 TiB/min*.
|
| 41 |
-
|
| 42 |
-

|
| 43 |
-

|
| 44 |
-
|
| 45 |
-
### 3. KVCache
|
| 46 |
-
|
| 47 |
-
KVCache is a technique used to optimize the LLM inference process. It avoids redundant computations by caching the key and value vectors of previous tokens in the decoder layers.
|
| 48 |
-
The top figure demonstrates the read throughput of all KVCache clients (1×400Gbps NIC/node), highlighting both peak and average values, with peak throughput reaching up to 40 GiB/s. The bottom figure presents the IOPS of removing ops from garbage collection (GC) during the same time period.
|
| 49 |
-
|
| 50 |
-

|
| 51 |
-

|
| 52 |
-
|
| 53 |
-
## Check out source code
|
| 54 |
-
|
| 55 |
-
Clone 3FS repository from GitHub:
|
| 56 |
-
|
| 57 |
-
git clone https://github.com/deepseek-ai/3fs
|
| 58 |
-
|
| 59 |
-
When `deepseek-ai/3fs` has been cloned to a local file system, run the
|
| 60 |
-
following commands to check out the submodules:
|
| 61 |
-
|
| 62 |
-
```bash
|
| 63 |
-
cd 3fs
|
| 64 |
-
git submodule update --init --recursive
|
| 65 |
-
./patches/apply.sh
|
| 66 |
-
```
|
| 67 |
-
|
| 68 |
-
## Install dependencies
|
| 69 |
-
|
| 70 |
-
Install dependencies:
|
| 71 |
-
|
| 72 |
-
```bash
|
| 73 |
-
# for Ubuntu 20.04.
|
| 74 |
-
apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libdwarf-dev libunwind-dev \
|
| 75 |
-
libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \
|
| 76 |
-
libgoogle-perftools-dev google-perftools libssl-dev libclang-rt-14-dev gcc-10 g++-10 libboost1.71-all-dev build-essential
|
| 77 |
-
|
| 78 |
-
# for Ubuntu 22.04.
|
| 79 |
-
apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libdwarf-dev libunwind-dev \
|
| 80 |
-
libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \
|
| 81 |
-
libgoogle-perftools-dev google-perftools libssl-dev gcc-12 g++-12 libboost-all-dev build-essential
|
| 82 |
-
|
| 83 |
-
# for openEuler 2403sp1
|
| 84 |
-
yum install cmake libuv-devel lz4-devel xz-devel double-conversion-devel libdwarf-devel libunwind-devel \
|
| 85 |
-
libaio-devel gflags-devel glog-devel gtest-devel gmock-devel clang-tools-extra clang lld \
|
| 86 |
-
gperftools-devel gperftools openssl-devel gcc gcc-c++ boost-devel
|
| 87 |
-
|
| 88 |
-
# for OpenCloudOS 9 and TencentOS 4
|
| 89 |
-
dnf install epol-release wget git meson cmake perl lld gcc gcc-c++ autoconf lz4 lz4-devel xz xz-devel \
|
| 90 |
-
double-conversion-devel libdwarf-devel libunwind-devel libaio-devel gflags-devel glog-devel \
|
| 91 |
-
libuv-devel gmock-devel gperftools gperftools-devel openssl-devel boost-static boost-devel mono-devel \
|
| 92 |
-
libevent-devel libibverbs-devel numactl-devel python3-devel
|
| 93 |
-
```
|
| 94 |
-
|
| 95 |
-
Install other build prerequisites:
|
| 96 |
-
|
| 97 |
-
- [`libfuse`](https://github.com/libfuse/libfuse/releases/tag/fuse-3.16.1) 3.16.1 or newer version
|
| 98 |
-
- [FoundationDB](https://apple.github.io/foundationdb/getting-started-linux.html) 7.1 or newer version
|
| 99 |
-
- [Rust](https://www.rust-lang.org/tools/install) toolchain: minimal 1.75.0, recommended 1.85.0 or newer version (latest stable version)
|
| 100 |
-
|
| 101 |
-
## Build 3FS
|
| 102 |
-
|
| 103 |
-
Build 3FS in `build` folder:
|
| 104 |
-
|
| 105 |
-
```bash
|
| 106 |
-
# Replace <method> with 'g++10' or 'g++11' based on your environment
|
| 107 |
-
cmake -S . -B build \
|
| 108 |
-
-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 \
|
| 109 |
-
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
| 110 |
-
-DSHUFFLE_METHOD=<method>
|
| 111 |
-
cmake --build build -j 32
|
| 112 |
-
```
|
| 113 |
-
|
| 114 |
-
Due to the historical use of `std::shuffle`, binaries compiled with different compiler versions (e.g., `g++10` vs. `g++11 +`) may be incompatible ([issue](https://github.com/deepseek-ai/3FS/issues/368)). To resolve this, you must explicitly specify `-DSHUFFLE_METHOD` during compilation to lock in a consistent shuffle algorithm:
|
| 115 |
-
|
| 116 |
-
- Existing Clusters: Use the method corresponding to the compiler version previously used to deploy the cluster (`g++10` or `g++11`).
|
| 117 |
-
- New Clusters: You can choose either `g++10` or `g++11`. However, once the cluster is deployed, you must stay with the same configuration for all future builds to maintain compatibility.
|
| 118 |
-
|
| 119 |
-
### Build 3FS use Docker
|
| 120 |
-
- For TencentOS-4: `docker pull docker.io/tencentos/tencentos4-deepseek3fs-build:latest`
|
| 121 |
-
- For OpenCloudOS-9: `docker pull docker.io/opencloudos/opencloudos9-deepseek3fs-build:latest`
|
| 122 |
-
|
| 123 |
-
## Run a test cluster
|
| 124 |
-
|
| 125 |
-
Follow instructions in [setup guide](deploy/README.md) to run a test cluster.
|
| 126 |
-
|
| 127 |
-
## Report Issues
|
| 128 |
-
|
| 129 |
-
Please visit https://github.com/deepseek-ai/3fs/issues to report issues.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/CMakeLists.txt
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
add_subdirectory(storage_bench)
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/fio_usrbio/Makefile
DELETED
|
@@ -1,23 +0,0 @@
|
|
| 1 |
-
HF3FS_INCLUDE_DIR ?= /usr/include
|
| 2 |
-
HF3FS_LIB_DIR ?= /usr/lib
|
| 3 |
-
FIO_SRC_DIR ?= /usr/include
|
| 4 |
-
|
| 5 |
-
PLUGIN_NAME = hf3fs_usrbio
|
| 6 |
-
SO_NAME = ${PLUGIN_NAME}.so
|
| 7 |
-
SRC = ${PLUGIN_NAME}.cpp
|
| 8 |
-
OBJ = ${PLUGIN_NAME}.o
|
| 9 |
-
|
| 10 |
-
CXX = g++
|
| 11 |
-
CXXFLAGS = -fPIC -fpermissive -O3 -D_GNU_SOURCE -shared -rdynamic -I${HF3FS_INCLUDE_DIR} -I${FIO_SRC_DIR} -include config-host.h
|
| 12 |
-
LDFLAGS = -L${HF3FS_LIB_DIR} -lhf3fs_api_shared -Wl,-rpath=${HF3FS_LIB_DIR}
|
| 13 |
-
|
| 14 |
-
.PHONY: all clean
|
| 15 |
-
|
| 16 |
-
all: ${SO_NAME}
|
| 17 |
-
|
| 18 |
-
${SO_NAME}: ${SRC}
|
| 19 |
-
${CXX} ${CXXFLAGS} $^ -o $@ ${LDFLAGS}
|
| 20 |
-
|
| 21 |
-
clean:
|
| 22 |
-
rm -rf ${OBJ} ${SO_NAME}
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/fio_usrbio/README.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
| 1 |
-
# FIO engine for 3FS USRBIO
|
| 2 |
-
|
| 3 |
-
This repository contains the [fio] external plugin used for benchmarking [3FS] USRBIO.
|
| 4 |
-
|
| 5 |
-
## Build
|
| 6 |
-
|
| 7 |
-
First, build 3FS and fio.
|
| 8 |
-
|
| 9 |
-
Configure the following variables:
|
| 10 |
-
- `HF3FS_LIB_DIR`: directory contains `libhf3fs_api_shared.so`, the default path in 3FS repo is `3FS/build/src/lib/api`.
|
| 11 |
-
- `HF3FS_INCLUDE_DIR`: directory contains `hf3fs_usrbio.h`, the default path in 3FS repo is `3FS/src/lib/api`.
|
| 12 |
-
- `FIO_SRC_DIR`: directory contains `config-host.h`. After building fio, this header will be in the root of the fio repo.
|
| 13 |
-
|
| 14 |
-
Then run:
|
| 15 |
-
```
|
| 16 |
-
make HF3FS_LIB_DIR=${HF3FS_LIB_DIR} HF3FS_INCLUDE_DIR=${HF3FS_INCLUDE_DIR} FIO_SRC_DIR=${FIO_SRC_DIR}
|
| 17 |
-
```
|
| 18 |
-
|
| 19 |
-
You will get the external plugin as `hf3fs_usrbio.so`.
|
| 20 |
-
|
| 21 |
-
## Usage
|
| 22 |
-
|
| 23 |
-
To use this plugin, set the `ioengine` args in fio as `external:hf3fs_usrbio.so`. Please refer to [fio documentation] for further explanation.
|
| 24 |
-
|
| 25 |
-
Since multiple 3FS instances might be mounted, you need to specify the 3FS instance during benchmarking. This can be done by adding the `mountpoint` arguments (in the `.fio`):
|
| 26 |
-
```
|
| 27 |
-
mountpoint=/hf3fs/mount/point
|
| 28 |
-
```
|
| 29 |
-
|
| 30 |
-
To benchmark batched small I/Os, please set these four parameters to `batch_size` simultaneously:
|
| 31 |
-
```
|
| 32 |
-
iodepth=1024
|
| 33 |
-
iodepth_batch_submit=1024
|
| 34 |
-
iodepth_batch_complete_min=1024
|
| 35 |
-
iodepth_batch_complete_max=1024
|
| 36 |
-
```
|
| 37 |
-
|
| 38 |
-
[fio]: https://github.com/axboe/fio
|
| 39 |
-
[3FS]: https://github.com/deepseek-ai/3FS
|
| 40 |
-
[fio documentation]: https://fio.readthedocs.io/en/latest/fio_doc.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/fio_usrbio/hf3fs_usrbio.cpp
DELETED
|
@@ -1,286 +0,0 @@
|
|
| 1 |
-
#include <cstdio>
|
| 2 |
-
#include <cstdlib>
|
| 3 |
-
#include <iostream>
|
| 4 |
-
#include <fstream>
|
| 5 |
-
#include <unistd.h>
|
| 6 |
-
#include <chrono>
|
| 7 |
-
#include <iomanip>
|
| 8 |
-
#include <ctime>
|
| 9 |
-
#include "hf3fs_usrbio.h"
|
| 10 |
-
#include <atomic>
|
| 11 |
-
#include <errno.h>
|
| 12 |
-
#include <vector>
|
| 13 |
-
#include <sys/stat.h>
|
| 14 |
-
|
| 15 |
-
extern "C" {
|
| 16 |
-
#include "fio.h"
|
| 17 |
-
#include "optgroup.h"
|
| 18 |
-
}
|
| 19 |
-
|
| 20 |
-
struct hf3fs_usrbio_options {
|
| 21 |
-
int dummy;
|
| 22 |
-
char *mountpoint;
|
| 23 |
-
int ior_depth;
|
| 24 |
-
int ior_timeout;
|
| 25 |
-
};
|
| 26 |
-
|
| 27 |
-
static struct fio_option options[] = {
|
| 28 |
-
{
|
| 29 |
-
.name = "mountpoint",
|
| 30 |
-
.lname = "hf3fs mount point",
|
| 31 |
-
.type = FIO_OPT_STR_STORE,
|
| 32 |
-
.off1 = offsetof(struct hf3fs_usrbio_options, mountpoint),
|
| 33 |
-
.help = "Mount point (e.g. /hf3fs/mount/point)",
|
| 34 |
-
.def = "",
|
| 35 |
-
.category = FIO_OPT_C_ENGINE,
|
| 36 |
-
.group = FIO_OPT_G_NETIO,
|
| 37 |
-
},
|
| 38 |
-
{
|
| 39 |
-
.name = "ior_depth",
|
| 40 |
-
.lname = "hf3fs ior depth",
|
| 41 |
-
.type = FIO_OPT_INT,
|
| 42 |
-
.off1 = offsetof(struct hf3fs_usrbio_options, ior_depth),
|
| 43 |
-
.help = "Ior depth",
|
| 44 |
-
.def = "0",
|
| 45 |
-
.category = FIO_OPT_C_ENGINE,
|
| 46 |
-
.group = FIO_OPT_G_NETIO,
|
| 47 |
-
},
|
| 48 |
-
{
|
| 49 |
-
.name = "ior_timeout",
|
| 50 |
-
.lname = "hf3fs ior timeout (in ms)",
|
| 51 |
-
.type = FIO_OPT_INT,
|
| 52 |
-
.off1 = offsetof(struct hf3fs_usrbio_options, ior_timeout),
|
| 53 |
-
.help = "Ior timeout",
|
| 54 |
-
.def = "1",
|
| 55 |
-
.category = FIO_OPT_C_ENGINE,
|
| 56 |
-
.group = FIO_OPT_G_NETIO,
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
.name = NULL,
|
| 60 |
-
},
|
| 61 |
-
};
|
| 62 |
-
|
| 63 |
-
#define LAST_POS(f) ((f)->engine_pos)
|
| 64 |
-
|
| 65 |
-
struct hf3fs_usrbio_data {
|
| 66 |
-
struct hf3fs_iov iov;
|
| 67 |
-
struct hf3fs_ior ior_r;
|
| 68 |
-
struct hf3fs_ior ior_w;
|
| 69 |
-
std::vector<struct io_u *> io_us;
|
| 70 |
-
int queued;
|
| 71 |
-
int events;
|
| 72 |
-
enum fio_ddir last_ddir;
|
| 73 |
-
};
|
| 74 |
-
|
| 75 |
-
static int hf3fs_usrbio_init(struct thread_data *td) {
|
| 76 |
-
td->io_ops_data = static_cast<void *>(new hf3fs_usrbio_data);
|
| 77 |
-
struct hf3fs_usrbio_options *options = td->eo;
|
| 78 |
-
|
| 79 |
-
auto &ior_r = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->ior_r;
|
| 80 |
-
auto res = hf3fs_iorcreate3(&ior_r, options->mountpoint, td->o.iodepth, true, options->ior_depth, 0, options->ior_timeout, -1);
|
| 81 |
-
if (res < 0) {
|
| 82 |
-
return res;
|
| 83 |
-
}
|
| 84 |
-
|
| 85 |
-
auto &ior_w = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->ior_w;
|
| 86 |
-
res = hf3fs_iorcreate(&ior_w, options->mountpoint, td->o.iodepth, false, options->ior_depth, -1);
|
| 87 |
-
if (res < 0) {
|
| 88 |
-
return res;
|
| 89 |
-
}
|
| 90 |
-
|
| 91 |
-
auto *data = static_cast<hf3fs_usrbio_data *>(td->io_ops_data);
|
| 92 |
-
data->io_us.resize(td->o.iodepth);
|
| 93 |
-
data->queued = 0;
|
| 94 |
-
data->events = 0;
|
| 95 |
-
|
| 96 |
-
return 0;
|
| 97 |
-
}
|
| 98 |
-
|
| 99 |
-
static int fio_io_end(struct thread_data *td, struct io_u *io_u, int ret) {
|
| 100 |
-
if (io_u->file && ret >= 0 && ddir_rw(io_u->ddir)) {
|
| 101 |
-
LAST_POS(io_u->file) = io_u->offset + ret;
|
| 102 |
-
}
|
| 103 |
-
|
| 104 |
-
if (ret != (int) io_u->xfer_buflen) {
|
| 105 |
-
if (ret >= 0) {
|
| 106 |
-
io_u->resid = io_u->xfer_buflen - ret;
|
| 107 |
-
io_u->error = 0;
|
| 108 |
-
return FIO_Q_COMPLETED;
|
| 109 |
-
} else {
|
| 110 |
-
io_u->error = errno;
|
| 111 |
-
}
|
| 112 |
-
}
|
| 113 |
-
|
| 114 |
-
if (io_u->error) {
|
| 115 |
-
io_u_log_error(td, io_u);
|
| 116 |
-
td_verror(td, io_u->error, "xfer");
|
| 117 |
-
}
|
| 118 |
-
|
| 119 |
-
return FIO_Q_COMPLETED;
|
| 120 |
-
}
|
| 121 |
-
|
| 122 |
-
static enum fio_q_status hf3fs_usrbio_queue(struct thread_data *td, struct io_u *io_u) {
|
| 123 |
-
auto &vec = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->io_us;
|
| 124 |
-
auto *sd = static_cast<hf3fs_usrbio_data *>(td->io_ops_data);
|
| 125 |
-
|
| 126 |
-
if (io_u->ddir != sd->last_ddir) {
|
| 127 |
-
if (sd->queued != 0) {
|
| 128 |
-
return FIO_Q_BUSY;
|
| 129 |
-
} else {
|
| 130 |
-
vec[sd->queued++] = io_u;
|
| 131 |
-
sd->last_ddir = io_u->ddir;
|
| 132 |
-
return FIO_Q_QUEUED;
|
| 133 |
-
}
|
| 134 |
-
} else {
|
| 135 |
-
if (sd->queued == td->o.iodepth) {
|
| 136 |
-
return FIO_Q_BUSY;
|
| 137 |
-
}
|
| 138 |
-
vec[sd->queued++] = io_u;
|
| 139 |
-
return FIO_Q_QUEUED;
|
| 140 |
-
}
|
| 141 |
-
}
|
| 142 |
-
|
| 143 |
-
static int hf3fs_usrbio_commit(struct thread_data *td) {
|
| 144 |
-
auto &vec = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->io_us;
|
| 145 |
-
auto *sd = static_cast<hf3fs_usrbio_data *>(td->io_ops_data);
|
| 146 |
-
auto &ior_r = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->ior_r;
|
| 147 |
-
auto &ior_w = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->ior_w;
|
| 148 |
-
auto &iov = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->iov;
|
| 149 |
-
|
| 150 |
-
if (sd->queued == 0) {
|
| 151 |
-
return 0;
|
| 152 |
-
}
|
| 153 |
-
|
| 154 |
-
io_u_mark_submit(td, sd->queued);
|
| 155 |
-
|
| 156 |
-
int res = 0;
|
| 157 |
-
bool read = (sd->last_ddir == DDIR_READ);
|
| 158 |
-
auto &ior = read ? ior_r : ior_w;
|
| 159 |
-
for (int i = 0; i < sd->queued; i++) {
|
| 160 |
-
res = hf3fs_prep_io(&ior, &iov, read, vec[i]->xfer_buf, vec[i]->file->fd, vec[i]->offset, vec[i]->xfer_buflen, nullptr);
|
| 161 |
-
if (res < 0) {
|
| 162 |
-
std::cout << "prep " << res << " " << vec[i]->file->fd << std::endl;
|
| 163 |
-
return res;
|
| 164 |
-
}
|
| 165 |
-
}
|
| 166 |
-
res = hf3fs_submit_ios(&ior);
|
| 167 |
-
if (res < 0) {
|
| 168 |
-
std::cout << "submit " << res << std::endl;
|
| 169 |
-
return res;
|
| 170 |
-
}
|
| 171 |
-
|
| 172 |
-
std::vector<struct hf3fs_cqe> cqe(sd->queued);
|
| 173 |
-
res = hf3fs_wait_for_ios(&ior, cqe.data(), sd->queued, sd->queued, nullptr);
|
| 174 |
-
if (res < 0) {
|
| 175 |
-
std::cout << "wait " << res << std::endl;
|
| 176 |
-
return res;
|
| 177 |
-
}
|
| 178 |
-
|
| 179 |
-
for (int i = 0; i < sd->queued; i++) {
|
| 180 |
-
if (cqe[i].result < 0) {
|
| 181 |
-
std::cout << "cqe error " << res << std::endl;
|
| 182 |
-
return res;
|
| 183 |
-
}
|
| 184 |
-
}
|
| 185 |
-
|
| 186 |
-
sd->events = sd->queued;
|
| 187 |
-
sd->queued = 0;
|
| 188 |
-
|
| 189 |
-
return 0;
|
| 190 |
-
}
|
| 191 |
-
|
| 192 |
-
static int hf3fs_usrbio_getevents(struct thread_data *td, unsigned int min, unsigned int max, const struct timespec fio_unused *t) {
|
| 193 |
-
auto &vec = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->io_us;
|
| 194 |
-
auto *sd = static_cast<hf3fs_usrbio_data *>(td->io_ops_data);
|
| 195 |
-
int ret = 0;
|
| 196 |
-
if (min) {
|
| 197 |
-
ret = sd->events;
|
| 198 |
-
sd->events = 0;
|
| 199 |
-
}
|
| 200 |
-
return ret;
|
| 201 |
-
}
|
| 202 |
-
|
| 203 |
-
static struct io_u *hf3fs_usrbio_event(struct thread_data *td, int event) {
|
| 204 |
-
auto &vec = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->io_us;
|
| 205 |
-
return vec[event];
|
| 206 |
-
}
|
| 207 |
-
|
| 208 |
-
static void hf3fs_usrbio_cleanup(struct thread_data *td) {
|
| 209 |
-
delete static_cast<hf3fs_usrbio_data *>(td->io_ops_data);
|
| 210 |
-
}
|
| 211 |
-
|
| 212 |
-
static int hf3fs_usrbio_open(struct thread_data *td, struct fio_file *f) {
|
| 213 |
-
int flags = 0;
|
| 214 |
-
if (td_write(td)) {
|
| 215 |
-
if (!read_only) {
|
| 216 |
-
flags = O_RDWR;
|
| 217 |
-
}
|
| 218 |
-
} else if (td_read(td)) {
|
| 219 |
-
if (!read_only) {
|
| 220 |
-
flags = O_RDWR;
|
| 221 |
-
} else {
|
| 222 |
-
flags = O_RDONLY;
|
| 223 |
-
}
|
| 224 |
-
}
|
| 225 |
-
|
| 226 |
-
f->fd = open(f->file_name, flags);
|
| 227 |
-
hf3fs_reg_fd(f->fd, 0);
|
| 228 |
-
td->o.open_files++;
|
| 229 |
-
return 0;
|
| 230 |
-
}
|
| 231 |
-
|
| 232 |
-
static int hf3fs_usrbio_close(struct thread_data *td, struct fio_file *f) {
|
| 233 |
-
hf3fs_dereg_fd(f->fd);
|
| 234 |
-
close(f->fd);
|
| 235 |
-
f->fd = -1;
|
| 236 |
-
return 0;
|
| 237 |
-
}
|
| 238 |
-
|
| 239 |
-
static int hf3fs_usrbio_alloc(struct thread_data *td, size_t total_mem) {
|
| 240 |
-
struct hf3fs_usrbio_options *options = td->eo;
|
| 241 |
-
|
| 242 |
-
auto &iov = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->iov;
|
| 243 |
-
auto res = hf3fs_iovcreate(&iov, options->mountpoint, total_mem, 0, -1);
|
| 244 |
-
if (res < 0) {
|
| 245 |
-
return res;
|
| 246 |
-
}
|
| 247 |
-
|
| 248 |
-
td->orig_buffer = iov.base;
|
| 249 |
-
return 0;
|
| 250 |
-
}
|
| 251 |
-
|
| 252 |
-
static void hf3fs_usrbio_free(struct thread_data *td) {
|
| 253 |
-
auto &iov = static_cast<hf3fs_usrbio_data *>(td->io_ops_data)->iov;
|
| 254 |
-
hf3fs_iovdestroy(&iov);
|
| 255 |
-
}
|
| 256 |
-
|
| 257 |
-
static int hf3fs_invalidate(struct thread_data *td, struct fio_file *f) {
|
| 258 |
-
return 0;
|
| 259 |
-
}
|
| 260 |
-
|
| 261 |
-
extern "C" {
|
| 262 |
-
|
| 263 |
-
static struct ioengine_ops ioengine;
|
| 264 |
-
void get_ioengine(struct ioengine_ops **ioengine_ptr) {
|
| 265 |
-
*ioengine_ptr = &ioengine;
|
| 266 |
-
|
| 267 |
-
ioengine.name = "hf3fs_usrbio",
|
| 268 |
-
ioengine.version = FIO_IOOPS_VERSION;
|
| 269 |
-
ioengine.flags = FIO_NODISKUTIL;
|
| 270 |
-
ioengine.init = hf3fs_usrbio_init;
|
| 271 |
-
ioengine.queue = hf3fs_usrbio_queue;
|
| 272 |
-
ioengine.commit = hf3fs_usrbio_commit;
|
| 273 |
-
ioengine.getevents = hf3fs_usrbio_getevents;
|
| 274 |
-
ioengine.event = hf3fs_usrbio_event;
|
| 275 |
-
ioengine.cleanup = hf3fs_usrbio_cleanup;
|
| 276 |
-
ioengine.open_file = hf3fs_usrbio_open;
|
| 277 |
-
ioengine.close_file = hf3fs_usrbio_close;
|
| 278 |
-
ioengine.invalidate = hf3fs_invalidate;
|
| 279 |
-
ioengine.get_file_size = generic_get_file_size;
|
| 280 |
-
ioengine.iomem_alloc = hf3fs_usrbio_alloc;
|
| 281 |
-
ioengine.iomem_free = hf3fs_usrbio_free;
|
| 282 |
-
ioengine.option_struct_size = sizeof(struct hf3fs_usrbio_options);
|
| 283 |
-
ioengine.options = options;
|
| 284 |
-
}
|
| 285 |
-
|
| 286 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/storage_bench/CMakeLists.txt
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
target_add_bin(storage_bench "StorageBench.cc" test-fabric-lib storage-client storage memory-common follybenchmark gmock fdb mgmtd)
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/storage_bench/StorageBench.cc
DELETED
|
@@ -1,291 +0,0 @@
|
|
| 1 |
-
#include "StorageBench.h"
|
| 2 |
-
|
| 3 |
-
#include <folly/init/Init.h>
|
| 4 |
-
|
| 5 |
-
#include "common/monitor/Monitor.h"
|
| 6 |
-
#include "memory/common/OverrideCppNewDelete.h"
|
| 7 |
-
|
| 8 |
-
DEFINE_bool(benchmarkNetwork, false, "Run in network benchmark mode");
|
| 9 |
-
DEFINE_bool(benchmarkStorage, false, "Run in storage benchmark mode");
|
| 10 |
-
DEFINE_bool(ignoreIOError, false, "Ignore all IO errors");
|
| 11 |
-
DEFINE_bool(injectRandomServerError, false, "Inject random server errors");
|
| 12 |
-
DEFINE_bool(injectRandomClientError, false, "Inject random client errors");
|
| 13 |
-
DEFINE_bool(retryPermanentError, false, "Retry requests with permanent errors");
|
| 14 |
-
DEFINE_bool(verifyReadData, false, "Check if the read data are correct");
|
| 15 |
-
DEFINE_bool(verifyReadChecksum, false, "Verify the checksum of read IOs");
|
| 16 |
-
DEFINE_bool(verifyWriteChecksum, true, "Verify the checksum of write IOs");
|
| 17 |
-
DEFINE_bool(randomShuffleChunkIds, false, "Random shuffle generated chunk IDs");
|
| 18 |
-
DEFINE_bool(generateTestData, true, "Generate test data for read test");
|
| 19 |
-
DEFINE_bool(sparseChunkIds, false, "Generate sparse chunk IDs");
|
| 20 |
-
DEFINE_bool(truncateChunks, false, "Truncate chunks");
|
| 21 |
-
DEFINE_bool(cleanupChunks, false, "Clean up (remove) chunks after benchmark");
|
| 22 |
-
DEFINE_bool(cleanupChunksBeforeBench, false, "Clean up (remove) chunks before benchmark");
|
| 23 |
-
DEFINE_bool(serverMode, false, "Run in server mode");
|
| 24 |
-
DEFINE_bool(clientMode, false, "Run in client mode");
|
| 25 |
-
DEFINE_bool(clusterMode, false, "Run in cluster mode (get routing info from mgmtd)");
|
| 26 |
-
DEFINE_bool(printMetrics, false, "Enable printing metrics in logs");
|
| 27 |
-
DEFINE_bool(reportMetrics, false, "Enable reporting metrics to ClickHouse");
|
| 28 |
-
DEFINE_uint32(metaStoreType, 0, "Metadata store type (0=LevelDB, 1=RocksDB, 2=MemDB)");
|
| 29 |
-
DEFINE_uint32(chunkSizeKB, 512, "Chunk size (KB)");
|
| 30 |
-
DEFINE_uint32(chainTableId, 0, "Chain table id");
|
| 31 |
-
DEFINE_uint32(chainTableVersion, 0, "Chain table version");
|
| 32 |
-
DEFINE_string(chainIds, "", "List of chain ids");
|
| 33 |
-
DEFINE_string(storageNodeIds, "", "List of storage node ids");
|
| 34 |
-
DEFINE_uint32(numChains, 1, "Number of chains");
|
| 35 |
-
DEFINE_uint32(numReplicas, 1, "Number of replicas");
|
| 36 |
-
DEFINE_uint32(numStorageNodes, 1, "Number of storage nodes");
|
| 37 |
-
DEFINE_uint32(numChunks, 1, "Number of chunks");
|
| 38 |
-
DEFINE_uint32(readSize, 4096, "Read IO size");
|
| 39 |
-
DEFINE_uint32(writeSize, 131072, "Write IO size");
|
| 40 |
-
DEFINE_uint32(memoryAlignment, 1, "Alignment size of each IO buffer");
|
| 41 |
-
DEFINE_uint32(readOffAlignment, 0, "Alignment size of each read IO offset");
|
| 42 |
-
DEFINE_uint32(batchSize, 1, "Read/write batch size");
|
| 43 |
-
DEFINE_uint32(readBatchSize, 0, "Read batch size");
|
| 44 |
-
DEFINE_uint32(writeBatchSize, 0, "Write batch size");
|
| 45 |
-
DEFINE_uint32(removeBatchSize, 0, "Remove batch size");
|
| 46 |
-
DEFINE_uint32(numReadSecs, 0, "Read test duration");
|
| 47 |
-
DEFINE_uint32(numWriteSecs, 0, "Write test duration");
|
| 48 |
-
DEFINE_uint32(numCoroutines, 1, "Number of coroutines");
|
| 49 |
-
DEFINE_uint32(numTestThreads, 1, "Number of test threads");
|
| 50 |
-
DEFINE_uint32(randSeed, 0, "Random seed for chunk id generation");
|
| 51 |
-
DEFINE_uint32(chunkIdPrefix, 0xFFFF, "The most significant 2 bytes of chunk ids");
|
| 52 |
-
DEFINE_uint32(serviceLevel, 0, "Service level");
|
| 53 |
-
DEFINE_uint32(listenPort, 0, "Listen port");
|
| 54 |
-
DEFINE_uint32(clientTimeoutMS, 30000, "Client timeout (milliseconds)");
|
| 55 |
-
DEFINE_string(dataPaths, folly::fs::temp_directory_path().string(), "Comma or space separated list of paths");
|
| 56 |
-
DEFINE_string(clientConfig, "", "Path of client config");
|
| 57 |
-
DEFINE_string(serverConfig, "", "Path of server config");
|
| 58 |
-
DEFINE_string(statsFilePath, "./perfstats.csv", "Path of performance stats file");
|
| 59 |
-
DEFINE_string(ibvDevices, "mlx5_0,mlx5_1", "Comma or space separated list of ibv devices");
|
| 60 |
-
DEFINE_string(ibnetZones, "", "Comma or space separated list of IB network zones");
|
| 61 |
-
DEFINE_string(clusterId, "stage", "Cluster id used to connect to mgmtd");
|
| 62 |
-
DEFINE_string(mgmtdEndpoints,
|
| 63 |
-
"",
|
| 64 |
-
"Comma or space separated list of mgmtd endpoints, "
|
| 65 |
-
"e.g. 'RDMA://10.1.1.1:1234,RDMA://10.1.1.2:1234'");
|
| 66 |
-
DEFINE_string(storageEndpoints,
|
| 67 |
-
"",
|
| 68 |
-
"Comma or space separated list of storage ids and endpoints, "
|
| 69 |
-
"e.g. '1@RDMA://10.1.1.1:1234,2@RDMA://10.1.1.2:1234'");
|
| 70 |
-
DEFINE_string(monitorEndpoint, "", "Monitor endpoint");
|
| 71 |
-
DEFINE_uint32(defaultPKeyIndex, 1, "IB default pkey index");
|
| 72 |
-
|
| 73 |
-
namespace hf3fs::storage::benchmark {
|
| 74 |
-
|
| 75 |
-
using namespace hf3fs::storage::client;
|
| 76 |
-
|
| 77 |
-
std::vector<uint32_t> stringToIntVec(const std::string &str) {
|
| 78 |
-
std::vector<uint32_t> vec;
|
| 79 |
-
std::vector<std::string> substrs;
|
| 80 |
-
boost::split(substrs, str, boost::is_any_of(", "));
|
| 81 |
-
|
| 82 |
-
for (auto s : substrs) {
|
| 83 |
-
boost::trim(s);
|
| 84 |
-
if (s.empty()) continue;
|
| 85 |
-
|
| 86 |
-
uint32_t n = std::stoul(s);
|
| 87 |
-
vec.push_back(n);
|
| 88 |
-
}
|
| 89 |
-
|
| 90 |
-
return vec;
|
| 91 |
-
}
|
| 92 |
-
|
| 93 |
-
bool runBenchmarks() {
|
| 94 |
-
std::vector<std::string> dataPathStrs;
|
| 95 |
-
boost::split(dataPathStrs, FLAGS_dataPaths, boost::is_any_of(", "));
|
| 96 |
-
|
| 97 |
-
std::vector<hf3fs::Path> dataPaths;
|
| 98 |
-
dataPaths.reserve(dataPathStrs.size());
|
| 99 |
-
|
| 100 |
-
for (auto str : dataPathStrs) {
|
| 101 |
-
boost::trim(str);
|
| 102 |
-
if (str.empty()) continue;
|
| 103 |
-
|
| 104 |
-
dataPaths.emplace_back(str);
|
| 105 |
-
}
|
| 106 |
-
|
| 107 |
-
std::vector<std::string> endpointRawStrs;
|
| 108 |
-
boost::split(endpointRawStrs, FLAGS_storageEndpoints, boost::is_any_of(", "));
|
| 109 |
-
|
| 110 |
-
std::map<NodeId, net::Address> storageEndpoints;
|
| 111 |
-
|
| 112 |
-
for (auto str : endpointRawStrs) {
|
| 113 |
-
boost::trim(str);
|
| 114 |
-
if (str.empty()) continue;
|
| 115 |
-
|
| 116 |
-
std::vector<std::string> nodeEndpointStrs;
|
| 117 |
-
boost::split(nodeEndpointStrs, str, boost::is_any_of("@"));
|
| 118 |
-
|
| 119 |
-
if (nodeEndpointStrs.size() != 2) {
|
| 120 |
-
XLOGF(ERR, "Wrong node endpoint string: {}", str);
|
| 121 |
-
return false;
|
| 122 |
-
}
|
| 123 |
-
|
| 124 |
-
auto nodeIdStr = nodeEndpointStrs[0];
|
| 125 |
-
auto endpointStr = nodeEndpointStrs[1];
|
| 126 |
-
|
| 127 |
-
auto nodeId = (NodeId)std::stoul(nodeIdStr);
|
| 128 |
-
auto endpoint = net::Address::fromString(endpointStr);
|
| 129 |
-
storageEndpoints[nodeId] = endpoint;
|
| 130 |
-
XLOGF(WARN, "Add storage endpoint: {} @ {}", nodeId, endpoint);
|
| 131 |
-
}
|
| 132 |
-
|
| 133 |
-
if (FLAGS_clientMode && storageEndpoints.empty()) {
|
| 134 |
-
XLOGF(ERR, "No storage endpoint specified for client mode");
|
| 135 |
-
return false;
|
| 136 |
-
}
|
| 137 |
-
|
| 138 |
-
if (FLAGS_readSize > FLAGS_chunkSizeKB * 1024) {
|
| 139 |
-
XLOGF(ERR, "Read size {} is greater than chunk size {}", FLAGS_readSize, FLAGS_chunkSizeKB * 1024);
|
| 140 |
-
return false;
|
| 141 |
-
}
|
| 142 |
-
|
| 143 |
-
auto metaStoreType = static_cast<kv::KVStore::Type>(FLAGS_metaStoreType);
|
| 144 |
-
|
| 145 |
-
test::SystemSetupConfig setupConfig = {
|
| 146 |
-
FLAGS_chunkSizeKB * 1024 /*chunkSize*/,
|
| 147 |
-
FLAGS_numChains /*numChains*/,
|
| 148 |
-
FLAGS_numReplicas /*numReplicas*/,
|
| 149 |
-
FLAGS_numStorageNodes /*numStorageNodes*/,
|
| 150 |
-
dataPaths /*dataPaths*/,
|
| 151 |
-
FLAGS_clientConfig,
|
| 152 |
-
FLAGS_serverConfig,
|
| 153 |
-
storageEndpoints,
|
| 154 |
-
FLAGS_serviceLevel,
|
| 155 |
-
FLAGS_listenPort,
|
| 156 |
-
StorageClient::ImplementationType::RPC /*clientImplType*/,
|
| 157 |
-
metaStoreType,
|
| 158 |
-
true /*useFakeMgmtdClient*/,
|
| 159 |
-
!FLAGS_clientMode /*startStorageServer*/,
|
| 160 |
-
false,
|
| 161 |
-
};
|
| 162 |
-
|
| 163 |
-
std::vector<std::string> ibvDevices;
|
| 164 |
-
boost::split(ibvDevices, FLAGS_ibvDevices, boost::is_any_of(", "));
|
| 165 |
-
|
| 166 |
-
std::vector<std::string> ibnetZones;
|
| 167 |
-
boost::split(ibnetZones, FLAGS_ibnetZones, boost::is_any_of(", "));
|
| 168 |
-
|
| 169 |
-
endpointRawStrs.clear();
|
| 170 |
-
boost::split(endpointRawStrs, FLAGS_mgmtdEndpoints, boost::is_any_of(", "));
|
| 171 |
-
|
| 172 |
-
std::vector<net::Address> mgmtdEndpoints;
|
| 173 |
-
|
| 174 |
-
for (auto str : endpointRawStrs) {
|
| 175 |
-
boost::trim(str);
|
| 176 |
-
if (str.empty()) continue;
|
| 177 |
-
|
| 178 |
-
auto endpoint = net::Address::fromString(str);
|
| 179 |
-
mgmtdEndpoints.push_back(endpoint);
|
| 180 |
-
XLOGF(WARN, "Add mgmtd endpoint: {}", endpoint);
|
| 181 |
-
}
|
| 182 |
-
|
| 183 |
-
StorageBench::Options benchOptions{FLAGS_numChunks,
|
| 184 |
-
FLAGS_readSize,
|
| 185 |
-
FLAGS_writeSize,
|
| 186 |
-
FLAGS_batchSize,
|
| 187 |
-
FLAGS_numReadSecs,
|
| 188 |
-
FLAGS_numWriteSecs,
|
| 189 |
-
FLAGS_clientTimeoutMS,
|
| 190 |
-
FLAGS_numCoroutines,
|
| 191 |
-
FLAGS_numTestThreads,
|
| 192 |
-
FLAGS_randSeed,
|
| 193 |
-
(uint16_t)FLAGS_chunkIdPrefix,
|
| 194 |
-
FLAGS_benchmarkNetwork,
|
| 195 |
-
FLAGS_benchmarkStorage,
|
| 196 |
-
FLAGS_ignoreIOError,
|
| 197 |
-
FLAGS_injectRandomServerError,
|
| 198 |
-
FLAGS_injectRandomClientError,
|
| 199 |
-
FLAGS_retryPermanentError,
|
| 200 |
-
FLAGS_verifyReadData,
|
| 201 |
-
FLAGS_verifyReadChecksum,
|
| 202 |
-
FLAGS_verifyWriteChecksum,
|
| 203 |
-
FLAGS_randomShuffleChunkIds,
|
| 204 |
-
FLAGS_generateTestData,
|
| 205 |
-
FLAGS_sparseChunkIds,
|
| 206 |
-
FLAGS_statsFilePath,
|
| 207 |
-
ibvDevices,
|
| 208 |
-
ibnetZones,
|
| 209 |
-
mgmtdEndpoints,
|
| 210 |
-
FLAGS_clusterId,
|
| 211 |
-
FLAGS_chainTableId,
|
| 212 |
-
FLAGS_chainTableVersion,
|
| 213 |
-
stringToIntVec(FLAGS_chainIds),
|
| 214 |
-
stringToIntVec(FLAGS_storageNodeIds),
|
| 215 |
-
FLAGS_memoryAlignment,
|
| 216 |
-
FLAGS_readOffAlignment,
|
| 217 |
-
FLAGS_defaultPKeyIndex,
|
| 218 |
-
FLAGS_readBatchSize,
|
| 219 |
-
FLAGS_writeBatchSize,
|
| 220 |
-
FLAGS_removeBatchSize};
|
| 221 |
-
|
| 222 |
-
StorageBench bench(setupConfig, benchOptions);
|
| 223 |
-
|
| 224 |
-
if (FLAGS_clusterMode) {
|
| 225 |
-
if (!bench.connect()) {
|
| 226 |
-
XLOGF(WARN, "Failed to connect to cluster");
|
| 227 |
-
return false;
|
| 228 |
-
}
|
| 229 |
-
} else {
|
| 230 |
-
if (!bench.setup()) {
|
| 231 |
-
XLOGF(WARN, "Failed to set up benchmark");
|
| 232 |
-
return false;
|
| 233 |
-
}
|
| 234 |
-
}
|
| 235 |
-
|
| 236 |
-
bench.generateChunkIds();
|
| 237 |
-
|
| 238 |
-
if (FLAGS_cleanupChunksBeforeBench) {
|
| 239 |
-
bench.cleanup();
|
| 240 |
-
}
|
| 241 |
-
|
| 242 |
-
bool runOK = true;
|
| 243 |
-
|
| 244 |
-
if (FLAGS_serverMode) {
|
| 245 |
-
XLOGF(WARN, "Waiting...");
|
| 246 |
-
while (true) {
|
| 247 |
-
::sleep(1);
|
| 248 |
-
}
|
| 249 |
-
} else {
|
| 250 |
-
runOK = bench.run();
|
| 251 |
-
}
|
| 252 |
-
|
| 253 |
-
if (FLAGS_truncateChunks) {
|
| 254 |
-
bench.truncate();
|
| 255 |
-
}
|
| 256 |
-
|
| 257 |
-
if (FLAGS_cleanupChunks) {
|
| 258 |
-
bench.cleanup();
|
| 259 |
-
}
|
| 260 |
-
|
| 261 |
-
bench.teardown();
|
| 262 |
-
|
| 263 |
-
return runOK;
|
| 264 |
-
}
|
| 265 |
-
|
| 266 |
-
} // namespace hf3fs::storage::benchmark
|
| 267 |
-
|
| 268 |
-
int main(int argc, char **argv) {
|
| 269 |
-
folly::init(&argc, &argv, true);
|
| 270 |
-
hf3fs::monitor::Monitor::Config monitorConfig;
|
| 271 |
-
|
| 272 |
-
if (FLAGS_printMetrics || FLAGS_reportMetrics) {
|
| 273 |
-
if (FLAGS_printMetrics) {
|
| 274 |
-
monitorConfig.reporters(0).set_type("log");
|
| 275 |
-
} else if (FLAGS_reportMetrics) {
|
| 276 |
-
monitorConfig.reporters(0).set_type("monitor_collector");
|
| 277 |
-
monitorConfig.reporters(0).monitor_collector().set_remote_ip(FLAGS_monitorEndpoint);
|
| 278 |
-
monitorConfig.set_reporters_length(1);
|
| 279 |
-
}
|
| 280 |
-
|
| 281 |
-
auto monitorResult = hf3fs::monitor::Monitor::start(monitorConfig);
|
| 282 |
-
XLOGF_IF(FATAL, !monitorResult, "Failed to start monitor: {}", monitorResult.error());
|
| 283 |
-
}
|
| 284 |
-
|
| 285 |
-
bool ok = hf3fs::storage::benchmark::runBenchmarks();
|
| 286 |
-
|
| 287 |
-
hf3fs::monitor::Monitor::stop();
|
| 288 |
-
hf3fs::memory::shutdown();
|
| 289 |
-
|
| 290 |
-
return ok ? EXIT_SUCCESS : EXIT_FAILURE;
|
| 291 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/benchmarks/storage_bench/StorageBench.h
DELETED
|
@@ -1,906 +0,0 @@
|
|
| 1 |
-
#pragma once
|
| 2 |
-
|
| 3 |
-
#include <boost/algorithm/string.hpp>
|
| 4 |
-
#include <boost/core/ignore_unused.hpp>
|
| 5 |
-
#include <boost/filesystem/string_file.hpp>
|
| 6 |
-
#include <common/utils/UtcTime.h>
|
| 7 |
-
#include <folly/experimental/coro/Collect.h>
|
| 8 |
-
#include <folly/futures/Barrier.h>
|
| 9 |
-
#include <folly/stats/TDigest.h>
|
| 10 |
-
#include <numeric>
|
| 11 |
-
#include <optional>
|
| 12 |
-
#include <random>
|
| 13 |
-
#include <vector>
|
| 14 |
-
#include <fstream>
|
| 15 |
-
|
| 16 |
-
#include "common/logging/LogInit.h"
|
| 17 |
-
#include "common/net/ib/IBDevice.h"
|
| 18 |
-
#include "common/utils/Duration.h"
|
| 19 |
-
#include "common/utils/SysResource.h"
|
| 20 |
-
#include "tests/lib/UnitTestFabric.h"
|
| 21 |
-
|
| 22 |
-
namespace hf3fs::storage::benchmark {
|
| 23 |
-
|
| 24 |
-
using namespace hf3fs::storage::client;
|
| 25 |
-
|
| 26 |
-
class StorageBench : public test::UnitTestFabric {
|
| 27 |
-
public:
|
| 28 |
-
struct Options {
|
| 29 |
-
const size_t numChunks;
|
| 30 |
-
const size_t readSize;
|
| 31 |
-
const size_t writeSize;
|
| 32 |
-
const size_t batchSize;
|
| 33 |
-
const uint64_t numReadSecs;
|
| 34 |
-
const uint64_t numWriteSecs;
|
| 35 |
-
const uint64_t clientTimeoutMS;
|
| 36 |
-
const size_t numCoroutines;
|
| 37 |
-
const size_t numTestThreads;
|
| 38 |
-
const uint32_t randSeed = 0;
|
| 39 |
-
const uint16_t chunkIdPrefix = 0xFFFF;
|
| 40 |
-
const bool benchmarkNetwork = false;
|
| 41 |
-
const bool benchmarkStorage = false;
|
| 42 |
-
const bool ignoreIOError = false;
|
| 43 |
-
const bool injectRandomServerError = false;
|
| 44 |
-
const bool injectRandomClientError = false;
|
| 45 |
-
const bool retryPermanentError = false;
|
| 46 |
-
const bool verifyReadData = false;
|
| 47 |
-
const bool verifyReadChecksum = false;
|
| 48 |
-
const bool verifyWriteChecksum = true;
|
| 49 |
-
const bool randomShuffleChunkIds = true;
|
| 50 |
-
const bool generateTestData = true;
|
| 51 |
-
const bool sparseChunkIds = true;
|
| 52 |
-
const std::string statsFilePath = "./perfstats.csv";
|
| 53 |
-
const std::vector<std::string> ibvDevices = {};
|
| 54 |
-
const std::vector<std::string> ibnetZones = {};
|
| 55 |
-
const std::vector<net::Address> mgmtdEndpoints = {};
|
| 56 |
-
const std::string clusterId = kClusterId;
|
| 57 |
-
const uint32_t chainTableId = 0;
|
| 58 |
-
const uint32_t chainTableVersion = 0;
|
| 59 |
-
const std::vector<uint32_t> chainIds = {};
|
| 60 |
-
const std::vector<uint32_t> storageNodeIds = {};
|
| 61 |
-
const size_t memoryAlignment = 1;
|
| 62 |
-
const size_t readOffAlignment = 0;
|
| 63 |
-
const size_t defaultPKeyIndex = 1;
|
| 64 |
-
size_t readBatchSize = 0;
|
| 65 |
-
size_t writeBatchSize = 0;
|
| 66 |
-
size_t removeBatchSize = 0;
|
| 67 |
-
};
|
| 68 |
-
|
| 69 |
-
private:
|
| 70 |
-
static constexpr uint32_t kTDigestMaxSize = 1000;
|
| 71 |
-
|
| 72 |
-
struct ChunkInfo {
|
| 73 |
-
ChainId chainId;
|
| 74 |
-
ChunkId chunkId;
|
| 75 |
-
size_t size;
|
| 76 |
-
};
|
| 77 |
-
|
| 78 |
-
Options benchOptions_;
|
| 79 |
-
std::vector<folly::TDigest> writeLatencyDigests_;
|
| 80 |
-
std::vector<folly::TDigest> readLatencyDigests_;
|
| 81 |
-
folly::CPUThreadPoolExecutor testExecutor_;
|
| 82 |
-
std::atomic_uint64_t numWriteBytes_;
|
| 83 |
-
std::atomic_uint64_t numReadBytes_;
|
| 84 |
-
folly::Random::DefaultGenerator randGen_;
|
| 85 |
-
std::vector<std::vector<ChunkInfo>> chunkInfos_;
|
| 86 |
-
std::vector<size_t> numCreatedChunks_;
|
| 87 |
-
size_t totalNumChunks_;
|
| 88 |
-
double totalChunkGiB_;
|
| 89 |
-
|
| 90 |
-
public:
|
| 91 |
-
StorageBench(const test::SystemSetupConfig &setupConfig, const Options &options)
|
| 92 |
-
: UnitTestFabric(setupConfig),
|
| 93 |
-
benchOptions_(options),
|
| 94 |
-
writeLatencyDigests_(benchOptions_.numCoroutines, folly::TDigest(kTDigestMaxSize)),
|
| 95 |
-
readLatencyDigests_(benchOptions_.numCoroutines, folly::TDigest(kTDigestMaxSize)),
|
| 96 |
-
testExecutor_(benchOptions_.numTestThreads),
|
| 97 |
-
numWriteBytes_(0),
|
| 98 |
-
numReadBytes_(0),
|
| 99 |
-
randGen_(folly::Random::create()),
|
| 100 |
-
chunkInfos_(benchOptions_.numCoroutines),
|
| 101 |
-
numCreatedChunks_(benchOptions_.numCoroutines) {
|
| 102 |
-
if (benchOptions_.readBatchSize == 0) benchOptions_.readBatchSize = benchOptions_.batchSize;
|
| 103 |
-
if (benchOptions_.writeBatchSize == 0) benchOptions_.writeBatchSize = benchOptions_.batchSize;
|
| 104 |
-
if (benchOptions_.removeBatchSize == 0) benchOptions_.removeBatchSize = benchOptions_.batchSize;
|
| 105 |
-
}
|
| 106 |
-
|
| 107 |
-
void generateChunkIds() {
|
| 108 |
-
static_assert(sizeof(benchOptions_.chunkIdPrefix) == 2);
|
| 109 |
-
uint64_t chunkIdPrefix64 = ((uint64_t)benchOptions_.chunkIdPrefix) << (UINT64_WIDTH - UINT16_WIDTH);
|
| 110 |
-
std::sort(chainIds_.begin(), chainIds_.end());
|
| 111 |
-
static thread_local std::mt19937 generator;
|
| 112 |
-
randGen_.seed(benchOptions_.randSeed);
|
| 113 |
-
|
| 114 |
-
XLOGF(WARN,
|
| 115 |
-
"Generating {} chunk ids with prefix {:08X} and random seed {}...",
|
| 116 |
-
totalNumChunks_,
|
| 117 |
-
chunkIdPrefix64,
|
| 118 |
-
benchOptions_.randSeed);
|
| 119 |
-
|
| 120 |
-
for (auto &chunkInfos : chunkInfos_) {
|
| 121 |
-
uint64_t instancePrefix = chunkIdPrefix64 | folly::Random::rand64(randGen_);
|
| 122 |
-
XLOGF(DBG3, "Random chunk id prefix {:08X}", instancePrefix);
|
| 123 |
-
|
| 124 |
-
chunkInfos.reserve(chainIds_.size() * benchOptions_.numChunks);
|
| 125 |
-
|
| 126 |
-
for (auto chainId : chainIds_) {
|
| 127 |
-
for (size_t chunkIndex = 0; chunkIndex < benchOptions_.numChunks; chunkIndex++) {
|
| 128 |
-
if (benchOptions_.sparseChunkIds) {
|
| 129 |
-
uint64_t chunkIdHigh = chunkIdPrefix64 | (folly::Random::rand64(randGen_) & 0x000000FFFFFFFFFF);
|
| 130 |
-
uint64_t chunkIdLow = (folly::Random::rand64(randGen_) << UINT32_WIDTH) + chunkIndex;
|
| 131 |
-
chunkInfos.push_back({chainId, ChunkId(chunkIdHigh, chunkIdLow), 0});
|
| 132 |
-
} else {
|
| 133 |
-
chunkInfos.push_back({chainId, ChunkId(instancePrefix, chunkIndex), 0});
|
| 134 |
-
}
|
| 135 |
-
}
|
| 136 |
-
}
|
| 137 |
-
|
| 138 |
-
if (benchOptions_.randomShuffleChunkIds) std::shuffle(chunkInfos.begin(), chunkInfos.end(), generator);
|
| 139 |
-
}
|
| 140 |
-
}
|
| 141 |
-
|
| 142 |
-
bool connect() {
|
| 143 |
-
XLOGF(INFO, "Start to connect...");
|
| 144 |
-
|
| 145 |
-
if (!setupIBSock()) {
|
| 146 |
-
return false;
|
| 147 |
-
}
|
| 148 |
-
|
| 149 |
-
mgmtdClientConfig_.set_mgmtd_server_addresses(benchOptions_.mgmtdEndpoints);
|
| 150 |
-
mgmtdClientConfig_.set_enable_auto_refresh(true);
|
| 151 |
-
mgmtdClientConfig_.set_enable_auto_heartbeat(false);
|
| 152 |
-
mgmtdClientConfig_.set_enable_auto_extend_client_session(true);
|
| 153 |
-
mgmtdClientConfig_.set_auto_refresh_interval(3_s);
|
| 154 |
-
mgmtdClientConfig_.set_auto_heartbeat_interval(3_s);
|
| 155 |
-
mgmtdClientConfig_.set_auto_extend_client_session_interval(3_s);
|
| 156 |
-
mgmtdClientConfig_.set_accept_incomplete_routing_info_during_mgmtd_bootstrapping(false);
|
| 157 |
-
|
| 158 |
-
if (!client_.start()) {
|
| 159 |
-
XLOGF(ERR, "Failed to start net client for mgmtd client");
|
| 160 |
-
return false;
|
| 161 |
-
}
|
| 162 |
-
|
| 163 |
-
XLOGF(INFO, "Creating mgmtd client...");
|
| 164 |
-
|
| 165 |
-
auto stubFactory = std::make_unique<hf3fs::stubs::RealStubFactory<hf3fs::mgmtd::MgmtdServiceStub>>(
|
| 166 |
-
stubs::ClientContextCreator{[this](net::Address addr) { return client_.serdeCtx(addr); }});
|
| 167 |
-
auto mgmtdClient = std::make_unique<hf3fs::client::MgmtdClientForClient>(benchOptions_.clusterId,
|
| 168 |
-
std::move(stubFactory),
|
| 169 |
-
mgmtdClientConfig_);
|
| 170 |
-
|
| 171 |
-
auto physicalHostnameRes = SysResource::hostname(/*physicalMachineName=*/true);
|
| 172 |
-
if (!physicalHostnameRes) {
|
| 173 |
-
XLOGF(ERR, "getHostname(true) failed: {}", physicalHostnameRes.error());
|
| 174 |
-
return false;
|
| 175 |
-
}
|
| 176 |
-
|
| 177 |
-
auto containerHostnameRes = SysResource::hostname(/*physicalMachineName=*/false);
|
| 178 |
-
if (!containerHostnameRes) {
|
| 179 |
-
XLOGF(ERR, "getHostname(false) failed: {}", containerHostnameRes.error());
|
| 180 |
-
return false;
|
| 181 |
-
}
|
| 182 |
-
|
| 183 |
-
mgmtdClient->setClientSessionPayload({clientId_.uuid.toHexString(),
|
| 184 |
-
flat::NodeType::CLIENT,
|
| 185 |
-
flat::ClientSessionData::create(
|
| 186 |
-
/*universalId=*/*physicalHostnameRes,
|
| 187 |
-
/*description=*/fmt::format("StorageBench: {}", *containerHostnameRes),
|
| 188 |
-
/*serviceGroups=*/std::vector<flat::ServiceGroupInfo>{},
|
| 189 |
-
flat::ReleaseVersion::fromVersionInfo()),
|
| 190 |
-
flat::UserInfo{}});
|
| 191 |
-
folly::coro::blockingWait(mgmtdClient->start(&client_.tpg().bgThreadPool().randomPick()));
|
| 192 |
-
mgmtdForClient_ = std::move(mgmtdClient);
|
| 193 |
-
|
| 194 |
-
// get routing info
|
| 195 |
-
|
| 196 |
-
for (size_t retry = 0; retry < 15; retry++) {
|
| 197 |
-
auto routingInfo = mgmtdForClient_->getRoutingInfo();
|
| 198 |
-
|
| 199 |
-
if (routingInfo == nullptr || routingInfo->raw()->chains.empty()) {
|
| 200 |
-
XLOGF(WARN, "Empty routing info, #{} retry...", retry + 1);
|
| 201 |
-
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
| 202 |
-
} else {
|
| 203 |
-
for (const auto &[tableId, tableVersions] : routingInfo->raw()->chainTables) {
|
| 204 |
-
if (tableId == benchOptions_.chainTableId) {
|
| 205 |
-
if (tableVersions.empty()) {
|
| 206 |
-
XLOGF(WARN, "No version found for chain table with id {}", tableId);
|
| 207 |
-
return false;
|
| 208 |
-
}
|
| 209 |
-
|
| 210 |
-
XLOGF(INFO, "Found {} version(s) of chain table {}", tableVersions.size(), benchOptions_.chainTableId);
|
| 211 |
-
|
| 212 |
-
flat::ChainTable chainTable;
|
| 213 |
-
|
| 214 |
-
if (benchOptions_.chainTableVersion > 0) {
|
| 215 |
-
flat::ChainTableVersion tableVersion(benchOptions_.chainTableVersion);
|
| 216 |
-
auto tableIter = tableVersions.find(tableVersion);
|
| 217 |
-
|
| 218 |
-
if (tableIter == tableVersions.end()) {
|
| 219 |
-
XLOGF(WARN, "Version {} not found in chain table with id {}", tableVersion, tableId);
|
| 220 |
-
return false;
|
| 221 |
-
}
|
| 222 |
-
|
| 223 |
-
chainTable = tableIter->second;
|
| 224 |
-
XLOGF(INFO,
|
| 225 |
-
"Found version {} of chain table {}: {}",
|
| 226 |
-
benchOptions_.chainTableVersion,
|
| 227 |
-
benchOptions_.chainTableId,
|
| 228 |
-
chainTable.chainTableVersion);
|
| 229 |
-
} else {
|
| 230 |
-
const auto iter = --tableVersions.cend();
|
| 231 |
-
const auto &latestTable = iter->second;
|
| 232 |
-
chainTable = latestTable;
|
| 233 |
-
XLOGF(INFO,
|
| 234 |
-
"Found latest version of chain table {}: {}",
|
| 235 |
-
benchOptions_.chainTableId,
|
| 236 |
-
chainTable.chainTableVersion);
|
| 237 |
-
}
|
| 238 |
-
|
| 239 |
-
XLOGF(WARN,
|
| 240 |
-
"Selected chain table: {}@{} [{}] {} chains",
|
| 241 |
-
chainTable.chainTableId,
|
| 242 |
-
chainTable.chainTableVersion,
|
| 243 |
-
chainTable.desc,
|
| 244 |
-
chainTable.chains.size());
|
| 245 |
-
|
| 246 |
-
if (!benchOptions_.storageNodeIds.empty()) {
|
| 247 |
-
for (const auto &chainId : chainTable.chains) {
|
| 248 |
-
const auto chainInfo = routingInfo->raw()->getChain(chainId);
|
| 249 |
-
for (const auto &target : chainInfo->targets) {
|
| 250 |
-
const auto targetInfo = routingInfo->raw()->getTarget(target.targetId);
|
| 251 |
-
auto nodeIter = std::find(benchOptions_.storageNodeIds.begin(),
|
| 252 |
-
benchOptions_.storageNodeIds.end(),
|
| 253 |
-
*targetInfo->nodeId);
|
| 254 |
-
if (nodeIter != benchOptions_.storageNodeIds.end()) {
|
| 255 |
-
chainIds_.push_back(chainId);
|
| 256 |
-
break;
|
| 257 |
-
}
|
| 258 |
-
}
|
| 259 |
-
}
|
| 260 |
-
} else if (!benchOptions_.chainIds.empty()) {
|
| 261 |
-
for (const auto &chainId : chainTable.chains) {
|
| 262 |
-
auto chainIter = std::find(benchOptions_.chainIds.begin(), benchOptions_.chainIds.end(), chainId);
|
| 263 |
-
if (chainIter != benchOptions_.chainIds.end()) {
|
| 264 |
-
chainIds_.push_back(chainId);
|
| 265 |
-
}
|
| 266 |
-
}
|
| 267 |
-
} else {
|
| 268 |
-
chainIds_ = chainTable.chains;
|
| 269 |
-
}
|
| 270 |
-
|
| 271 |
-
break;
|
| 272 |
-
}
|
| 273 |
-
}
|
| 274 |
-
|
| 275 |
-
if (!chainIds_.empty()) break;
|
| 276 |
-
}
|
| 277 |
-
}
|
| 278 |
-
|
| 279 |
-
if (chainIds_.empty()) {
|
| 280 |
-
XLOGF(ERR, "Failed to get chain table with id {}", benchOptions_.chainTableId);
|
| 281 |
-
return false;
|
| 282 |
-
} else {
|
| 283 |
-
XLOGF(WARN, "Selected {} replication chains for benchmark", chainIds_.size());
|
| 284 |
-
}
|
| 285 |
-
|
| 286 |
-
// create storage client
|
| 287 |
-
|
| 288 |
-
if (setupConfig_.client_config().empty()) {
|
| 289 |
-
XLOGF(ERR, "Storage client config not specified");
|
| 290 |
-
return false;
|
| 291 |
-
}
|
| 292 |
-
|
| 293 |
-
auto configRes = clientConfig_.atomicallyUpdate(setupConfig_.client_config(), false /*isHotUpdate*/);
|
| 294 |
-
if (!configRes) {
|
| 295 |
-
XLOGF(ERR, "Cannot load client config from {}, error: {}", setupConfig_.client_config(), configRes.error());
|
| 296 |
-
return false;
|
| 297 |
-
}
|
| 298 |
-
|
| 299 |
-
totalNumChunks_ = chainIds_.size() * benchOptions_.numCoroutines * benchOptions_.numChunks;
|
| 300 |
-
totalChunkGiB_ = (double)totalNumChunks_ * setupConfig_.chunk_size() / 1_GB;
|
| 301 |
-
clientConfig_.retry().set_max_retry_time(Duration(std::chrono::milliseconds(benchOptions_.clientTimeoutMS)));
|
| 302 |
-
clientConfig_.net_client().io_worker().ibsocket().set_sl(setupConfig_.service_level());
|
| 303 |
-
|
| 304 |
-
XLOGF(INFO, "Creating storage client...");
|
| 305 |
-
storageClient_ = client::StorageClient::create(clientId_, clientConfig_, *mgmtdForClient_);
|
| 306 |
-
|
| 307 |
-
return true;
|
| 308 |
-
}
|
| 309 |
-
|
| 310 |
-
bool setupIBSock() {
|
| 311 |
-
XLOGF(WARN, "Setting up IB socket...");
|
| 312 |
-
|
| 313 |
-
std::vector<net::IBConfig::Subnet> subnets;
|
| 314 |
-
|
| 315 |
-
for (const auto &ibnetZoneStr : benchOptions_.ibnetZones) {
|
| 316 |
-
std::vector<std::string> ibnetZoneSubnet;
|
| 317 |
-
boost::split(ibnetZoneSubnet, ibnetZoneStr, boost::is_any_of(":"));
|
| 318 |
-
|
| 319 |
-
if (ibnetZoneSubnet.size() != 2) {
|
| 320 |
-
XLOGF(CRITICAL, "Invalid IB zone subnet: {}", ibnetZoneStr);
|
| 321 |
-
return false;
|
| 322 |
-
}
|
| 323 |
-
|
| 324 |
-
auto zone = boost::trim_copy(ibnetZoneSubnet[0]);
|
| 325 |
-
auto subnet = boost::trim_copy(ibnetZoneSubnet[1]);
|
| 326 |
-
|
| 327 |
-
if (zone.empty() || subnet.empty()) {
|
| 328 |
-
XLOGF(CRITICAL, "Invalid IB zone subnet: {}", ibnetZoneStr);
|
| 329 |
-
return false;
|
| 330 |
-
}
|
| 331 |
-
|
| 332 |
-
subnets.emplace_back();
|
| 333 |
-
subnets.back().set_network_zones({zone});
|
| 334 |
-
subnets.back().set_subnet(*net::IBConfig::Network::from(subnet));
|
| 335 |
-
XLOGF(WARN, "Add IB network zone: {} -- {}", zone, subnet);
|
| 336 |
-
}
|
| 337 |
-
|
| 338 |
-
net::IBConfig ibConfig;
|
| 339 |
-
ibConfig.set_subnets(subnets);
|
| 340 |
-
ibConfig.set_allow_unknown_zone(false);
|
| 341 |
-
ibConfig.set_default_network_zone("$HF3FS_NETWORK_ZONE");
|
| 342 |
-
ibConfig.set_device_filter(benchOptions_.ibvDevices);
|
| 343 |
-
ibConfig.set_default_pkey_index(benchOptions_.defaultPKeyIndex);
|
| 344 |
-
|
| 345 |
-
auto ibResult = net::IBManager::start(ibConfig);
|
| 346 |
-
if (ibResult.hasError()) {
|
| 347 |
-
XLOGF(CRITICAL, "Cannot initialize IB device: {}", ibResult.error());
|
| 348 |
-
return false;
|
| 349 |
-
}
|
| 350 |
-
|
| 351 |
-
return true;
|
| 352 |
-
}
|
| 353 |
-
|
| 354 |
-
bool setup() {
|
| 355 |
-
XLOGF(WARN, "Setting up benchmark...");
|
| 356 |
-
|
| 357 |
-
if (!setupIBSock()) {
|
| 358 |
-
return false;
|
| 359 |
-
}
|
| 360 |
-
|
| 361 |
-
bool ok = setUpStorageSystem();
|
| 362 |
-
|
| 363 |
-
totalNumChunks_ = chainIds_.size() * benchOptions_.numCoroutines * benchOptions_.numChunks;
|
| 364 |
-
totalChunkGiB_ = (double)totalNumChunks_ * setupConfig_.chunk_size() / 1_GB;
|
| 365 |
-
clientConfig_.retry().set_max_retry_time(Duration(std::chrono::milliseconds(benchOptions_.clientTimeoutMS)));
|
| 366 |
-
|
| 367 |
-
return ok;
|
| 368 |
-
}
|
| 369 |
-
|
| 370 |
-
void teardown() {
|
| 371 |
-
tearDownStorageSystem();
|
| 372 |
-
net::IBManager::stop();
|
| 373 |
-
}
|
| 374 |
-
|
| 375 |
-
void printThroughput(hf3fs::SteadyClock::duration elapsedMicro, double totalGiB) {
|
| 376 |
-
auto elapsedMilli = std::chrono::duration_cast<std::chrono::milliseconds>(elapsedMicro);
|
| 377 |
-
double throughput = totalGiB / (elapsedMilli.count() / 1000.0);
|
| 378 |
-
XLOGF(WARN, "Average throughput: {:.3f}GiB/s, total {:.3f} GiB", throughput, totalGiB);
|
| 379 |
-
}
|
| 380 |
-
|
| 381 |
-
void printLatencyDigest(const folly::TDigest &digest) {
|
| 382 |
-
XLOGF(WARN, "latency summary ({} samples)", digest.count());
|
| 383 |
-
XLOGF(WARN, "min: {:10.1f}us", digest.min());
|
| 384 |
-
XLOGF(WARN, "max: {:10.1f}us", digest.max());
|
| 385 |
-
XLOGF(WARN, "avg: {:10.1f}us", digest.mean());
|
| 386 |
-
for (double p : {0.1, 0.2, 0.5, 0.9, 0.95, 0.99}) {
|
| 387 |
-
XLOGF(WARN, "{}%: {:10.1f}us", p * 100.0, digest.estimateQuantile(p));
|
| 388 |
-
}
|
| 389 |
-
}
|
| 390 |
-
|
| 391 |
-
void dumpPerfStats(const std::string &testName,
|
| 392 |
-
const folly::TDigest &digest,
|
| 393 |
-
hf3fs::SteadyClock::duration elapsedTime,
|
| 394 |
-
double totalGiB,
|
| 395 |
-
bool readIO) {
|
| 396 |
-
if (benchOptions_.statsFilePath.empty()) return;
|
| 397 |
-
|
| 398 |
-
boost::filesystem::path outFilePath(benchOptions_.statsFilePath);
|
| 399 |
-
|
| 400 |
-
if (!boost::filesystem::exists(outFilePath) || boost::filesystem::is_empty(outFilePath)) {
|
| 401 |
-
XLOGF(INFO, "Create a file for perfermance stats at {}", outFilePath);
|
| 402 |
-
std::ofstream outFile(outFilePath);
|
| 403 |
-
if (!outFile) {
|
| 404 |
-
throw std::runtime_error("Failed to open file: " + outFilePath.string());
|
| 405 |
-
}
|
| 406 |
-
|
| 407 |
-
outFile << "test name,#storages,#chains,#replicas,concurrency,batch size,"
|
| 408 |
-
"io size (bytes),effective batch size (batch size / #replicas),elapsed time (us),"
|
| 409 |
-
"QPS,IOPS,bandwidth (MB/s),latency samples,min latency (us),max latency (us),avg latency (us),"
|
| 410 |
-
"latency P50 (us),latency P75 (us),latency P90 (us),latency P95 (us),latency P99 (us)\n";
|
| 411 |
-
|
| 412 |
-
if (!outFile) {
|
| 413 |
-
throw std::runtime_error("Failed to write to file: " + outFilePath.string());
|
| 414 |
-
}
|
| 415 |
-
|
| 416 |
-
outFile.close();
|
| 417 |
-
}
|
| 418 |
-
|
| 419 |
-
auto elapsedMicro = std::chrono::duration_cast<std::chrono::microseconds>(elapsedTime);
|
| 420 |
-
double bandwidthMBps = totalGiB * 1024.0 / (elapsedMicro.count() / 1'000'000.0);
|
| 421 |
-
size_t ioSize = readIO ? benchOptions_.readSize : benchOptions_.writeSize;
|
| 422 |
-
size_t batchSize = readIO ? benchOptions_.readBatchSize : benchOptions_.writeBatchSize;
|
| 423 |
-
double iops = bandwidthMBps * 1024.0 * 1024.0 / ioSize;
|
| 424 |
-
double qps = bandwidthMBps * 1024.0 * 1024.0 / (batchSize * ioSize);
|
| 425 |
-
|
| 426 |
-
boost::filesystem::ofstream fout(outFilePath, std::ios_base::app);
|
| 427 |
-
|
| 428 |
-
fout << fmt::format("{},{},{},{},{},{},{},{:.1f},{},{:.1f},{:.1f},{:.3f},{},{:.1f},{:.1f},{:.1f}",
|
| 429 |
-
testName,
|
| 430 |
-
setupConfig_.num_storage_nodes(),
|
| 431 |
-
setupConfig_.num_chains(),
|
| 432 |
-
setupConfig_.num_replicas(),
|
| 433 |
-
benchOptions_.numCoroutines,
|
| 434 |
-
batchSize,
|
| 435 |
-
ioSize,
|
| 436 |
-
double(batchSize) / setupConfig_.num_storage_nodes(),
|
| 437 |
-
elapsedMicro.count(),
|
| 438 |
-
qps,
|
| 439 |
-
iops,
|
| 440 |
-
bandwidthMBps,
|
| 441 |
-
digest.count(),
|
| 442 |
-
digest.min(),
|
| 443 |
-
digest.max(),
|
| 444 |
-
digest.mean());
|
| 445 |
-
|
| 446 |
-
for (double p : {0.5, 0.75, 0.9, 0.95, 0.99}) {
|
| 447 |
-
fout << fmt::format(",{:.1f}", digest.estimateQuantile(p));
|
| 448 |
-
}
|
| 449 |
-
|
| 450 |
-
fout << "\n";
|
| 451 |
-
fout.close();
|
| 452 |
-
}
|
| 453 |
-
|
| 454 |
-
CoTask<uint32_t> batchWrite(uint32_t instanceId, size_t writeBatchSize, size_t writeSize, uint32_t numWriteSecs) {
|
| 455 |
-
// create an aligned memory block
|
| 456 |
-
size_t memoryBlockSize = ALIGN_UPPER(setupConfig_.chunk_size(), benchOptions_.memoryAlignment);
|
| 457 |
-
auto memoryBlock = (uint8_t *)folly::aligned_malloc(memoryBlockSize, sysconf(_SC_PAGESIZE));
|
| 458 |
-
auto deleter = [](uint8_t *ptr) { folly::aligned_free(ptr); };
|
| 459 |
-
std::unique_ptr<uint8_t, decltype(deleter)> memoryBlockPtr(memoryBlock, deleter);
|
| 460 |
-
std::memset(memoryBlock, 0xFF, memoryBlockSize);
|
| 461 |
-
|
| 462 |
-
if (benchOptions_.verifyReadData) {
|
| 463 |
-
for (size_t byteIndex = 0; byteIndex < memoryBlockSize; byteIndex++) {
|
| 464 |
-
memoryBlock[byteIndex] = byteIndex;
|
| 465 |
-
}
|
| 466 |
-
}
|
| 467 |
-
|
| 468 |
-
// register a block of memory
|
| 469 |
-
auto regRes = storageClient_->registerIOBuffer(memoryBlock, memoryBlockSize);
|
| 470 |
-
|
| 471 |
-
if (regRes.hasError()) {
|
| 472 |
-
co_return regRes.error().code();
|
| 473 |
-
}
|
| 474 |
-
|
| 475 |
-
// create write IOs
|
| 476 |
-
|
| 477 |
-
auto ioBuffer = std::move(*regRes);
|
| 478 |
-
|
| 479 |
-
WriteOptions options;
|
| 480 |
-
options.set_enableChecksum(benchOptions_.verifyWriteChecksum);
|
| 481 |
-
options.debug().set_bypass_disk_io(benchOptions_.benchmarkNetwork);
|
| 482 |
-
options.debug().set_bypass_rdma_xmit(benchOptions_.benchmarkStorage);
|
| 483 |
-
options.debug().set_inject_random_server_error(benchOptions_.injectRandomServerError);
|
| 484 |
-
options.debug().set_inject_random_client_error(benchOptions_.injectRandomClientError);
|
| 485 |
-
options.retry().set_retry_permanent_error(benchOptions_.retryPermanentError);
|
| 486 |
-
|
| 487 |
-
std::vector<double> elapsedMicroSecs;
|
| 488 |
-
uint64_t numWriteBytes = 0;
|
| 489 |
-
|
| 490 |
-
std::vector<WriteIO> writeIOs;
|
| 491 |
-
writeIOs.reserve(writeBatchSize);
|
| 492 |
-
|
| 493 |
-
auto benchStart = hf3fs::SteadyClock::now();
|
| 494 |
-
std::vector<ChunkInfo> &chunkInfos = chunkInfos_[instanceId];
|
| 495 |
-
size_t &numCreatedChunks = numCreatedChunks_[instanceId];
|
| 496 |
-
size_t seqChunkIndex = 0;
|
| 497 |
-
|
| 498 |
-
while (true) {
|
| 499 |
-
if (numWriteSecs) {
|
| 500 |
-
auto accumElapsedSecs =
|
| 501 |
-
std::chrono::duration_cast<std::chrono::seconds>(hf3fs::SteadyClock::now() - benchStart);
|
| 502 |
-
if (accumElapsedSecs >= std::chrono::seconds(numWriteSecs)) break;
|
| 503 |
-
} else {
|
| 504 |
-
if (numCreatedChunks >= chunkInfos.size()) break;
|
| 505 |
-
}
|
| 506 |
-
|
| 507 |
-
writeIOs.clear();
|
| 508 |
-
|
| 509 |
-
for (size_t writeIndex = 0; writeIndex < writeBatchSize; writeIndex++) {
|
| 510 |
-
auto &[chainId, chunkId, chunkSize] = chunkInfos[seqChunkIndex++ % chunkInfos.size()];
|
| 511 |
-
size_t writeOffset = 0;
|
| 512 |
-
size_t writeLength = 0;
|
| 513 |
-
|
| 514 |
-
if (chunkSize < setupConfig_.chunk_size()) {
|
| 515 |
-
writeOffset = chunkSize;
|
| 516 |
-
writeLength = std::min(writeSize, setupConfig_.chunk_size() - writeOffset);
|
| 517 |
-
chunkSize += writeLength;
|
| 518 |
-
numCreatedChunks += chunkSize == setupConfig_.chunk_size();
|
| 519 |
-
} else {
|
| 520 |
-
writeOffset = folly::Random::rand32(0, setupConfig_.chunk_size() - writeSize);
|
| 521 |
-
writeLength = writeSize;
|
| 522 |
-
}
|
| 523 |
-
|
| 524 |
-
auto writeIO = storageClient_->createWriteIO(chainId,
|
| 525 |
-
chunkId,
|
| 526 |
-
writeOffset,
|
| 527 |
-
writeLength,
|
| 528 |
-
setupConfig_.chunk_size(),
|
| 529 |
-
&memoryBlock[writeOffset],
|
| 530 |
-
&ioBuffer);
|
| 531 |
-
writeIOs.push_back(std::move(writeIO));
|
| 532 |
-
numWriteBytes += writeLength;
|
| 533 |
-
}
|
| 534 |
-
|
| 535 |
-
auto rpcStart = hf3fs::SteadyClock::now();
|
| 536 |
-
|
| 537 |
-
co_await storageClient_->batchWrite(writeIOs, flat::UserInfo(), options);
|
| 538 |
-
|
| 539 |
-
auto elapsedMicro = std::chrono::duration_cast<std::chrono::microseconds>(hf3fs::SteadyClock::now() - rpcStart);
|
| 540 |
-
elapsedMicroSecs.push_back(elapsedMicro.count());
|
| 541 |
-
|
| 542 |
-
if (!benchOptions_.ignoreIOError) {
|
| 543 |
-
for (const auto &writeIO : writeIOs) {
|
| 544 |
-
if (writeIO.result.lengthInfo.hasError()) {
|
| 545 |
-
XLOGF(ERR, "Error in write result: {}", writeIO.result);
|
| 546 |
-
co_return writeIO.result.lengthInfo.error().code();
|
| 547 |
-
}
|
| 548 |
-
if (writeIO.length != *writeIO.result.lengthInfo) {
|
| 549 |
-
XLOGF(ERR, "Unexpected write length: {} != {}", *writeIO.result.lengthInfo, writeIO.length);
|
| 550 |
-
co_return StorageClientCode::kRemoteIOError;
|
| 551 |
-
}
|
| 552 |
-
}
|
| 553 |
-
}
|
| 554 |
-
}
|
| 555 |
-
|
| 556 |
-
folly::TDigest digest;
|
| 557 |
-
writeLatencyDigests_[instanceId] = digest.merge(elapsedMicroSecs);
|
| 558 |
-
numWriteBytes_ += numWriteBytes;
|
| 559 |
-
|
| 560 |
-
co_return StatusCode::kOK;
|
| 561 |
-
}
|
| 562 |
-
|
| 563 |
-
CoTask<uint32_t> batchRead(uint32_t instanceId) {
|
| 564 |
-
// create an aligned memory block
|
| 565 |
-
size_t alignedBufSize = ALIGN_UPPER(std::max(size_t(1), benchOptions_.readSize), benchOptions_.memoryAlignment);
|
| 566 |
-
size_t memoryBlockSize = alignedBufSize * benchOptions_.readBatchSize;
|
| 567 |
-
auto memoryBlock = (uint8_t *)folly::aligned_malloc(memoryBlockSize, sysconf(_SC_PAGESIZE));
|
| 568 |
-
auto deleter = [](uint8_t *ptr) { folly::aligned_free(ptr); };
|
| 569 |
-
std::unique_ptr<uint8_t, decltype(deleter)> memoryBlockPtr(memoryBlock, deleter);
|
| 570 |
-
std::memset(memoryBlock, 0, memoryBlockSize);
|
| 571 |
-
|
| 572 |
-
// register a block of memory
|
| 573 |
-
auto regRes = storageClient_->registerIOBuffer(memoryBlock, memoryBlockSize);
|
| 574 |
-
|
| 575 |
-
if (regRes.hasError()) {
|
| 576 |
-
co_return regRes.error().code();
|
| 577 |
-
}
|
| 578 |
-
|
| 579 |
-
std::vector<uint8_t> expectedChunkData(setupConfig_.chunk_size());
|
| 580 |
-
|
| 581 |
-
if (benchOptions_.verifyReadData) {
|
| 582 |
-
for (size_t byteIndex = 0; byteIndex < expectedChunkData.size(); byteIndex++) {
|
| 583 |
-
expectedChunkData[byteIndex] = byteIndex;
|
| 584 |
-
}
|
| 585 |
-
}
|
| 586 |
-
|
| 587 |
-
// create read IOs
|
| 588 |
-
|
| 589 |
-
auto ioBuffer = std::move(*regRes);
|
| 590 |
-
|
| 591 |
-
ReadOptions options;
|
| 592 |
-
options.set_enableChecksum(benchOptions_.verifyReadChecksum);
|
| 593 |
-
options.debug().set_bypass_disk_io(benchOptions_.benchmarkNetwork);
|
| 594 |
-
options.debug().set_bypass_rdma_xmit(benchOptions_.benchmarkStorage);
|
| 595 |
-
options.debug().set_inject_random_server_error(benchOptions_.injectRandomServerError);
|
| 596 |
-
options.debug().set_inject_random_client_error(benchOptions_.injectRandomClientError);
|
| 597 |
-
options.retry().set_retry_permanent_error(benchOptions_.retryPermanentError);
|
| 598 |
-
|
| 599 |
-
std::vector<double> elapsedMicroSecs;
|
| 600 |
-
uint64_t numReadBytes = 0;
|
| 601 |
-
size_t offsetAlignment =
|
| 602 |
-
benchOptions_.readOffAlignment ? benchOptions_.readOffAlignment : std::max(size_t(1), benchOptions_.readSize);
|
| 603 |
-
|
| 604 |
-
std::vector<client::ReadIO> readIOs;
|
| 605 |
-
readIOs.reserve(benchOptions_.readBatchSize);
|
| 606 |
-
|
| 607 |
-
auto benchStart = hf3fs::SteadyClock::now();
|
| 608 |
-
std::vector<ChunkInfo> &chunkInfos = chunkInfos_[instanceId];
|
| 609 |
-
|
| 610 |
-
while (true) {
|
| 611 |
-
auto accumElapsedSecs = std::chrono::duration_cast<std::chrono::seconds>(hf3fs::SteadyClock::now() - benchStart);
|
| 612 |
-
if (accumElapsedSecs >= std::chrono::seconds(benchOptions_.numReadSecs)) break;
|
| 613 |
-
|
| 614 |
-
readIOs.clear();
|
| 615 |
-
|
| 616 |
-
for (size_t readIndex = 0; readIndex < benchOptions_.readBatchSize; readIndex++) {
|
| 617 |
-
uint64_t randChunkIndex = folly::Random::rand64(0, chunkInfos.size());
|
| 618 |
-
const auto &[chainId, chunkId, chunkSize] = chunkInfos[randChunkIndex];
|
| 619 |
-
uint32_t offset = folly::Random::rand32(0, setupConfig_.chunk_size() - benchOptions_.readSize);
|
| 620 |
-
uint32_t alignedOffset = ALIGN_LOWER(offset, offsetAlignment);
|
| 621 |
-
auto readIO = storageClient_->createReadIO(chainId,
|
| 622 |
-
chunkId,
|
| 623 |
-
alignedOffset /*offset*/,
|
| 624 |
-
benchOptions_.readSize /*length*/,
|
| 625 |
-
&memoryBlock[readIndex * alignedBufSize],
|
| 626 |
-
&ioBuffer);
|
| 627 |
-
readIOs.push_back(std::move(readIO));
|
| 628 |
-
numReadBytes += benchOptions_.readSize;
|
| 629 |
-
}
|
| 630 |
-
|
| 631 |
-
auto rpcStart = hf3fs::SteadyClock::now();
|
| 632 |
-
|
| 633 |
-
co_await storageClient_->batchRead(readIOs, flat::UserInfo(), options);
|
| 634 |
-
|
| 635 |
-
auto elapsedMicro = std::chrono::duration_cast<std::chrono::microseconds>(hf3fs::SteadyClock::now() - rpcStart);
|
| 636 |
-
elapsedMicroSecs.push_back(elapsedMicro.count());
|
| 637 |
-
|
| 638 |
-
if (!benchOptions_.ignoreIOError) {
|
| 639 |
-
for (const auto &readIO : readIOs) {
|
| 640 |
-
if (readIO.result.lengthInfo.hasError()) {
|
| 641 |
-
XLOGF(ERR, "Error in read result: {}", readIO.result);
|
| 642 |
-
co_return readIO.result.lengthInfo.error().code();
|
| 643 |
-
}
|
| 644 |
-
if (readIO.length != *readIO.result.lengthInfo) {
|
| 645 |
-
XLOGF(ERR, "Unexpected read length: {} != {}", *readIO.result.lengthInfo, readIO.length);
|
| 646 |
-
co_return StorageClientCode::kRemoteIOError;
|
| 647 |
-
}
|
| 648 |
-
}
|
| 649 |
-
}
|
| 650 |
-
|
| 651 |
-
if (benchOptions_.verifyReadData) {
|
| 652 |
-
for (const auto &readIO : readIOs) {
|
| 653 |
-
auto diffPos = std::mismatch(&readIO.data[0], &readIO.data[readIO.length], &expectedChunkData[readIO.offset]);
|
| 654 |
-
uint32_t byteIndex = diffPos.first - &readIO.data[0];
|
| 655 |
-
if (byteIndex < readIO.length) {
|
| 656 |
-
XLOGF(ERR,
|
| 657 |
-
"Wrong data at bytes index {} and chunk offset {}: data {:#x} != expected {:#x}",
|
| 658 |
-
byteIndex,
|
| 659 |
-
readIO.offset + byteIndex,
|
| 660 |
-
*diffPos.first,
|
| 661 |
-
*diffPos.second);
|
| 662 |
-
co_return StorageClientCode::kFoundBug;
|
| 663 |
-
}
|
| 664 |
-
}
|
| 665 |
-
}
|
| 666 |
-
}
|
| 667 |
-
|
| 668 |
-
folly::TDigest digest;
|
| 669 |
-
readLatencyDigests_[instanceId] = digest.merge(elapsedMicroSecs);
|
| 670 |
-
numReadBytes_ += numReadBytes;
|
| 671 |
-
|
| 672 |
-
co_return StatusCode::kOK;
|
| 673 |
-
}
|
| 674 |
-
|
| 675 |
-
uint32_t generateChunks() {
|
| 676 |
-
XLOGF(WARN, "Generating {} test chunks ({:.3f} GiB)...", totalNumChunks_, totalChunkGiB_);
|
| 677 |
-
|
| 678 |
-
auto testStart = hf3fs::SteadyClock::now();
|
| 679 |
-
std::vector<folly::SemiFuture<uint32_t>> writeTasks;
|
| 680 |
-
numWriteBytes_ = 0;
|
| 681 |
-
|
| 682 |
-
size_t writeBatchSize =
|
| 683 |
-
std::max(benchOptions_.writeBatchSize,
|
| 684 |
-
clientConfig_.traffic_control().write().max_concurrent_requests() / benchOptions_.numCoroutines);
|
| 685 |
-
|
| 686 |
-
for (size_t instanceId = 0; instanceId < benchOptions_.numCoroutines; instanceId++) {
|
| 687 |
-
writeTasks.push_back(batchWrite(instanceId, writeBatchSize, setupConfig_.chunk_size(), 0 /*numWriteSecs*/)
|
| 688 |
-
.scheduleOn(folly::Executor::getKeepAliveToken(testExecutor_))
|
| 689 |
-
.start());
|
| 690 |
-
}
|
| 691 |
-
|
| 692 |
-
auto results = folly::coro::blockingWait(folly::coro::collectAllRange(std::move(writeTasks)));
|
| 693 |
-
|
| 694 |
-
for (auto res : results) {
|
| 695 |
-
if (res != StatusCode::kOK) {
|
| 696 |
-
XLOGF(WARN, "Test task failed with status code: {}", res);
|
| 697 |
-
return res;
|
| 698 |
-
}
|
| 699 |
-
}
|
| 700 |
-
|
| 701 |
-
auto elapsedTime = hf3fs::SteadyClock::now() - testStart;
|
| 702 |
-
double totalGiB = (double)numWriteBytes_ / 1_GB;
|
| 703 |
-
printThroughput(elapsedTime, totalGiB);
|
| 704 |
-
|
| 705 |
-
auto mergedDigest = folly::TDigest::merge(writeLatencyDigests_);
|
| 706 |
-
printLatencyDigest(mergedDigest);
|
| 707 |
-
|
| 708 |
-
return StatusCode::kOK;
|
| 709 |
-
}
|
| 710 |
-
|
| 711 |
-
uint32_t runWriteBench() {
|
| 712 |
-
XLOGF(WARN,
|
| 713 |
-
"Running write benchmark ({} secs, {} chunks, {:.3f} GiB)...",
|
| 714 |
-
benchOptions_.numWriteSecs,
|
| 715 |
-
totalNumChunks_,
|
| 716 |
-
totalChunkGiB_);
|
| 717 |
-
|
| 718 |
-
auto testStart = hf3fs::SteadyClock::now();
|
| 719 |
-
std::vector<folly::SemiFuture<uint32_t>> writeTasks;
|
| 720 |
-
numWriteBytes_ = 0;
|
| 721 |
-
|
| 722 |
-
for (size_t instanceId = 0; instanceId < benchOptions_.numCoroutines; instanceId++) {
|
| 723 |
-
writeTasks.push_back(
|
| 724 |
-
batchWrite(instanceId, benchOptions_.writeBatchSize, benchOptions_.writeSize, benchOptions_.numWriteSecs)
|
| 725 |
-
.scheduleOn(folly::Executor::getKeepAliveToken(testExecutor_))
|
| 726 |
-
.start());
|
| 727 |
-
}
|
| 728 |
-
|
| 729 |
-
auto results = folly::coro::blockingWait(folly::coro::collectAllRange(std::move(writeTasks)));
|
| 730 |
-
|
| 731 |
-
for (auto res : results) {
|
| 732 |
-
if (res != StatusCode::kOK) {
|
| 733 |
-
XLOGF(WARN, "Test task failed with status code: {}", res);
|
| 734 |
-
return res;
|
| 735 |
-
}
|
| 736 |
-
}
|
| 737 |
-
|
| 738 |
-
auto elapsedTime = hf3fs::SteadyClock::now() - testStart;
|
| 739 |
-
double totalGiB = (double)numWriteBytes_ / 1_GB;
|
| 740 |
-
printThroughput(elapsedTime, totalGiB);
|
| 741 |
-
|
| 742 |
-
auto mergedDigest = folly::TDigest::merge(writeLatencyDigests_);
|
| 743 |
-
printLatencyDigest(mergedDigest);
|
| 744 |
-
|
| 745 |
-
dumpPerfStats("batch write", mergedDigest, elapsedTime, totalGiB, false /*readIO*/);
|
| 746 |
-
|
| 747 |
-
return StatusCode::kOK;
|
| 748 |
-
}
|
| 749 |
-
|
| 750 |
-
uint32_t runReadBench() {
|
| 751 |
-
XLOGF(WARN, "Running read benchmark ({} secs)...", benchOptions_.numReadSecs);
|
| 752 |
-
|
| 753 |
-
auto testStart = hf3fs::SteadyClock::now();
|
| 754 |
-
std::vector<folly::SemiFuture<uint32_t>> readTasks;
|
| 755 |
-
numReadBytes_ = 0;
|
| 756 |
-
|
| 757 |
-
for (size_t instanceId = 0; instanceId < benchOptions_.numCoroutines; instanceId++) {
|
| 758 |
-
readTasks.push_back(batchRead(instanceId).scheduleOn(folly::Executor::getKeepAliveToken(testExecutor_)).start());
|
| 759 |
-
}
|
| 760 |
-
|
| 761 |
-
auto results = folly::coro::blockingWait(folly::coro::collectAllRange(std::move(readTasks)));
|
| 762 |
-
|
| 763 |
-
for (auto res : results) {
|
| 764 |
-
if (res != StatusCode::kOK) {
|
| 765 |
-
XLOGF(WARN, "Test task failed with status code: {}", res);
|
| 766 |
-
return res;
|
| 767 |
-
}
|
| 768 |
-
}
|
| 769 |
-
|
| 770 |
-
auto elapsedTime = hf3fs::SteadyClock::now() - testStart;
|
| 771 |
-
double totalGiB = (double)numReadBytes_ / 1_GB;
|
| 772 |
-
printThroughput(elapsedTime, totalGiB);
|
| 773 |
-
|
| 774 |
-
auto mergedDigest = folly::TDigest::merge(readLatencyDigests_);
|
| 775 |
-
printLatencyDigest(mergedDigest);
|
| 776 |
-
|
| 777 |
-
dumpPerfStats("batch read", mergedDigest, elapsedTime, totalGiB, false /*readIO*/);
|
| 778 |
-
|
| 779 |
-
return StatusCode::kOK;
|
| 780 |
-
}
|
| 781 |
-
|
| 782 |
-
uint32_t cleanup() {
|
| 783 |
-
XLOGF(WARN, "Clean up chunks...");
|
| 784 |
-
|
| 785 |
-
std::vector<folly::SemiFuture<uint32_t>> removeTasks;
|
| 786 |
-
|
| 787 |
-
for (size_t instanceId = 0; instanceId < benchOptions_.numCoroutines; instanceId++) {
|
| 788 |
-
auto batchRemove = [this](size_t instanceId) -> folly::coro::Task<uint32_t> {
|
| 789 |
-
std::vector<client::RemoveChunksOp> removeOps;
|
| 790 |
-
size_t totalNumChunksRemoved = 0;
|
| 791 |
-
|
| 792 |
-
for (const auto &[chainId, chunkId, chunkSize] : chunkInfos_[instanceId]) {
|
| 793 |
-
removeOps.push_back(storageClient_->createRemoveOp(chainId, chunkId, ChunkId(chunkId, 1)));
|
| 794 |
-
|
| 795 |
-
if (removeOps.size() >= benchOptions_.removeBatchSize) {
|
| 796 |
-
WriteOptions options;
|
| 797 |
-
options.debug().set_inject_random_server_error(benchOptions_.injectRandomServerError);
|
| 798 |
-
options.debug().set_inject_random_client_error(benchOptions_.injectRandomClientError);
|
| 799 |
-
options.retry().set_retry_permanent_error(benchOptions_.retryPermanentError);
|
| 800 |
-
|
| 801 |
-
co_await storageClient_->removeChunks(removeOps, flat::UserInfo(), options);
|
| 802 |
-
|
| 803 |
-
for (const auto &removeOp : removeOps) {
|
| 804 |
-
if (removeOp.result.statusCode.hasError()) {
|
| 805 |
-
XLOGF(WARN, "Remove operation failed with error: {}", removeOp.result.statusCode.error());
|
| 806 |
-
co_return removeOp.result.statusCode.error().code();
|
| 807 |
-
}
|
| 808 |
-
|
| 809 |
-
XLOGF_IF(DBG5,
|
| 810 |
-
removeOp.result.numChunksRemoved != 1,
|
| 811 |
-
"{} chunks removed in range {}",
|
| 812 |
-
removeOp.result.numChunksRemoved,
|
| 813 |
-
removeOp.chunkRange());
|
| 814 |
-
totalNumChunksRemoved += removeOp.result.numChunksRemoved;
|
| 815 |
-
}
|
| 816 |
-
|
| 817 |
-
removeOps.clear();
|
| 818 |
-
}
|
| 819 |
-
}
|
| 820 |
-
|
| 821 |
-
XLOGF(WARN, "{} chunks removed by instance #{}", totalNumChunksRemoved, instanceId);
|
| 822 |
-
co_return StatusCode::kOK;
|
| 823 |
-
};
|
| 824 |
-
|
| 825 |
-
removeTasks.push_back(
|
| 826 |
-
batchRemove(instanceId).scheduleOn(folly::Executor::getKeepAliveToken(testExecutor_)).start());
|
| 827 |
-
}
|
| 828 |
-
|
| 829 |
-
auto results = folly::coro::blockingWait(folly::coro::collectAllRange(std::move(removeTasks)));
|
| 830 |
-
|
| 831 |
-
for (auto res : results) {
|
| 832 |
-
if (res != StatusCode::kOK) {
|
| 833 |
-
XLOGF(WARN, "Test task failed with status code: {}", res);
|
| 834 |
-
return res;
|
| 835 |
-
}
|
| 836 |
-
}
|
| 837 |
-
|
| 838 |
-
return StatusCode::kOK;
|
| 839 |
-
};
|
| 840 |
-
|
| 841 |
-
uint32_t truncate() {
|
| 842 |
-
XLOGF(WARN, "Truncate chunks...");
|
| 843 |
-
|
| 844 |
-
std::vector<folly::SemiFuture<uint32_t>> truncateTasks;
|
| 845 |
-
|
| 846 |
-
for (size_t instanceId = 0; instanceId < benchOptions_.numCoroutines; instanceId++) {
|
| 847 |
-
auto batchTruncate = [this](size_t instanceId) -> folly::coro::Task<uint32_t> {
|
| 848 |
-
std::vector<client::TruncateChunkOp> truncateOps;
|
| 849 |
-
|
| 850 |
-
for (const auto &[chainId, chunkId, chunkSize] : chunkInfos_[instanceId]) {
|
| 851 |
-
truncateOps.push_back(storageClient_->createTruncateOp(chainId, chunkId, 0, setupConfig_.chunk_size()));
|
| 852 |
-
|
| 853 |
-
if (truncateOps.size() >= benchOptions_.writeBatchSize) {
|
| 854 |
-
WriteOptions options;
|
| 855 |
-
options.debug().set_inject_random_server_error(benchOptions_.injectRandomServerError);
|
| 856 |
-
options.debug().set_inject_random_client_error(benchOptions_.injectRandomClientError);
|
| 857 |
-
options.retry().set_retry_permanent_error(benchOptions_.retryPermanentError);
|
| 858 |
-
|
| 859 |
-
co_await storageClient_->truncateChunks(truncateOps, flat::UserInfo(), options);
|
| 860 |
-
|
| 861 |
-
for (const auto &truncateOp : truncateOps) {
|
| 862 |
-
if (truncateOp.result.lengthInfo.hasError()) {
|
| 863 |
-
XLOGF(WARN, "Truncate operation failed with error: {}", truncateOp.result.lengthInfo.error());
|
| 864 |
-
co_return truncateOp.result.lengthInfo.error().code();
|
| 865 |
-
}
|
| 866 |
-
}
|
| 867 |
-
|
| 868 |
-
truncateOps.clear();
|
| 869 |
-
}
|
| 870 |
-
}
|
| 871 |
-
|
| 872 |
-
co_return StatusCode::kOK;
|
| 873 |
-
};
|
| 874 |
-
|
| 875 |
-
truncateTasks.push_back(
|
| 876 |
-
batchTruncate(instanceId).scheduleOn(folly::Executor::getKeepAliveToken(testExecutor_)).start());
|
| 877 |
-
}
|
| 878 |
-
|
| 879 |
-
auto results = folly::coro::blockingWait(folly::coro::collectAllRange(std::move(truncateTasks)));
|
| 880 |
-
|
| 881 |
-
for (auto res : results) {
|
| 882 |
-
if (res != StatusCode::kOK) {
|
| 883 |
-
XLOGF(WARN, "Test task failed with status code: {}", res);
|
| 884 |
-
return res;
|
| 885 |
-
}
|
| 886 |
-
}
|
| 887 |
-
|
| 888 |
-
return StatusCode::kOK;
|
| 889 |
-
};
|
| 890 |
-
|
| 891 |
-
bool run() {
|
| 892 |
-
if (benchOptions_.numWriteSecs > 0)
|
| 893 |
-
if (runWriteBench() != StatusCode::kOK) return false;
|
| 894 |
-
if (benchOptions_.generateTestData)
|
| 895 |
-
if (generateChunks() != StatusCode::kOK) return false;
|
| 896 |
-
if (benchOptions_.numReadSecs > 0)
|
| 897 |
-
if (runReadBench() != StatusCode::kOK) return false;
|
| 898 |
-
return true;
|
| 899 |
-
}
|
| 900 |
-
|
| 901 |
-
uint64_t getWriteBytes() { return numWriteBytes_; }
|
| 902 |
-
|
| 903 |
-
uint64_t getReadBytes() { return numReadBytes_; }
|
| 904 |
-
};
|
| 905 |
-
|
| 906 |
-
} // namespace hf3fs::storage::benchmark
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/AddCrate.cmake
DELETED
|
@@ -1,33 +0,0 @@
|
|
| 1 |
-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
| 2 |
-
set(CARGO_CMD cargo build)
|
| 3 |
-
set(TARGET_DIR "debug")
|
| 4 |
-
else ()
|
| 5 |
-
set(CARGO_CMD cargo build --release)
|
| 6 |
-
set(TARGET_DIR "release")
|
| 7 |
-
endif ()
|
| 8 |
-
|
| 9 |
-
add_custom_target(
|
| 10 |
-
cargo_build_all ALL
|
| 11 |
-
COMMAND ${CARGO_CMD}
|
| 12 |
-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
|
| 13 |
-
)
|
| 14 |
-
|
| 15 |
-
macro(add_crate NAME)
|
| 16 |
-
set(LIBRARY "${PROJECT_SOURCE_DIR}/target/${TARGET_DIR}/lib${NAME}.a")
|
| 17 |
-
set(SOURCES
|
| 18 |
-
"${PROJECT_SOURCE_DIR}/target/cxxbridge/${NAME}/src/cxx.rs.h"
|
| 19 |
-
"${PROJECT_SOURCE_DIR}/target/cxxbridge/${NAME}/src/cxx.rs.cc"
|
| 20 |
-
)
|
| 21 |
-
|
| 22 |
-
add_custom_command(
|
| 23 |
-
OUTPUT ${SOURCES} ${LIBRARY}
|
| 24 |
-
COMMAND ${CARGO_CMD}
|
| 25 |
-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${NAME}"
|
| 26 |
-
)
|
| 27 |
-
|
| 28 |
-
add_library(${NAME} STATIC ${SOURCES} ${LIBRARY})
|
| 29 |
-
target_link_libraries(${NAME} pthread dl ${LIBRARY})
|
| 30 |
-
target_include_directories(${NAME} PUBLIC "${PROJECT_SOURCE_DIR}/target/cxxbridge")
|
| 31 |
-
target_compile_options(${NAME} PUBLIC -Wno-dollar-in-identifier-extension)
|
| 32 |
-
add_dependencies(${NAME} cargo_build_all)
|
| 33 |
-
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/ApacheArrow.cmake
DELETED
|
@@ -1,61 +0,0 @@
|
|
| 1 |
-
add_library(apache_arrow_static INTERFACE)
|
| 2 |
-
add_library(arrow_static STATIC IMPORTED)
|
| 3 |
-
add_library(parquet_static STATIC IMPORTED)
|
| 4 |
-
add_library(arrow_dependencies STATIC IMPORTED)
|
| 5 |
-
|
| 6 |
-
set(PREFIX "${CMAKE_CURRENT_BINARY_DIR}")
|
| 7 |
-
set(ARROW_RELEASE_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/src/apache-arrow-cpp/cpp/build/release")
|
| 8 |
-
|
| 9 |
-
# https://cmake.org/cmake/help/latest/policy/CMP0097.html
|
| 10 |
-
# Starting with CMake 3.16, explicitly setting GIT_SUBMODULES to an empty string
|
| 11 |
-
# means no submodules will be initialized or updated.
|
| 12 |
-
cmake_policy(SET CMP0097 NEW)
|
| 13 |
-
|
| 14 |
-
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.28)
|
| 15 |
-
set(ARROW_BUILD_PARALLEL "")
|
| 16 |
-
else()
|
| 17 |
-
set(ARROW_BUILD_PARALLEL "-j8")
|
| 18 |
-
endif()
|
| 19 |
-
|
| 20 |
-
include(ExternalProject)
|
| 21 |
-
ExternalProject_Add(
|
| 22 |
-
apache-arrow-cpp
|
| 23 |
-
PREFIX ${PREFIX}
|
| 24 |
-
GIT_REPOSITORY https://github.com/apache/arrow.git
|
| 25 |
-
GIT_TAG b7d2f7ffca66c868bd2fce5b3749c6caa002a7f0
|
| 26 |
-
GIT_SHALLOW ON
|
| 27 |
-
GIT_PROGRESS ON
|
| 28 |
-
GIT_SUBMODULES ""
|
| 29 |
-
SOURCE_SUBDIR "cpp"
|
| 30 |
-
BUILD_IN_SOURCE ON
|
| 31 |
-
INSTALL_DIR ${PREFIX}
|
| 32 |
-
CONFIGURE_COMMAND bash -x -c "\
|
| 33 |
-
( cd thirdparty && [[ -f export.sh ]] || ./download_dependencies.sh | tee export.sh ) && \
|
| 34 |
-
source thirdparty/export.sh && cmake -S . -B . \
|
| 35 |
-
-DCMAKE_BUILD_TYPE=Release \
|
| 36 |
-
-DARROW_USE_CCACHE=OFF \
|
| 37 |
-
-DARROW_USE_SCCACHE=OFF \
|
| 38 |
-
-DARROW_DEPENDENCY_SOURCE=BUNDLED \
|
| 39 |
-
-DARROW_BUILD_STATIC=ON \
|
| 40 |
-
-DARROW_JEMALLOC=ON \
|
| 41 |
-
-DARROW_SIMD_LEVEL=DEFAULT \
|
| 42 |
-
-DARROW_BUILD_EXAMPLES=OFF \
|
| 43 |
-
-DARROW_PARQUET=ON -DARROW_CSV=ON \
|
| 44 |
-
-DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_ZLIB=ON"
|
| 45 |
-
BUILD_COMMAND bash -x -c "source thirdparty/export.sh && cmake --build . ${ARROW_BUILD_PARALLEL}"
|
| 46 |
-
BUILD_JOB_SERVER_AWARE 1
|
| 47 |
-
INSTALL_COMMAND cmake --install . --prefix "${PREFIX}"
|
| 48 |
-
BUILD_BYPRODUCTS
|
| 49 |
-
"${ARROW_RELEASE_BUILD_DIR}/libarrow.a"
|
| 50 |
-
"${ARROW_RELEASE_BUILD_DIR}/libparquet.a"
|
| 51 |
-
"${ARROW_RELEASE_BUILD_DIR}/libarrow_bundled_dependencies.a"
|
| 52 |
-
)
|
| 53 |
-
|
| 54 |
-
add_dependencies(arrow_static apache-arrow-cpp)
|
| 55 |
-
add_dependencies(parquet_static apache-arrow-cpp)
|
| 56 |
-
add_dependencies(arrow_dependencies apache-arrow-cpp)
|
| 57 |
-
set_target_properties(arrow_static PROPERTIES IMPORTED_LOCATION "${ARROW_RELEASE_BUILD_DIR}/libarrow.a")
|
| 58 |
-
set_target_properties(parquet_static PROPERTIES IMPORTED_LOCATION "${ARROW_RELEASE_BUILD_DIR}/libparquet.a")
|
| 59 |
-
set_target_properties(arrow_dependencies PROPERTIES IMPORTED_LOCATION "${ARROW_RELEASE_BUILD_DIR}/libarrow_bundled_dependencies.a")
|
| 60 |
-
target_include_directories(apache_arrow_static SYSTEM INTERFACE "${PREFIX}/include")
|
| 61 |
-
target_link_libraries(apache_arrow_static INTERFACE parquet_static arrow_static arrow_dependencies)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/CLangFormat.cmake
DELETED
|
@@ -1,24 +0,0 @@
|
|
| 1 |
-
set(CLANG_FORMAT "/usr/bin/clang-format-14")
|
| 2 |
-
if(EXISTS ${CLANG_FORMAT})
|
| 3 |
-
message(STATUS "Found clang-format at ${CLANG_FORMAT}")
|
| 4 |
-
|
| 5 |
-
set(SOURCE_DIRS
|
| 6 |
-
${CMAKE_SOURCE_DIR}/src
|
| 7 |
-
${CMAKE_SOURCE_DIR}/tests
|
| 8 |
-
${CMAKE_SOURCE_DIR}/benchmarks
|
| 9 |
-
)
|
| 10 |
-
|
| 11 |
-
# For now, it just hard codes the source files list to globs. That works
|
| 12 |
-
# fine until we have another directory in `src/`. We should ideally gather
|
| 13 |
-
# this from SOURCE_FILES list. But, should filter the thirs_party sources.
|
| 14 |
-
# Taking a quick route for now. We should deal with it sometime down the line.
|
| 15 |
-
add_custom_target(format
|
| 16 |
-
COMMENT "Running clang-format"
|
| 17 |
-
COMMAND find ${SOURCE_DIRS} -name '*.cc' -o -name '*.cpp' -o -name '*.h' | grep -v "_generated.h" | xargs ${CLANG_FORMAT} -i)
|
| 18 |
-
|
| 19 |
-
add_custom_target(check-format
|
| 20 |
-
COMMENT "Running clang-format"
|
| 21 |
-
COMMAND find ${SOURCE_DIRS} -name '*.cc' -o -name '*.cpp' -o -name '*.h' | grep -v "_generated.h" | xargs ${CLANG_FORMAT} --Werror --dry-run)
|
| 22 |
-
else()
|
| 23 |
-
message(FATAL_ERROR "clang-format-14 not found")
|
| 24 |
-
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/CLangTidy.cmake
DELETED
|
@@ -1,52 +0,0 @@
|
|
| 1 |
-
# clang-tidy generates too many warnings, so just disable it by default.
|
| 2 |
-
option(ENABLE_CLANG_TIDY "Run clang-tidy during build" OFF)
|
| 3 |
-
|
| 4 |
-
find_program(CLANG_TIDY NAMES clang-tidy-14)
|
| 5 |
-
if(CLANG_TIDY)
|
| 6 |
-
if(CMake_SOURCE_DIR STREQUAL CMake_BINARY_DIR)
|
| 7 |
-
message(FATAL_ERROR "CMake_RUN_CLANG_TIDY requires an out-of-source build!")
|
| 8 |
-
endif()
|
| 9 |
-
|
| 10 |
-
if(NOT CMAKE_EXPORT_COMPILE_COMMANDS)
|
| 11 |
-
message(WARNING "CMAKE_EXPORT_COMPILE_COMMANDS=OFF, clang-tidy may not works!!!")
|
| 12 |
-
endif()
|
| 13 |
-
|
| 14 |
-
set(HEADER_FILTER "${CMAKE_SOURCE_DIR}/\\(src\\|tests\\|benchmarks\\|demos\\)")
|
| 15 |
-
|
| 16 |
-
if(ENABLE_CLANG_TIDY)
|
| 17 |
-
set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY} --header-filter ${HEADER_FILTER})
|
| 18 |
-
|
| 19 |
-
# Create a preprocessor definition that depends on .clang-tidy content so
|
| 20 |
-
# the compile command will change when .clang-tidy changes. This ensures
|
| 21 |
-
# that a subsequent build re-runs clang-tidy on all sources even if they
|
| 22 |
-
# do not otherwise need to be recompiled. Nothing actually uses this
|
| 23 |
-
# definition. We add it to targets on which we run clang-tidy just to
|
| 24 |
-
# get the build dependency on the .clang-tidy file.
|
| 25 |
-
file(SHA1 ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy clang_tidy_sha1)
|
| 26 |
-
set(CLANG_TIDY_DEFINITIONS "CLANG_TIDY_SHA1=${clang_tidy_sha1}")
|
| 27 |
-
unset(clang_tidy_sha1)
|
| 28 |
-
|
| 29 |
-
configure_file(.clang-tidy .clang-tidy COPYONLY)
|
| 30 |
-
endif()
|
| 31 |
-
|
| 32 |
-
set(SOURCE_DIRS
|
| 33 |
-
${CMAKE_SOURCE_DIR}/src
|
| 34 |
-
${CMAKE_SOURCE_DIR}/tests
|
| 35 |
-
${CMAKE_SOURCE_DIR}/demos
|
| 36 |
-
${CMAKE_SOURCE_DIR}/benchmarks
|
| 37 |
-
)
|
| 38 |
-
|
| 39 |
-
# For now, it just hard codes the source files list to globs. That works
|
| 40 |
-
# fine until we have another directory in `src/`. We should ideally gather
|
| 41 |
-
# this from SOURCE_FILES list. But, should filter the thirs_party sources.
|
| 42 |
-
# Taking a quick route for now. We should deal with it sometime down the line.
|
| 43 |
-
add_custom_target(clang-tidy
|
| 44 |
-
COMMENT "Running clang-tidy"
|
| 45 |
-
COMMAND run-clang-tidy-14 -header-filter ${HEADER_FILTER} `find ${SOURCE_DIRS} -name "*.cc" -o -name "*.cpp" -not -name "*.actor.cpp" ` -quiet)
|
| 46 |
-
|
| 47 |
-
add_custom_target(clang-tidy-fix
|
| 48 |
-
COMMENT "Running clang-tidy -fix"
|
| 49 |
-
COMMAND run-clang-tidy-14 -header-filter ${HEADER_FILTER} `find ${SOURCE_DIRS} -name "*.cc" -o -name "*.cpp" -not -name "*.actor.cpp" ` -fix -quiet)
|
| 50 |
-
else()
|
| 51 |
-
message(WARNING "clang-tidy-14 not found!!!")
|
| 52 |
-
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/CTestCustom.cmake
DELETED
|
@@ -1,12 +0,0 @@
|
|
| 1 |
-
file (STRINGS "@CMAKE_BINARY_DIR@/CTestTestfile.cmake" LINES)
|
| 2 |
-
|
| 3 |
-
# overwrite the file....
|
| 4 |
-
file(WRITE "@CMAKE_BINARY_DIR@/CTestTestfile.cmake" "")
|
| 5 |
-
|
| 6 |
-
# loop through the lines,
|
| 7 |
-
foreach(LINE IN LISTS LINES)
|
| 8 |
-
# remove unwanted parts
|
| 9 |
-
string(REGEX REPLACE ".*third_party.*" "" STRIPPED "${LINE}")
|
| 10 |
-
# and write the (changed) line ...
|
| 11 |
-
file(APPEND "@CMAKE_BINARY_DIR@/CTestTestfile.cmake" "${STRIPPED}\n")
|
| 12 |
-
endforeach()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/CodeCoverage.cmake
DELETED
|
@@ -1,27 +0,0 @@
|
|
| 1 |
-
option(ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
|
| 2 |
-
if(ENABLE_CODE_COVERAGE)
|
| 3 |
-
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG" )
|
| 4 |
-
message(STATUS "Enable code coverage with debug mode.")
|
| 5 |
-
else()
|
| 6 |
-
message(WARNING "Code coverage with no debug mode!!!")
|
| 7 |
-
endif()
|
| 8 |
-
|
| 9 |
-
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
| 10 |
-
set(COVERAGE_COMPILER_FLAGS "-g -fprofile-arcs -ftest-coverage")
|
| 11 |
-
link_libraries(gcov)
|
| 12 |
-
elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
|
| 13 |
-
set(COVERAGE_COMPILER_FLAGS "-g -fprofile-instr-generate -fcoverage-mapping")
|
| 14 |
-
else()
|
| 15 |
-
message(FATAL_ERROR "Unknown compiler iid ${CMAKE_CXX_COMPILER_ID}")
|
| 16 |
-
endif()
|
| 17 |
-
|
| 18 |
-
include(CheckCXXCompilerFlag)
|
| 19 |
-
check_cxx_compiler_flag(-fprofile-abs-path HAVE_fprofile_abs_path)
|
| 20 |
-
if(HAVE_fprofile_abs_path)
|
| 21 |
-
set(COVERAGE_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} -fprofile-abs-path")
|
| 22 |
-
endif()
|
| 23 |
-
|
| 24 |
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
|
| 25 |
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
|
| 26 |
-
message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
|
| 27 |
-
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/CompileFlags.cmake
DELETED
|
@@ -1,21 +0,0 @@
|
|
| 1 |
-
macro(store_compile_flags)
|
| 2 |
-
set(ORIGINAL_C_FLAGS "${CMAKE_C_FLAGS}")
|
| 3 |
-
set(ORIGINAL_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
|
| 4 |
-
set(ORIGINAL_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
| 5 |
-
set(ORIGINAL_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
| 6 |
-
set(ORIGINAL_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
| 7 |
-
set(ORIGINAL_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
| 8 |
-
set(ORIGINAL_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
| 9 |
-
set(ORIGINAL_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
| 10 |
-
endmacro()
|
| 11 |
-
|
| 12 |
-
macro(restore_compile_flags)
|
| 13 |
-
set(CMAKE_C_FLAGS "${ORIGINAL_C_FLAGS}")
|
| 14 |
-
set(CMAKE_C_FLAGS_DEBUG "${ORIGINAL_C_FLAGS_DEBUG}")
|
| 15 |
-
set(CMAKE_C_FLAGS_RELEASE "${ORIGINAL_C_FLAGS_RELEASE}")
|
| 16 |
-
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${ORIGINAL_C_FLAGS_RELWITHDEBINFO}")
|
| 17 |
-
set(CMAKE_CXX_FLAGS "${ORIGINAL_CXX_FLAGS}")
|
| 18 |
-
set(CMAKE_CXX_FLAGS_DEBUG "${ORIGINAL_CXX_FLAGS_DEBUG}")
|
| 19 |
-
set(CMAKE_CXX_FLAGS_RELEASE "${ORIGINAL_CXX_FLAGS_RELEASE}")
|
| 20 |
-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${ORIGINAL_CXX_FLAGS_RELWITHDEBINFO}")
|
| 21 |
-
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/DumpConfig.cmake
DELETED
|
@@ -1,15 +0,0 @@
|
|
| 1 |
-
if (ENABLE_FUSE_APPLICATION)
|
| 2 |
-
add_custom_target(dump-config
|
| 3 |
-
COMMENT "Running dump config"
|
| 4 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' -o -name 'admin_cli' -o -name 'hf3fs_fuse_main' | xargs -I {} bash -c '{} --dump_default_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`.toml'
|
| 5 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' -o -name 'hf3fs_fuse_main' | xargs -I {} bash -c '{} --dump_default_app_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`_app.toml'
|
| 6 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' -o -name 'hf3fs_fuse_main' | xargs -I {} bash -c '{} --dump_default_launcher_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`_launcher.toml')
|
| 7 |
-
add_dependencies(dump-config meta_main mgmtd_main storage_main admin_cli hf3fs_fuse_main)
|
| 8 |
-
else()
|
| 9 |
-
add_custom_target(dump-config
|
| 10 |
-
COMMENT "Running dump config"
|
| 11 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' -o -name 'admin_cli' | xargs -I {} bash -c '{} --dump_default_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`.toml'
|
| 12 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' | xargs -I {} bash -c '{} --dump_default_app_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`_app.toml'
|
| 13 |
-
COMMAND find ${CMAKE_CURRENT_BINARY_DIR} -name 'meta_main' -o -name 'mgmtd_main' -o -name 'storage_main' | xargs -I {} bash -c '{} --dump_default_launcher_cfg > ${CMAKE_SOURCE_DIR}/configs/`basename {}`_launcher.toml')
|
| 14 |
-
add_dependencies(dump-config meta_main mgmtd_main storage_main admin_cli)
|
| 15 |
-
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/GitVersion.cmake
DELETED
|
@@ -1,127 +0,0 @@
|
|
| 1 |
-
find_package(Git REQUIRED)
|
| 2 |
-
|
| 3 |
-
if (NOT DEFINED PRE_CONFIGURE_DIR)
|
| 4 |
-
set(PRE_CONFIGURE_DIR ${PROJECT_SOURCE_DIR}/src/common/utils)
|
| 5 |
-
endif ()
|
| 6 |
-
|
| 7 |
-
if (NOT DEFINED POST_BUILD_DIR)
|
| 8 |
-
set(POST_BUILD_DIR ${PROJECT_BINARY_DIR})
|
| 9 |
-
endif ()
|
| 10 |
-
|
| 11 |
-
set(PRE_CONFIGURE_FILE ${PRE_CONFIGURE_DIR}/VersionInfo.cc.in)
|
| 12 |
-
set(POST_CONFIGURE_FILE ${POST_BUILD_DIR}/src/common/utils/VersionInfo.cc)
|
| 13 |
-
|
| 14 |
-
function(CheckGitWrite git_hash)
|
| 15 |
-
file(WRITE ${POST_BUILD_DIR}/git-state.txt ${git_hash})
|
| 16 |
-
endfunction()
|
| 17 |
-
|
| 18 |
-
function(CheckGitRead git_hash)
|
| 19 |
-
if (EXISTS ${POST_BUILD_DIR}/git-state.txt)
|
| 20 |
-
file(STRINGS ${POST_BUILD_DIR}/git-state.txt CONTENT)
|
| 21 |
-
LIST(GET CONTENT 0 var)
|
| 22 |
-
set(${git_hash} ${var} PARENT_SCOPE)
|
| 23 |
-
endif ()
|
| 24 |
-
endfunction()
|
| 25 |
-
|
| 26 |
-
function(CheckGitVersion)
|
| 27 |
-
# Get the latest abbreviated commit hash of the working branch
|
| 28 |
-
execute_process(
|
| 29 |
-
COMMAND ${GIT_EXECUTABLE} rev-parse --short=8 HEAD
|
| 30 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 31 |
-
OUTPUT_VARIABLE BUILD_COMMIT_HASH_SHORT
|
| 32 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 33 |
-
)
|
| 34 |
-
execute_process(
|
| 35 |
-
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
| 36 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 37 |
-
OUTPUT_VARIABLE BUILD_COMMIT_HASH_FULL
|
| 38 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 39 |
-
)
|
| 40 |
-
execute_process(
|
| 41 |
-
COMMAND ${GIT_EXECUTABLE} log -1 --format=%at --date=local
|
| 42 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 43 |
-
OUTPUT_VARIABLE BUILD_TIMESTAMP
|
| 44 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 45 |
-
)
|
| 46 |
-
execute_process(
|
| 47 |
-
COMMAND date -d @${BUILD_TIMESTAMP} +%Y%m%d
|
| 48 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 49 |
-
OUTPUT_VARIABLE BUILD_DATE
|
| 50 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 51 |
-
)
|
| 52 |
-
execute_process(
|
| 53 |
-
COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
|
| 54 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 55 |
-
OUTPUT_VARIABLE BUILD_TAG
|
| 56 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 57 |
-
)
|
| 58 |
-
execute_process(
|
| 59 |
-
COMMAND bash -c "${GIT_EXECUTABLE} describe --tags --long | sed -E 's/(.*)-([0-9]+)-(\\w+)/\\2/g'"
|
| 60 |
-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
| 61 |
-
OUTPUT_VARIABLE BUILD_TAG_SEQ_NUM
|
| 62 |
-
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 63 |
-
)
|
| 64 |
-
if(NOT DEFINED BUILD_TAG OR BUILD_TAG STREQUAL "")
|
| 65 |
-
set(BUILD_TAG "250228")
|
| 66 |
-
endif()
|
| 67 |
-
if(NOT DEFINED BUILD_TAG_SEQ_NUM OR BUILD_TAG_SEQ_NUM STREQUAL "")
|
| 68 |
-
set(BUILD_TAG_SEQ_NUM "1")
|
| 69 |
-
endif()
|
| 70 |
-
message(STATUS "Git Commit hash: ${BUILD_COMMIT_HASH_SHORT} ${BUILD_COMMIT_HASH_FULL}")
|
| 71 |
-
message(STATUS "Git Commit Date & Timestamp: ${BUILD_DATE} ${BUILD_TIMESTAMP}")
|
| 72 |
-
message(STATUS "Git Commit Tag & Seq Num: ${BUILD_TAG} ${BUILD_TAG_SEQ_NUM}")
|
| 73 |
-
|
| 74 |
-
set(BUILD_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
| 75 |
-
set(BUILD_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
| 76 |
-
set(BUILD_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
| 77 |
-
set(BUILD_VERSION "${PROJECT_VERSION}")
|
| 78 |
-
|
| 79 |
-
CheckGitRead(GIT_HASH_CACHE)
|
| 80 |
-
|
| 81 |
-
if (NOT DEFINED GIT_HASH_CACHE)
|
| 82 |
-
set(GIT_HASH_CACHE "INVALID")
|
| 83 |
-
endif ()
|
| 84 |
-
|
| 85 |
-
if (NOT DEFINED BUILD_ON_RELEASE_BRANCH)
|
| 86 |
-
set(BUILD_ON_RELEASE_BRANCH "false")
|
| 87 |
-
endif ()
|
| 88 |
-
|
| 89 |
-
if (NOT DEFINED BUILD_PIPELINE_ID)
|
| 90 |
-
set(BUILD_PIPELINE_ID "999999")
|
| 91 |
-
endif()
|
| 92 |
-
|
| 93 |
-
# Only update the git_version.cpp if the hash has changed. This will
|
| 94 |
-
# prevent us from rebuilding the project more than we need to.
|
| 95 |
-
if (NOT ${BUILD_COMMIT_HASH_FULL} STREQUAL ${GIT_HASH_CACHE} OR NOT EXISTS ${POST_CONFIGURE_FILE})
|
| 96 |
-
# Set che GIT_HASH_CACHE variable the next build won't have
|
| 97 |
-
# to regenerate the source file.
|
| 98 |
-
CheckGitWrite("${BUILD_COMMIT_HASH_FULL}")
|
| 99 |
-
configure_file(${PRE_CONFIGURE_FILE} ${POST_CONFIGURE_FILE} @ONLY)
|
| 100 |
-
endif ()
|
| 101 |
-
endfunction()
|
| 102 |
-
|
| 103 |
-
function(CheckGitSetup project_src_dir)
|
| 104 |
-
add_custom_target(AlwaysCheckGit COMMAND ${CMAKE_COMMAND}
|
| 105 |
-
-DRUN_CHECK_GIT_VERSION=1
|
| 106 |
-
-DPRE_CONFIGURE_DIR=${PRE_CONFIGURE_DIR}
|
| 107 |
-
-DPOST_BUILD_DIR=${POST_BUILD_DIR}
|
| 108 |
-
-DGIT_HASH_CACHE=${GIT_HASH_CACHE}
|
| 109 |
-
-DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}
|
| 110 |
-
-DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR}
|
| 111 |
-
-DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}
|
| 112 |
-
-DPROJECT_VERSION=${PROJECT_VERSION}
|
| 113 |
-
-DPROJECT_SOURCE_DIR=${project_src_dir}
|
| 114 |
-
-P ${PROJECT_SOURCE_DIR}/cmake/GitVersion.cmake
|
| 115 |
-
DEPENDS ${PRE_CONFIGURE_FILE}
|
| 116 |
-
BYPRODUCTS ${POST_CONFIGURE_FILE}
|
| 117 |
-
)
|
| 118 |
-
|
| 119 |
-
add_library(version-info STATIC ${POST_CONFIGURE_FILE})
|
| 120 |
-
target_include_directories(version-info PUBLIC ${PROJECT_SOURCE_DIR}/src)
|
| 121 |
-
add_dependencies(version-info AlwaysCheckGit)
|
| 122 |
-
CheckGitVersion()
|
| 123 |
-
endfunction()
|
| 124 |
-
|
| 125 |
-
if (RUN_CHECK_GIT_VERSION)
|
| 126 |
-
CheckGitVersion()
|
| 127 |
-
endif ()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/Jemalloc.cmake
DELETED
|
@@ -1,20 +0,0 @@
|
|
| 1 |
-
add_library(jemalloc INTERFACE)
|
| 2 |
-
add_library(hf3fs_jemalloc_shared SHARED IMPORTED)
|
| 3 |
-
|
| 4 |
-
include(ExternalProject)
|
| 5 |
-
set(JEMALLOC_DIR "${CMAKE_BINARY_DIR}/third_party/jemalloc")
|
| 6 |
-
|
| 7 |
-
ExternalProject_add(Hf3fsJemalloc_project
|
| 8 |
-
SOURCE_DIR "${PROJECT_SOURCE_DIR}/third_party/jemalloc"
|
| 9 |
-
BUILD_BYPRODUCTS "${JEMALLOC_DIR}/include/jemalloc/jemalloc.h"
|
| 10 |
-
"${JEMALLOC_DIR}/lib/libjemalloc.so.2"
|
| 11 |
-
CONFIGURE_COMMAND ./autogen.sh && ./configure --prefix=${JEMALLOC_DIR} --disable-cxx --enable-prof --disable-initial-exec-tls
|
| 12 |
-
BUILD_IN_SOURCE ON
|
| 13 |
-
BUILD_COMMAND make -j 6
|
| 14 |
-
INSTALL_DIR "${JEMALLOC_DIR}"
|
| 15 |
-
INSTALL_COMMAND make install)
|
| 16 |
-
|
| 17 |
-
add_dependencies(hf3fs_jemalloc_shared Hf3fsJemalloc_project)
|
| 18 |
-
set_target_properties(hf3fs_jemalloc_shared PROPERTIES IMPORTED_LOCATION "${JEMALLOC_DIR}/lib/libjemalloc.so.2")
|
| 19 |
-
target_include_directories(hf3fs_jemalloc_shared INTERFACE "${JEMALLOC_DIR}/include")
|
| 20 |
-
target_link_libraries(jemalloc INTERFACE hf3fs_jemalloc_shared)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/Sanitizers.cmake
DELETED
|
@@ -1,242 +0,0 @@
|
|
| 1 |
-
#
|
| 2 |
-
# Copyright (C) 2018-2022 by George Cave - gcave@stablecoder.ca
|
| 3 |
-
#
|
| 4 |
-
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
| 5 |
-
# use this file except in compliance with the License. You may obtain a copy of
|
| 6 |
-
# the License at
|
| 7 |
-
#
|
| 8 |
-
# http://www.apache.org/licenses/LICENSE-2.0
|
| 9 |
-
#
|
| 10 |
-
# Unless required by applicable law or agreed to in writing, software
|
| 11 |
-
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
| 12 |
-
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
| 13 |
-
# License for the specific language governing permissions and limitations under
|
| 14 |
-
# the License.
|
| 15 |
-
|
| 16 |
-
include(CheckCXXSourceCompiles)
|
| 17 |
-
|
| 18 |
-
set(SANITIZER "" CACHE STRING "Sanitizer: ASAN, MSAN, UBSAN, TSAN")
|
| 19 |
-
if(SANITIZER STREQUAL "ASAN")
|
| 20 |
-
message(STATUS "Build with Address Sanitizer.")
|
| 21 |
-
set(USE_SANITIZER "Address")
|
| 22 |
-
set(USE_ASAN ON)
|
| 23 |
-
elseif(SANITIZER STREQUAL "MSAN")
|
| 24 |
-
message(STATUS "Build with Memory Sanitizer.")
|
| 25 |
-
set(USE_SANITIZER "Memory")
|
| 26 |
-
set(USE_MSAN ON)
|
| 27 |
-
elseif(SANITIZER STREQUAL "UBSAN")
|
| 28 |
-
message(STATUS "Build with Undefined behavior Sanitizer.")
|
| 29 |
-
message(WARNING "With clang++ v14.0.6 undefined behavior sanitizer doesn't work with coroutine!!!")
|
| 30 |
-
set(USE_SANITIZER "Undefined")
|
| 31 |
-
set(USE_UBSAN ON)
|
| 32 |
-
elseif(SANITIZER STREQUAL "TSAN")
|
| 33 |
-
message(STATUS "Build with Thread Sanitizer.")
|
| 34 |
-
set(USE_SANITIZER "Thread")
|
| 35 |
-
set(USE_TSAN ON)
|
| 36 |
-
else()
|
| 37 |
-
message(STATUS "Sanitizer not enabled. ${SANITIZER}")
|
| 38 |
-
set(USE_SANITIZER "")
|
| 39 |
-
endif()
|
| 40 |
-
|
| 41 |
-
# set(USE_SANITIZER "" CACHE STRING
|
| 42 |
-
# "Compile with a sanitizer. Options are: Address, Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined', CFI"
|
| 43 |
-
# )
|
| 44 |
-
|
| 45 |
-
function(append value)
|
| 46 |
-
foreach(variable ${ARGN})
|
| 47 |
-
set(${variable}
|
| 48 |
-
"${${variable}} ${value}"
|
| 49 |
-
PARENT_SCOPE)
|
| 50 |
-
endforeach(variable)
|
| 51 |
-
endfunction()
|
| 52 |
-
|
| 53 |
-
function(append_quoteless value)
|
| 54 |
-
foreach(variable ${ARGN})
|
| 55 |
-
set(${variable}
|
| 56 |
-
${${variable}} ${value}
|
| 57 |
-
PARENT_SCOPE)
|
| 58 |
-
endforeach(variable)
|
| 59 |
-
endfunction()
|
| 60 |
-
|
| 61 |
-
function(test_san_flags return_var flags)
|
| 62 |
-
set(QUIET_BACKUP ${CMAKE_REQUIRED_QUIET})
|
| 63 |
-
set(CMAKE_REQUIRED_QUIET TRUE)
|
| 64 |
-
unset(${return_var} CACHE)
|
| 65 |
-
set(FLAGS_BACKUP ${CMAKE_REQUIRED_FLAGS})
|
| 66 |
-
set(CMAKE_REQUIRED_FLAGS "${flags}")
|
| 67 |
-
check_cxx_source_compiles("int main() { return 0; }" ${return_var})
|
| 68 |
-
set(CMAKE_REQUIRED_FLAGS "${FLAGS_BACKUP}")
|
| 69 |
-
set(CMAKE_REQUIRED_QUIET "${QUIET_BACKUP}")
|
| 70 |
-
endfunction()
|
| 71 |
-
|
| 72 |
-
if(USE_SANITIZER)
|
| 73 |
-
append("-fno-omit-frame-pointer" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
| 74 |
-
|
| 75 |
-
unset(SANITIZER_SELECTED_FLAGS)
|
| 76 |
-
|
| 77 |
-
if(UNIX)
|
| 78 |
-
if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
| 79 |
-
append("-O1" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
| 80 |
-
endif()
|
| 81 |
-
|
| 82 |
-
if(USE_SANITIZER MATCHES "([Aa]ddress)")
|
| 83 |
-
# Optional: -fno-optimize-sibling-calls -fsanitize-address-use-after-scope
|
| 84 |
-
message(STATUS "Testing with Address sanitizer")
|
| 85 |
-
set(SANITIZER_ADDR_FLAG "-fsanitize=address")
|
| 86 |
-
test_san_flags(SANITIZER_ADDR_AVAILABLE ${SANITIZER_ADDR_FLAG})
|
| 87 |
-
if(SANITIZER_ADDR_AVAILABLE)
|
| 88 |
-
message(STATUS " Building with Address sanitizer")
|
| 89 |
-
append("${SANITIZER_ADDR_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 90 |
-
|
| 91 |
-
if(AFL)
|
| 92 |
-
append_quoteless(AFL_USE_ASAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 93 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 94 |
-
endif()
|
| 95 |
-
else()
|
| 96 |
-
message(
|
| 97 |
-
FATAL_ERROR
|
| 98 |
-
"Address sanitizer not available for ${CMAKE_CXX_COMPILER}")
|
| 99 |
-
endif()
|
| 100 |
-
endif()
|
| 101 |
-
|
| 102 |
-
if(USE_SANITIZER MATCHES "([Mm]emory([Ww]ith[Oo]rigins)?)")
|
| 103 |
-
# Optional: -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2
|
| 104 |
-
set(SANITIZER_MEM_FLAG "-fsanitize=memory")
|
| 105 |
-
if(USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)")
|
| 106 |
-
message(STATUS "Testing with MemoryWithOrigins sanitizer")
|
| 107 |
-
append("-fsanitize-memory-track-origins" SANITIZER_MEM_FLAG)
|
| 108 |
-
else()
|
| 109 |
-
message(STATUS "Testing with Memory sanitizer")
|
| 110 |
-
endif()
|
| 111 |
-
test_san_flags(SANITIZER_MEM_AVAILABLE ${SANITIZER_MEM_FLAG})
|
| 112 |
-
if(SANITIZER_MEM_AVAILABLE)
|
| 113 |
-
if(USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)")
|
| 114 |
-
message(STATUS " Building with MemoryWithOrigins sanitizer")
|
| 115 |
-
else()
|
| 116 |
-
message(STATUS " Building with Memory sanitizer")
|
| 117 |
-
endif()
|
| 118 |
-
append("${SANITIZER_MEM_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 119 |
-
|
| 120 |
-
if(AFL)
|
| 121 |
-
append_quoteless(AFL_USE_MSAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 122 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 123 |
-
endif()
|
| 124 |
-
else()
|
| 125 |
-
message(
|
| 126 |
-
FATAL_ERROR
|
| 127 |
-
"Memory [With Origins] sanitizer not available for ${CMAKE_CXX_COMPILER}"
|
| 128 |
-
)
|
| 129 |
-
endif()
|
| 130 |
-
endif()
|
| 131 |
-
|
| 132 |
-
if(USE_SANITIZER MATCHES "([Uu]ndefined)")
|
| 133 |
-
message(STATUS "Testing with Undefined Behaviour sanitizer")
|
| 134 |
-
set(SANITIZER_UB_FLAG "-fsanitize=undefined")
|
| 135 |
-
if(EXISTS "${BLACKLIST_FILE}")
|
| 136 |
-
append("-fsanitize-blacklist=${BLACKLIST_FILE}" SANITIZER_UB_FLAG)
|
| 137 |
-
endif()
|
| 138 |
-
test_san_flags(SANITIZER_UB_AVAILABLE ${SANITIZER_UB_FLAG})
|
| 139 |
-
if(SANITIZER_UB_AVAILABLE)
|
| 140 |
-
message(STATUS " Building with Undefined Behaviour sanitizer")
|
| 141 |
-
append("${SANITIZER_UB_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 142 |
-
|
| 143 |
-
if(AFL)
|
| 144 |
-
append_quoteless(AFL_USE_UBSAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 145 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 146 |
-
endif()
|
| 147 |
-
else()
|
| 148 |
-
message(
|
| 149 |
-
FATAL_ERROR
|
| 150 |
-
"Undefined Behaviour sanitizer not available for ${CMAKE_CXX_COMPILER}"
|
| 151 |
-
)
|
| 152 |
-
endif()
|
| 153 |
-
endif()
|
| 154 |
-
|
| 155 |
-
if(USE_SANITIZER MATCHES "([Tt]hread)")
|
| 156 |
-
message(STATUS "Testing with Thread sanitizer")
|
| 157 |
-
set(SANITIZER_THREAD_FLAG "-fsanitize=thread -fsanitize-ignorelist=${CMAKE_SOURCE_DIR}/tsan_ignore.txt")
|
| 158 |
-
test_san_flags(SANITIZER_THREAD_AVAILABLE ${SANITIZER_THREAD_FLAG})
|
| 159 |
-
if(SANITIZER_THREAD_AVAILABLE)
|
| 160 |
-
message(STATUS " Building with Thread sanitizer")
|
| 161 |
-
append("${SANITIZER_THREAD_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 162 |
-
|
| 163 |
-
if(AFL)
|
| 164 |
-
append_quoteless(AFL_USE_TSAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 165 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 166 |
-
endif()
|
| 167 |
-
else()
|
| 168 |
-
message(
|
| 169 |
-
FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER}"
|
| 170 |
-
)
|
| 171 |
-
endif()
|
| 172 |
-
endif()
|
| 173 |
-
|
| 174 |
-
if(USE_SANITIZER MATCHES "([Ll]eak)")
|
| 175 |
-
message(STATUS "Testing with Leak sanitizer")
|
| 176 |
-
set(SANITIZER_LEAK_FLAG "-fsanitize=leak")
|
| 177 |
-
test_san_flags(SANITIZER_LEAK_AVAILABLE ${SANITIZER_LEAK_FLAG})
|
| 178 |
-
if(SANITIZER_LEAK_AVAILABLE)
|
| 179 |
-
message(STATUS " Building with Leak sanitizer")
|
| 180 |
-
append("${SANITIZER_LEAK_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 181 |
-
|
| 182 |
-
if(AFL)
|
| 183 |
-
append_quoteless(AFL_USE_LSAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 184 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 185 |
-
endif()
|
| 186 |
-
else()
|
| 187 |
-
message(
|
| 188 |
-
FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER}"
|
| 189 |
-
)
|
| 190 |
-
endif()
|
| 191 |
-
endif()
|
| 192 |
-
|
| 193 |
-
if(USE_SANITIZER MATCHES "([Cc][Ff][Ii])")
|
| 194 |
-
message(STATUS "Testing with Control Flow Integrity(CFI) sanitizer")
|
| 195 |
-
set(SANITIZER_CFI_FLAG "-fsanitize=cfi")
|
| 196 |
-
test_san_flags(SANITIZER_CFI_AVAILABLE ${SANITIZER_CFI_FLAG})
|
| 197 |
-
if(SANITIZER_CFI_AVAILABLE)
|
| 198 |
-
message(STATUS " Building with Control Flow Integrity(CFI) sanitizer")
|
| 199 |
-
append("${SANITIZER_LEAK_FLAG}" SANITIZER_SELECTED_FLAGS)
|
| 200 |
-
|
| 201 |
-
if(AFL)
|
| 202 |
-
append_quoteless(AFL_USE_CFISAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 203 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 204 |
-
endif()
|
| 205 |
-
else()
|
| 206 |
-
message(
|
| 207 |
-
FATAL_ERROR
|
| 208 |
-
"Control Flow Integrity(CFI) sanitizer not available for ${CMAKE_CXX_COMPILER}"
|
| 209 |
-
)
|
| 210 |
-
endif()
|
| 211 |
-
endif()
|
| 212 |
-
|
| 213 |
-
message(STATUS "Sanitizer flags: ${SANITIZER_SELECTED_FLAGS}")
|
| 214 |
-
test_san_flags(SANITIZER_SELECTED_COMPATIBLE ${SANITIZER_SELECTED_FLAGS})
|
| 215 |
-
if(SANITIZER_SELECTED_COMPATIBLE)
|
| 216 |
-
message(STATUS " Building with ${SANITIZER_SELECTED_FLAGS}")
|
| 217 |
-
append("${SANITIZER_SELECTED_FLAGS}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
| 218 |
-
else()
|
| 219 |
-
message(
|
| 220 |
-
FATAL_ERROR
|
| 221 |
-
" Sanitizer flags ${SANITIZER_SELECTED_FLAGS} are not compatible.")
|
| 222 |
-
endif()
|
| 223 |
-
elseif(MSVC)
|
| 224 |
-
if(USE_SANITIZER MATCHES "([Aa]ddress)")
|
| 225 |
-
message(STATUS "Building with Address sanitizer")
|
| 226 |
-
append("-fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
| 227 |
-
|
| 228 |
-
if(AFL)
|
| 229 |
-
append_quoteless(AFL_USE_ASAN=1 CMAKE_C_COMPILER_LAUNCHER
|
| 230 |
-
CMAKE_CXX_COMPILER_LAUNCHER)
|
| 231 |
-
endif()
|
| 232 |
-
else()
|
| 233 |
-
message(
|
| 234 |
-
FATAL_ERROR
|
| 235 |
-
"This sanitizer not yet supported in the MSVC environment: ${USE_SANITIZER}"
|
| 236 |
-
)
|
| 237 |
-
endif()
|
| 238 |
-
else()
|
| 239 |
-
message(FATAL_ERROR "USE_SANITIZER is not supported on this platform.")
|
| 240 |
-
endif()
|
| 241 |
-
|
| 242 |
-
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/cmake/Target.cmake
DELETED
|
@@ -1,109 +0,0 @@
|
|
| 1 |
-
# Check if IPO is supported
|
| 2 |
-
include(CheckIPOSupported)
|
| 3 |
-
check_ipo_supported(RESULT HAVE_IPO)
|
| 4 |
-
|
| 5 |
-
# Enable IPO in non-debug build
|
| 6 |
-
macro(target_enable_ipo NAME)
|
| 7 |
-
if(NOT CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG" AND HAVE_IPO)
|
| 8 |
-
set_property(TARGET ${NAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
| 9 |
-
message (STATUS "Enabled IPO for target: ${NAME}")
|
| 10 |
-
endif()
|
| 11 |
-
endmacro()
|
| 12 |
-
|
| 13 |
-
macro(target_add_lib NAME)
|
| 14 |
-
file(GLOB_RECURSE FILES CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc" "*.h")
|
| 15 |
-
add_library(${NAME} STATIC ${FILES} ${FBS_FILES})
|
| 16 |
-
target_include_directories(${NAME}
|
| 17 |
-
PUBLIC
|
| 18 |
-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
| 19 |
-
${PROJECT_SOURCE_DIR}
|
| 20 |
-
${PROJECT_BINARY_DIR}/src
|
| 21 |
-
${PROJECT_BINARY_DIR}
|
| 22 |
-
)
|
| 23 |
-
target_link_libraries(${NAME} ${ARGN} "")
|
| 24 |
-
endmacro()
|
| 25 |
-
|
| 26 |
-
macro(target_add_shared_lib NAME)
|
| 27 |
-
file(GLOB_RECURSE FILES CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc" "*.h")
|
| 28 |
-
add_library(${NAME} SHARED ${FILES} ${FBS_FILES})
|
| 29 |
-
target_include_directories(${NAME}
|
| 30 |
-
PUBLIC
|
| 31 |
-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
| 32 |
-
${PROJECT_SOURCE_DIR}
|
| 33 |
-
${PROJECT_BINARY_DIR}/src
|
| 34 |
-
${PROJECT_BINARY_DIR}
|
| 35 |
-
)
|
| 36 |
-
target_link_libraries(${NAME} ${ARGN} "")
|
| 37 |
-
target_enable_ipo(${NAME})
|
| 38 |
-
endmacro()
|
| 39 |
-
|
| 40 |
-
macro(target_add_bin NAME MAIN_FILE)
|
| 41 |
-
add_executable(${NAME} ${MAIN_FILE})
|
| 42 |
-
target_link_libraries(${NAME} ${ARGN} "")
|
| 43 |
-
target_include_directories(${NAME}
|
| 44 |
-
PUBLIC
|
| 45 |
-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
| 46 |
-
${PROJECT_SOURCE_DIR}
|
| 47 |
-
${PROJECT_SOURCE_DIR}/src/lib/api
|
| 48 |
-
${PROJECT_BINARY_DIR}/src
|
| 49 |
-
${PROJECT_BINARY_DIR}
|
| 50 |
-
)
|
| 51 |
-
set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
| 52 |
-
target_enable_ipo(${NAME})
|
| 53 |
-
endmacro()
|
| 54 |
-
|
| 55 |
-
macro(target_add_test NAME)
|
| 56 |
-
file(GLOB_RECURSE FILES CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc")
|
| 57 |
-
add_executable(${NAME} ${FILES})
|
| 58 |
-
target_link_libraries(${NAME} gmock test_main ${ARGN} "")
|
| 59 |
-
target_include_directories(${NAME}
|
| 60 |
-
PUBLIC
|
| 61 |
-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
| 62 |
-
${PROJECT_SOURCE_DIR}
|
| 63 |
-
${PROJECT_BINARY_DIR}/src
|
| 64 |
-
${PROJECT_BINARY_DIR}
|
| 65 |
-
)
|
| 66 |
-
add_test(NAME ${NAME} COMMAND ${NAME})
|
| 67 |
-
set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")
|
| 68 |
-
endmacro()
|
| 69 |
-
|
| 70 |
-
macro(target_add_fbs NAME PATH)
|
| 71 |
-
cmake_parse_arguments(FBS "SERVICE" "" "DEPS" ${ARGN})
|
| 72 |
-
|
| 73 |
-
message("Fbs " ${NAME} " FBS_SERVICE " ${FBS_SERVICE} " ARGN " ${ARGN})
|
| 74 |
-
|
| 75 |
-
set(FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS
|
| 76 |
-
--scoped-enums
|
| 77 |
-
--gen-object-api
|
| 78 |
-
--gen-mutable
|
| 79 |
-
--gen-compare
|
| 80 |
-
--cpp-std=c++17
|
| 81 |
-
--python
|
| 82 |
-
--hf3fs
|
| 83 |
-
--keep-prefix
|
| 84 |
-
)
|
| 85 |
-
|
| 86 |
-
get_filename_component(NAME_WE ${PATH} NAME_WE)
|
| 87 |
-
get_filename_component(DIR ${PATH} DIRECTORY)
|
| 88 |
-
|
| 89 |
-
build_flatbuffers(${PATH}
|
| 90 |
-
"${CMAKE_CURRENT_SOURCE_DIR}/${DIR};${CMAKE_SOURCE_DIR}/src"
|
| 91 |
-
"${NAME_WE}-generated"
|
| 92 |
-
""
|
| 93 |
-
"${CMAKE_CURRENT_BINARY_DIR}/${DIR}"
|
| 94 |
-
""
|
| 95 |
-
""
|
| 96 |
-
)
|
| 97 |
-
|
| 98 |
-
add_library(${NAME} INTERFACE)
|
| 99 |
-
target_link_libraries(${NAME} INTERFACE common)
|
| 100 |
-
target_include_directories(${NAME}
|
| 101 |
-
INTERFACE
|
| 102 |
-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
| 103 |
-
${PROJECT_SOURCE_DIR}
|
| 104 |
-
${PROJECT_BINARY_DIR}/src
|
| 105 |
-
${PROJECT_BINARY_DIR}
|
| 106 |
-
)
|
| 107 |
-
|
| 108 |
-
add_dependencies(${NAME} "${NAME_WE}-generated" ${FBS_DEPS})
|
| 109 |
-
endmacro()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/admin_cli.toml
DELETED
|
@@ -1,338 +0,0 @@
|
|
| 1 |
-
break_multi_line_command_on_failure = false
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
log = 'DBG:normal; normal=file:path=/var/log/3fs/cli.log,async=true,sync_level=ERR'
|
| 4 |
-
num_timeout_ms = 1000
|
| 5 |
-
profile = false
|
| 6 |
-
verbose = false
|
| 7 |
-
|
| 8 |
-
[client]
|
| 9 |
-
default_compression_level = 0
|
| 10 |
-
default_compression_threshold = '128KB'
|
| 11 |
-
default_log_long_running_threshold = '0ns'
|
| 12 |
-
default_report_metrics = false
|
| 13 |
-
default_send_retry_times = 1
|
| 14 |
-
default_timeout = '1s'
|
| 15 |
-
enable_rdma_control = false
|
| 16 |
-
force_use_tcp = false
|
| 17 |
-
|
| 18 |
-
[client.io_worker]
|
| 19 |
-
num_event_loop = 1
|
| 20 |
-
rdma_connect_timeout = '5s'
|
| 21 |
-
read_write_rdma_in_event_thread = false
|
| 22 |
-
read_write_tcp_in_event_thread = false
|
| 23 |
-
tcp_connect_timeout = '1s'
|
| 24 |
-
wait_to_retry_send = '100ms'
|
| 25 |
-
|
| 26 |
-
[client.io_worker.connect_concurrency_limiter]
|
| 27 |
-
max_concurrency = 4
|
| 28 |
-
|
| 29 |
-
[client.io_worker.ibsocket]
|
| 30 |
-
buf_ack_batch = 8
|
| 31 |
-
buf_signal_batch = 8
|
| 32 |
-
buf_size = 16384
|
| 33 |
-
drain_timeout = '5s'
|
| 34 |
-
drop_connections = 0
|
| 35 |
-
event_ack_batch = 128
|
| 36 |
-
max_rd_atomic = 16
|
| 37 |
-
max_rdma_wr = 128
|
| 38 |
-
max_rdma_wr_per_post = 32
|
| 39 |
-
max_sge = 16
|
| 40 |
-
min_rnr_timer = 1
|
| 41 |
-
record_bytes_per_peer = false
|
| 42 |
-
record_latency_per_peer = false
|
| 43 |
-
retry_cnt = 7
|
| 44 |
-
rnr_retry = 0
|
| 45 |
-
send_buf_cnt = 32
|
| 46 |
-
sl = 0
|
| 47 |
-
start_psn = 0
|
| 48 |
-
timeout = 14
|
| 49 |
-
|
| 50 |
-
[client.io_worker.transport_pool]
|
| 51 |
-
max_connections = 1
|
| 52 |
-
|
| 53 |
-
[client.processor]
|
| 54 |
-
enable_coroutines_pool = true
|
| 55 |
-
max_coroutines_num = 256
|
| 56 |
-
max_processing_requests_num = 4096
|
| 57 |
-
response_compression_level = 1
|
| 58 |
-
response_compression_threshold = '128KB'
|
| 59 |
-
|
| 60 |
-
[client.rdma_control]
|
| 61 |
-
max_concurrent_transmission = 64
|
| 62 |
-
|
| 63 |
-
[client.thread_pool]
|
| 64 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 65 |
-
collect_stats = false
|
| 66 |
-
enable_work_stealing = false
|
| 67 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 68 |
-
num_bg_threads = 2
|
| 69 |
-
num_connect_threads = 2
|
| 70 |
-
num_io_threads = 2
|
| 71 |
-
num_proc_threads = 2
|
| 72 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 73 |
-
|
| 74 |
-
[fdb]
|
| 75 |
-
casual_read_risky = false
|
| 76 |
-
clusterFile = ''
|
| 77 |
-
default_backoff = 0
|
| 78 |
-
enableMultipleClient = false
|
| 79 |
-
externalClientDir = ''
|
| 80 |
-
externalClientPath = ''
|
| 81 |
-
multipleClientThreadNum = 4
|
| 82 |
-
readonly = false
|
| 83 |
-
trace_file = ''
|
| 84 |
-
trace_format = 'json'
|
| 85 |
-
|
| 86 |
-
[ib_devices]
|
| 87 |
-
allow_no_usable_devices = false
|
| 88 |
-
allow_unknown_zone = true
|
| 89 |
-
default_network_zone = 'UNKNOWN'
|
| 90 |
-
default_pkey_index = 0
|
| 91 |
-
default_roce_pkey_index = 0
|
| 92 |
-
default_traffic_class = 0
|
| 93 |
-
device_filter = []
|
| 94 |
-
fork_safe = true
|
| 95 |
-
prefer_ibdevice = true
|
| 96 |
-
skip_inactive_ports = true
|
| 97 |
-
skip_unusable_device = true
|
| 98 |
-
subnets = []
|
| 99 |
-
|
| 100 |
-
[meta_client]
|
| 101 |
-
check_server_interval = '5s'
|
| 102 |
-
dynamic_stripe = false
|
| 103 |
-
max_concurrent_requests = 128
|
| 104 |
-
network_type = 'RDMA'
|
| 105 |
-
remove_chunks_batch_size = 32
|
| 106 |
-
remove_chunks_max_iters = 1024
|
| 107 |
-
selection_mode = 'RandomFollow'
|
| 108 |
-
|
| 109 |
-
[meta_client.background_closer]
|
| 110 |
-
prune_session_batch_count = 128
|
| 111 |
-
prune_session_batch_interval = '10s'
|
| 112 |
-
retry_first_wait = '100ms'
|
| 113 |
-
retry_max_wait = '10s'
|
| 114 |
-
task_scan = '50ms'
|
| 115 |
-
|
| 116 |
-
[meta_client.background_closer.coroutine_pool]
|
| 117 |
-
coroutines_num = 8
|
| 118 |
-
enable_work_stealing = false
|
| 119 |
-
queue_size = 128
|
| 120 |
-
|
| 121 |
-
[meta_client.retry_default]
|
| 122 |
-
max_failures_before_failover = 1
|
| 123 |
-
retry_fast = '1s'
|
| 124 |
-
retry_init_wait = '500ms'
|
| 125 |
-
retry_max_wait = '5s'
|
| 126 |
-
retry_send = 1
|
| 127 |
-
retry_total_time = '1min'
|
| 128 |
-
rpc_timeout = '5s'
|
| 129 |
-
|
| 130 |
-
[mgmtd_client]
|
| 131 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 132 |
-
auto_extend_client_session_interval = '10s'
|
| 133 |
-
auto_heartbeat_interval = '10s'
|
| 134 |
-
auto_refresh_interval = '1s'
|
| 135 |
-
enable_auto_extend_client_session = false
|
| 136 |
-
enable_auto_heartbeat = false
|
| 137 |
-
enable_auto_refresh = true
|
| 138 |
-
mgmtd_server_addresses = []
|
| 139 |
-
work_queue_size = 100
|
| 140 |
-
|
| 141 |
-
[monitor]
|
| 142 |
-
collect_period = '1s'
|
| 143 |
-
num_collectors = 1
|
| 144 |
-
reporters = []
|
| 145 |
-
|
| 146 |
-
[storage_client]
|
| 147 |
-
check_overlapping_read_buffers = true
|
| 148 |
-
check_overlapping_write_buffers = false
|
| 149 |
-
chunk_checksum_type = 'CRC32C'
|
| 150 |
-
create_net_client_for_updates = false
|
| 151 |
-
implementation_type = 'RPC'
|
| 152 |
-
max_inline_read_bytes = '0'
|
| 153 |
-
max_inline_write_bytes = '0'
|
| 154 |
-
max_read_io_bytes = '0'
|
| 155 |
-
|
| 156 |
-
[storage_client.net_client]
|
| 157 |
-
default_compression_level = 0
|
| 158 |
-
default_compression_threshold = '128KB'
|
| 159 |
-
default_log_long_running_threshold = '0ns'
|
| 160 |
-
default_report_metrics = false
|
| 161 |
-
default_send_retry_times = 1
|
| 162 |
-
default_timeout = '1s'
|
| 163 |
-
enable_rdma_control = false
|
| 164 |
-
force_use_tcp = false
|
| 165 |
-
|
| 166 |
-
[storage_client.net_client.io_worker]
|
| 167 |
-
num_event_loop = 1
|
| 168 |
-
rdma_connect_timeout = '5s'
|
| 169 |
-
read_write_rdma_in_event_thread = false
|
| 170 |
-
read_write_tcp_in_event_thread = false
|
| 171 |
-
tcp_connect_timeout = '1s'
|
| 172 |
-
wait_to_retry_send = '100ms'
|
| 173 |
-
|
| 174 |
-
[storage_client.net_client.io_worker.connect_concurrency_limiter]
|
| 175 |
-
max_concurrency = 4
|
| 176 |
-
|
| 177 |
-
[storage_client.net_client.io_worker.ibsocket]
|
| 178 |
-
buf_ack_batch = 8
|
| 179 |
-
buf_signal_batch = 8
|
| 180 |
-
buf_size = 16384
|
| 181 |
-
drain_timeout = '5s'
|
| 182 |
-
drop_connections = 0
|
| 183 |
-
event_ack_batch = 128
|
| 184 |
-
max_rd_atomic = 16
|
| 185 |
-
max_rdma_wr = 128
|
| 186 |
-
max_rdma_wr_per_post = 32
|
| 187 |
-
max_sge = 16
|
| 188 |
-
min_rnr_timer = 1
|
| 189 |
-
record_bytes_per_peer = false
|
| 190 |
-
record_latency_per_peer = false
|
| 191 |
-
retry_cnt = 7
|
| 192 |
-
rnr_retry = 0
|
| 193 |
-
send_buf_cnt = 32
|
| 194 |
-
sl = 0
|
| 195 |
-
start_psn = 0
|
| 196 |
-
timeout = 14
|
| 197 |
-
|
| 198 |
-
[storage_client.net_client.io_worker.transport_pool]
|
| 199 |
-
max_connections = 1
|
| 200 |
-
|
| 201 |
-
[storage_client.net_client.processor]
|
| 202 |
-
enable_coroutines_pool = true
|
| 203 |
-
max_coroutines_num = 256
|
| 204 |
-
max_processing_requests_num = 4096
|
| 205 |
-
response_compression_level = 1
|
| 206 |
-
response_compression_threshold = '128KB'
|
| 207 |
-
|
| 208 |
-
[storage_client.net_client.rdma_control]
|
| 209 |
-
max_concurrent_transmission = 64
|
| 210 |
-
|
| 211 |
-
[storage_client.net_client.thread_pool]
|
| 212 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 213 |
-
collect_stats = false
|
| 214 |
-
enable_work_stealing = false
|
| 215 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 216 |
-
num_bg_threads = 2
|
| 217 |
-
num_connect_threads = 2
|
| 218 |
-
num_io_threads = 2
|
| 219 |
-
num_proc_threads = 2
|
| 220 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 221 |
-
|
| 222 |
-
[storage_client.net_client_for_updates]
|
| 223 |
-
default_compression_level = 0
|
| 224 |
-
default_compression_threshold = '128KB'
|
| 225 |
-
default_log_long_running_threshold = '0ns'
|
| 226 |
-
default_report_metrics = false
|
| 227 |
-
default_send_retry_times = 1
|
| 228 |
-
default_timeout = '1s'
|
| 229 |
-
enable_rdma_control = false
|
| 230 |
-
force_use_tcp = false
|
| 231 |
-
|
| 232 |
-
[storage_client.net_client_for_updates.io_worker]
|
| 233 |
-
num_event_loop = 1
|
| 234 |
-
rdma_connect_timeout = '5s'
|
| 235 |
-
read_write_rdma_in_event_thread = false
|
| 236 |
-
read_write_tcp_in_event_thread = false
|
| 237 |
-
tcp_connect_timeout = '1s'
|
| 238 |
-
wait_to_retry_send = '100ms'
|
| 239 |
-
|
| 240 |
-
[storage_client.net_client_for_updates.io_worker.connect_concurrency_limiter]
|
| 241 |
-
max_concurrency = 4
|
| 242 |
-
|
| 243 |
-
[storage_client.net_client_for_updates.io_worker.ibsocket]
|
| 244 |
-
buf_ack_batch = 8
|
| 245 |
-
buf_signal_batch = 8
|
| 246 |
-
buf_size = 16384
|
| 247 |
-
drain_timeout = '5s'
|
| 248 |
-
drop_connections = 0
|
| 249 |
-
event_ack_batch = 128
|
| 250 |
-
max_rd_atomic = 16
|
| 251 |
-
max_rdma_wr = 128
|
| 252 |
-
max_rdma_wr_per_post = 32
|
| 253 |
-
max_sge = 16
|
| 254 |
-
min_rnr_timer = 1
|
| 255 |
-
record_bytes_per_peer = false
|
| 256 |
-
record_latency_per_peer = false
|
| 257 |
-
retry_cnt = 7
|
| 258 |
-
rnr_retry = 0
|
| 259 |
-
send_buf_cnt = 32
|
| 260 |
-
sl = 0
|
| 261 |
-
start_psn = 0
|
| 262 |
-
timeout = 14
|
| 263 |
-
|
| 264 |
-
[storage_client.net_client_for_updates.io_worker.transport_pool]
|
| 265 |
-
max_connections = 1
|
| 266 |
-
|
| 267 |
-
[storage_client.net_client_for_updates.processor]
|
| 268 |
-
enable_coroutines_pool = true
|
| 269 |
-
max_coroutines_num = 256
|
| 270 |
-
max_processing_requests_num = 4096
|
| 271 |
-
response_compression_level = 1
|
| 272 |
-
response_compression_threshold = '128KB'
|
| 273 |
-
|
| 274 |
-
[storage_client.net_client_for_updates.rdma_control]
|
| 275 |
-
max_concurrent_transmission = 64
|
| 276 |
-
|
| 277 |
-
[storage_client.net_client_for_updates.thread_pool]
|
| 278 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 279 |
-
collect_stats = false
|
| 280 |
-
enable_work_stealing = false
|
| 281 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 282 |
-
num_bg_threads = 2
|
| 283 |
-
num_connect_threads = 2
|
| 284 |
-
num_io_threads = 2
|
| 285 |
-
num_proc_threads = 2
|
| 286 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 287 |
-
|
| 288 |
-
[storage_client.retry]
|
| 289 |
-
init_wait_time = '10s'
|
| 290 |
-
max_failures_before_failover = 1
|
| 291 |
-
max_retry_time = '1min'
|
| 292 |
-
max_wait_time = '30s'
|
| 293 |
-
|
| 294 |
-
[storage_client.traffic_control.query]
|
| 295 |
-
max_batch_bytes = '4MB'
|
| 296 |
-
max_batch_size = 128
|
| 297 |
-
max_concurrent_requests = 32
|
| 298 |
-
max_concurrent_requests_per_server = 8
|
| 299 |
-
process_batches_in_parallel = true
|
| 300 |
-
random_shuffle_requests = true
|
| 301 |
-
|
| 302 |
-
[storage_client.traffic_control.read]
|
| 303 |
-
max_batch_bytes = '4MB'
|
| 304 |
-
max_batch_size = 128
|
| 305 |
-
max_concurrent_requests = 32
|
| 306 |
-
max_concurrent_requests_per_server = 8
|
| 307 |
-
process_batches_in_parallel = true
|
| 308 |
-
random_shuffle_requests = true
|
| 309 |
-
|
| 310 |
-
[storage_client.traffic_control.remove]
|
| 311 |
-
max_batch_bytes = '4MB'
|
| 312 |
-
max_batch_size = 128
|
| 313 |
-
max_concurrent_requests = 32
|
| 314 |
-
max_concurrent_requests_per_server = 8
|
| 315 |
-
process_batches_in_parallel = true
|
| 316 |
-
random_shuffle_requests = true
|
| 317 |
-
|
| 318 |
-
[storage_client.traffic_control.truncate]
|
| 319 |
-
max_batch_bytes = '4MB'
|
| 320 |
-
max_batch_size = 128
|
| 321 |
-
max_concurrent_requests = 32
|
| 322 |
-
max_concurrent_requests_per_server = 8
|
| 323 |
-
process_batches_in_parallel = true
|
| 324 |
-
random_shuffle_requests = true
|
| 325 |
-
|
| 326 |
-
[storage_client.traffic_control.write]
|
| 327 |
-
max_batch_bytes = '4MB'
|
| 328 |
-
max_batch_size = 128
|
| 329 |
-
max_concurrent_requests = 32
|
| 330 |
-
max_concurrent_requests_per_server = 8
|
| 331 |
-
process_batches_in_parallel = true
|
| 332 |
-
random_shuffle_requests = true
|
| 333 |
-
|
| 334 |
-
[user_info]
|
| 335 |
-
gid = -1
|
| 336 |
-
gids = []
|
| 337 |
-
token = ''
|
| 338 |
-
uid = -1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_client_agent.toml
DELETED
|
@@ -1,557 +0,0 @@
|
|
| 1 |
-
[[common.log.categories]]
|
| 2 |
-
categories = [ '.' ]
|
| 3 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 4 |
-
inherit = true
|
| 5 |
-
level = 'INFO'
|
| 6 |
-
propagate = 'NONE'
|
| 7 |
-
|
| 8 |
-
[[common.log.handlers]]
|
| 9 |
-
async = true
|
| 10 |
-
file_path = ''
|
| 11 |
-
max_file_size = '10MB'
|
| 12 |
-
max_files = 100
|
| 13 |
-
name = 'normal'
|
| 14 |
-
rotate = true
|
| 15 |
-
rotate_on_open = false
|
| 16 |
-
start_level = 'NONE'
|
| 17 |
-
stream_type = 'STDERR'
|
| 18 |
-
writer_type = 'FILE'
|
| 19 |
-
|
| 20 |
-
[[common.log.handlers]]
|
| 21 |
-
async = false
|
| 22 |
-
file_path = ''
|
| 23 |
-
max_file_size = '10MB'
|
| 24 |
-
max_files = 100
|
| 25 |
-
name = 'err'
|
| 26 |
-
rotate = true
|
| 27 |
-
rotate_on_open = false
|
| 28 |
-
start_level = 'ERR'
|
| 29 |
-
stream_type = 'STDERR'
|
| 30 |
-
writer_type = 'FILE'
|
| 31 |
-
|
| 32 |
-
[[common.log.handlers]]
|
| 33 |
-
async = false
|
| 34 |
-
file_path = ''
|
| 35 |
-
max_file_size = '10MB'
|
| 36 |
-
max_files = 100
|
| 37 |
-
name = 'fatal'
|
| 38 |
-
rotate = true
|
| 39 |
-
rotate_on_open = false
|
| 40 |
-
start_level = 'FATAL'
|
| 41 |
-
stream_type = 'STDERR'
|
| 42 |
-
writer_type = 'STREAM'
|
| 43 |
-
|
| 44 |
-
[common.memory]
|
| 45 |
-
prof_active = false
|
| 46 |
-
prof_prefix = ''
|
| 47 |
-
|
| 48 |
-
[common.monitor]
|
| 49 |
-
reporters = []
|
| 50 |
-
|
| 51 |
-
[server.agent]
|
| 52 |
-
allow_read_holes = true
|
| 53 |
-
auth_timeout = '5min'
|
| 54 |
-
background_ibreg = true
|
| 55 |
-
list_entry_limit = 100
|
| 56 |
-
max_concurrent_iovallocs = 0
|
| 57 |
-
mock_storage_dir = ''
|
| 58 |
-
mount_name = ''
|
| 59 |
-
read_only_mode = false
|
| 60 |
-
truncate_if_write_after_eof = false
|
| 61 |
-
|
| 62 |
-
[server.agent.inode_cache]
|
| 63 |
-
capacity = 4194304
|
| 64 |
-
entry_lifetime = '5min'
|
| 65 |
-
|
| 66 |
-
[server.agent.limit_per_process]
|
| 67 |
-
fd = 1048576
|
| 68 |
-
shm = 1048576
|
| 69 |
-
|
| 70 |
-
[server.agent.periodic_sync]
|
| 71 |
-
interval = '10min'
|
| 72 |
-
on = false
|
| 73 |
-
|
| 74 |
-
[server.agent.proc_watch]
|
| 75 |
-
interval = '1min'
|
| 76 |
-
on = true
|
| 77 |
-
|
| 78 |
-
[server.agent.storage_io.read]
|
| 79 |
-
enableChecksum = false
|
| 80 |
-
|
| 81 |
-
[server.agent.storage_io.read.debug]
|
| 82 |
-
bypass_disk_io = false
|
| 83 |
-
bypass_rdma_xmit = false
|
| 84 |
-
inject_random_client_error = false
|
| 85 |
-
inject_random_server_error = false
|
| 86 |
-
max_num_of_injection_points = 100
|
| 87 |
-
|
| 88 |
-
[server.agent.storage_io.read.retry]
|
| 89 |
-
init_wait_time = '0ns'
|
| 90 |
-
max_retry_time = '0ns'
|
| 91 |
-
max_wait_time = '0ns'
|
| 92 |
-
retry_permanent_error = false
|
| 93 |
-
|
| 94 |
-
[server.agent.storage_io.read.targetSelection]
|
| 95 |
-
mode = 'Default'
|
| 96 |
-
targetIndex = 0
|
| 97 |
-
trafficZone = ''
|
| 98 |
-
|
| 99 |
-
[server.agent.storage_io.write]
|
| 100 |
-
enableChecksum = true
|
| 101 |
-
|
| 102 |
-
[server.agent.storage_io.write.debug]
|
| 103 |
-
bypass_disk_io = false
|
| 104 |
-
bypass_rdma_xmit = false
|
| 105 |
-
inject_random_client_error = false
|
| 106 |
-
inject_random_server_error = false
|
| 107 |
-
max_num_of_injection_points = 100
|
| 108 |
-
|
| 109 |
-
[server.agent.storage_io.write.retry]
|
| 110 |
-
init_wait_time = '0ns'
|
| 111 |
-
max_retry_time = '0ns'
|
| 112 |
-
max_wait_time = '0ns'
|
| 113 |
-
retry_permanent_error = false
|
| 114 |
-
|
| 115 |
-
[server.agent.storage_io.write.targetSelection]
|
| 116 |
-
mode = 'Default'
|
| 117 |
-
targetIndex = 0
|
| 118 |
-
trafficZone = ''
|
| 119 |
-
|
| 120 |
-
[server.agent.storage_ops]
|
| 121 |
-
enable_read = true
|
| 122 |
-
enable_write = true
|
| 123 |
-
|
| 124 |
-
[server.background_client]
|
| 125 |
-
default_compression_level = 0
|
| 126 |
-
default_compression_threshold = '128KB'
|
| 127 |
-
default_log_long_running_threshold = '0ns'
|
| 128 |
-
default_send_retry_times = 1
|
| 129 |
-
default_timeout = '1s'
|
| 130 |
-
enable_rdma_control = false
|
| 131 |
-
force_use_tcp = false
|
| 132 |
-
|
| 133 |
-
[server.background_client.io_worker]
|
| 134 |
-
num_event_loop = 1
|
| 135 |
-
rdma_connect_timeout = '5s'
|
| 136 |
-
read_write_rdma_in_event_thread = false
|
| 137 |
-
read_write_tcp_in_event_thread = false
|
| 138 |
-
tcp_connect_timeout = '1s'
|
| 139 |
-
wait_to_retry_send = '100ms'
|
| 140 |
-
|
| 141 |
-
[server.background_client.io_worker.connect_concurrency_limiter]
|
| 142 |
-
max_concurrency = 4
|
| 143 |
-
|
| 144 |
-
[server.background_client.io_worker.ibsocket]
|
| 145 |
-
buf_ack_batch = 8
|
| 146 |
-
buf_signal_batch = 8
|
| 147 |
-
buf_size = 16384
|
| 148 |
-
drain_timeout = '5s'
|
| 149 |
-
drop_connections = 0
|
| 150 |
-
event_ack_batch = 128
|
| 151 |
-
max_rd_atomic = 16
|
| 152 |
-
max_rdma_wr = 128
|
| 153 |
-
max_rdma_wr_per_post = 32
|
| 154 |
-
max_sge = 16
|
| 155 |
-
min_rnr_timer = 1
|
| 156 |
-
record_bytes_per_peer = false
|
| 157 |
-
record_latency_per_peer = false
|
| 158 |
-
retry_cnt = 7
|
| 159 |
-
rnr_retry = 0
|
| 160 |
-
send_buf_cnt = 32
|
| 161 |
-
sl = 0
|
| 162 |
-
start_psn = 0
|
| 163 |
-
timeout = 14
|
| 164 |
-
|
| 165 |
-
[server.background_client.io_worker.transport_pool]
|
| 166 |
-
max_connections = 1
|
| 167 |
-
|
| 168 |
-
[server.background_client.processor]
|
| 169 |
-
enable_coroutines_pool = true
|
| 170 |
-
max_coroutines_num = 256
|
| 171 |
-
max_processing_requests_num = 4096
|
| 172 |
-
response_compression_level = 1
|
| 173 |
-
response_compression_threshold = '128KB'
|
| 174 |
-
|
| 175 |
-
[server.background_client.rdma_control]
|
| 176 |
-
max_concurrent_transmission = 64
|
| 177 |
-
|
| 178 |
-
[server.background_client.thread_pool]
|
| 179 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 180 |
-
collect_stats = false
|
| 181 |
-
enable_work_stealing = false
|
| 182 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 183 |
-
num_bg_threads = 2
|
| 184 |
-
num_connect_threads = 2
|
| 185 |
-
num_io_threads = 2
|
| 186 |
-
num_proc_threads = 2
|
| 187 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 188 |
-
|
| 189 |
-
[server.base.independent_thread_pool]
|
| 190 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 191 |
-
collect_stats = false
|
| 192 |
-
enable_work_stealing = false
|
| 193 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 194 |
-
num_bg_threads = 2
|
| 195 |
-
num_connect_threads = 2
|
| 196 |
-
num_io_threads = 2
|
| 197 |
-
num_proc_threads = 2
|
| 198 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 199 |
-
|
| 200 |
-
[server.base.thread_pool]
|
| 201 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 202 |
-
collect_stats = false
|
| 203 |
-
enable_work_stealing = false
|
| 204 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 205 |
-
num_bg_threads = 2
|
| 206 |
-
num_connect_threads = 2
|
| 207 |
-
num_io_threads = 64
|
| 208 |
-
num_proc_threads = 64
|
| 209 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 210 |
-
|
| 211 |
-
[[server.base.groups]]
|
| 212 |
-
check_connections_interval = '1min'
|
| 213 |
-
connection_expiration_time = '1day'
|
| 214 |
-
network_type = 'LOCAL'
|
| 215 |
-
services = [ 'ClientAgentSerde' ]
|
| 216 |
-
use_independent_thread_pool = false
|
| 217 |
-
|
| 218 |
-
[server.base.groups.io_worker]
|
| 219 |
-
num_event_loop = 1
|
| 220 |
-
rdma_connect_timeout = '5s'
|
| 221 |
-
read_write_rdma_in_event_thread = false
|
| 222 |
-
read_write_tcp_in_event_thread = false
|
| 223 |
-
tcp_connect_timeout = '1s'
|
| 224 |
-
wait_to_retry_send = '100ms'
|
| 225 |
-
|
| 226 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 227 |
-
max_concurrency = 4
|
| 228 |
-
|
| 229 |
-
[server.base.groups.io_worker.ibsocket]
|
| 230 |
-
buf_ack_batch = 8
|
| 231 |
-
buf_signal_batch = 8
|
| 232 |
-
buf_size = 16384
|
| 233 |
-
drain_timeout = '5s'
|
| 234 |
-
drop_connections = 0
|
| 235 |
-
event_ack_batch = 128
|
| 236 |
-
max_rd_atomic = 16
|
| 237 |
-
max_rdma_wr = 128
|
| 238 |
-
max_rdma_wr_per_post = 32
|
| 239 |
-
max_sge = 16
|
| 240 |
-
min_rnr_timer = 1
|
| 241 |
-
record_bytes_per_peer = false
|
| 242 |
-
record_latency_per_peer = false
|
| 243 |
-
retry_cnt = 7
|
| 244 |
-
rnr_retry = 0
|
| 245 |
-
send_buf_cnt = 32
|
| 246 |
-
sl = 0
|
| 247 |
-
start_psn = 0
|
| 248 |
-
timeout = 14
|
| 249 |
-
|
| 250 |
-
[server.base.groups.io_worker.transport_pool]
|
| 251 |
-
max_connections = 1
|
| 252 |
-
|
| 253 |
-
[server.base.groups.listener]
|
| 254 |
-
filter_list = []
|
| 255 |
-
listen_port = 0
|
| 256 |
-
listen_queue_depth = 4096
|
| 257 |
-
rdma_accept_timeout = '15s'
|
| 258 |
-
rdma_listen_ethernet = true
|
| 259 |
-
reuse_port = false
|
| 260 |
-
|
| 261 |
-
[server.base.groups.processor]
|
| 262 |
-
enable_coroutines_pool = true
|
| 263 |
-
max_coroutines_num = 256
|
| 264 |
-
max_processing_requests_num = 4096
|
| 265 |
-
response_compression_level = 1
|
| 266 |
-
response_compression_threshold = '128KB'
|
| 267 |
-
|
| 268 |
-
[[server.base.groups]]
|
| 269 |
-
check_connections_interval = '1min'
|
| 270 |
-
connection_expiration_time = '1day'
|
| 271 |
-
network_type = 'TCP'
|
| 272 |
-
services = [ 'Core' ]
|
| 273 |
-
use_independent_thread_pool = true
|
| 274 |
-
|
| 275 |
-
[server.base.groups.io_worker]
|
| 276 |
-
num_event_loop = 1
|
| 277 |
-
rdma_connect_timeout = '5s'
|
| 278 |
-
read_write_rdma_in_event_thread = false
|
| 279 |
-
read_write_tcp_in_event_thread = false
|
| 280 |
-
tcp_connect_timeout = '1s'
|
| 281 |
-
wait_to_retry_send = '100ms'
|
| 282 |
-
|
| 283 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 284 |
-
max_concurrency = 4
|
| 285 |
-
|
| 286 |
-
[server.base.groups.io_worker.ibsocket]
|
| 287 |
-
buf_ack_batch = 8
|
| 288 |
-
buf_signal_batch = 8
|
| 289 |
-
buf_size = 16384
|
| 290 |
-
drain_timeout = '5s'
|
| 291 |
-
drop_connections = 0
|
| 292 |
-
event_ack_batch = 128
|
| 293 |
-
max_rd_atomic = 16
|
| 294 |
-
max_rdma_wr = 128
|
| 295 |
-
max_rdma_wr_per_post = 32
|
| 296 |
-
max_sge = 16
|
| 297 |
-
min_rnr_timer = 1
|
| 298 |
-
record_bytes_per_peer = false
|
| 299 |
-
record_latency_per_peer = false
|
| 300 |
-
retry_cnt = 7
|
| 301 |
-
rnr_retry = 0
|
| 302 |
-
send_buf_cnt = 32
|
| 303 |
-
sl = 0
|
| 304 |
-
start_psn = 0
|
| 305 |
-
timeout = 14
|
| 306 |
-
|
| 307 |
-
[server.base.groups.io_worker.transport_pool]
|
| 308 |
-
max_connections = 1
|
| 309 |
-
|
| 310 |
-
[server.base.groups.listener]
|
| 311 |
-
filter_list = []
|
| 312 |
-
listen_port = 9000
|
| 313 |
-
listen_queue_depth = 4096
|
| 314 |
-
rdma_accept_timeout = '15s'
|
| 315 |
-
rdma_listen_ethernet = true
|
| 316 |
-
reuse_port = false
|
| 317 |
-
|
| 318 |
-
[server.base.groups.processor]
|
| 319 |
-
enable_coroutines_pool = true
|
| 320 |
-
max_coroutines_num = 256
|
| 321 |
-
max_processing_requests_num = 4096
|
| 322 |
-
response_compression_level = 1
|
| 323 |
-
response_compression_threshold = '128KB'
|
| 324 |
-
|
| 325 |
-
[server.meta]
|
| 326 |
-
check_server_interval = '5s'
|
| 327 |
-
dynamic_stripe = false
|
| 328 |
-
max_concurrent_requests = 128
|
| 329 |
-
network_type = 'RDMA'
|
| 330 |
-
remove_chunks_batch_size = 32
|
| 331 |
-
remove_chunks_max_iters = 1024
|
| 332 |
-
selection_mode = 'RandomFollow'
|
| 333 |
-
|
| 334 |
-
[server.meta.background_closer]
|
| 335 |
-
prune_session_batch_count = 128
|
| 336 |
-
prune_session_batch_interval = '10s'
|
| 337 |
-
retry_first_wait = '100ms'
|
| 338 |
-
retry_max_wait = '10s'
|
| 339 |
-
task_scan = '50ms'
|
| 340 |
-
|
| 341 |
-
[server.meta.background_closer.coroutine_pool]
|
| 342 |
-
coroutines_num = 8
|
| 343 |
-
enable_work_stealing = false
|
| 344 |
-
queue_size = 128
|
| 345 |
-
|
| 346 |
-
[server.meta.retry_default]
|
| 347 |
-
max_failures_before_failover = 1
|
| 348 |
-
retry_init_wait = '500ms'
|
| 349 |
-
retry_max_wait = '5s'
|
| 350 |
-
retry_send = 1
|
| 351 |
-
retry_total_time = '1min'
|
| 352 |
-
rpc_timeout = '2s'
|
| 353 |
-
|
| 354 |
-
[server.meta.retry_truncate]
|
| 355 |
-
max_failures_before_failover = 1
|
| 356 |
-
retry_init_wait = '2s'
|
| 357 |
-
retry_max_wait = '5s'
|
| 358 |
-
retry_send = 1
|
| 359 |
-
retry_total_time = '1min'
|
| 360 |
-
rpc_timeout = '15s'
|
| 361 |
-
|
| 362 |
-
[server.mgmtd]
|
| 363 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 364 |
-
auto_extend_client_session_interval = '10s'
|
| 365 |
-
auto_heartbeat_interval = '10s'
|
| 366 |
-
auto_refresh_interval = '10s'
|
| 367 |
-
enable_auto_extend_client_session = true
|
| 368 |
-
enable_auto_heartbeat = false
|
| 369 |
-
enable_auto_refresh = true
|
| 370 |
-
mgmtd_server_addresses = []
|
| 371 |
-
work_queue_size = 100
|
| 372 |
-
|
| 373 |
-
[server.storage]
|
| 374 |
-
check_overlapping_read_buffers = true
|
| 375 |
-
check_overlapping_write_buffers = false
|
| 376 |
-
chunk_checksum_type = 'CRC32C'
|
| 377 |
-
create_net_client_for_updates = false
|
| 378 |
-
implementation_type = 'RPC'
|
| 379 |
-
max_inline_read_bytes = '0'
|
| 380 |
-
max_inline_write_bytes = '0'
|
| 381 |
-
max_read_io_bytes = '0'
|
| 382 |
-
|
| 383 |
-
[server.storage.net_client]
|
| 384 |
-
default_compression_level = 0
|
| 385 |
-
default_compression_threshold = '128KB'
|
| 386 |
-
default_log_long_running_threshold = '0ns'
|
| 387 |
-
default_send_retry_times = 1
|
| 388 |
-
default_timeout = '1s'
|
| 389 |
-
enable_rdma_control = false
|
| 390 |
-
force_use_tcp = false
|
| 391 |
-
|
| 392 |
-
[server.storage.net_client.io_worker]
|
| 393 |
-
num_event_loop = 1
|
| 394 |
-
rdma_connect_timeout = '5s'
|
| 395 |
-
read_write_rdma_in_event_thread = false
|
| 396 |
-
read_write_tcp_in_event_thread = false
|
| 397 |
-
tcp_connect_timeout = '1s'
|
| 398 |
-
wait_to_retry_send = '100ms'
|
| 399 |
-
|
| 400 |
-
[server.storage.net_client.io_worker.connect_concurrency_limiter]
|
| 401 |
-
max_concurrency = 4
|
| 402 |
-
|
| 403 |
-
[server.storage.net_client.io_worker.ibsocket]
|
| 404 |
-
buf_ack_batch = 8
|
| 405 |
-
buf_signal_batch = 8
|
| 406 |
-
buf_size = 16384
|
| 407 |
-
drain_timeout = '5s'
|
| 408 |
-
drop_connections = 0
|
| 409 |
-
event_ack_batch = 128
|
| 410 |
-
max_rd_atomic = 16
|
| 411 |
-
max_rdma_wr = 128
|
| 412 |
-
max_rdma_wr_per_post = 32
|
| 413 |
-
max_sge = 16
|
| 414 |
-
min_rnr_timer = 1
|
| 415 |
-
record_bytes_per_peer = false
|
| 416 |
-
record_latency_per_peer = false
|
| 417 |
-
retry_cnt = 7
|
| 418 |
-
rnr_retry = 0
|
| 419 |
-
send_buf_cnt = 32
|
| 420 |
-
sl = 0
|
| 421 |
-
start_psn = 0
|
| 422 |
-
timeout = 14
|
| 423 |
-
|
| 424 |
-
[server.storage.net_client.io_worker.transport_pool]
|
| 425 |
-
max_connections = 1
|
| 426 |
-
|
| 427 |
-
[server.storage.net_client.processor]
|
| 428 |
-
enable_coroutines_pool = true
|
| 429 |
-
max_coroutines_num = 256
|
| 430 |
-
max_processing_requests_num = 4096
|
| 431 |
-
response_compression_level = 1
|
| 432 |
-
response_compression_threshold = '128KB'
|
| 433 |
-
|
| 434 |
-
[server.storage.net_client.rdma_control]
|
| 435 |
-
max_concurrent_transmission = 64
|
| 436 |
-
|
| 437 |
-
[server.storage.net_client.thread_pool]
|
| 438 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 439 |
-
collect_stats = false
|
| 440 |
-
enable_work_stealing = false
|
| 441 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 442 |
-
num_bg_threads = 2
|
| 443 |
-
num_connect_threads = 2
|
| 444 |
-
num_io_threads = 2
|
| 445 |
-
num_proc_threads = 2
|
| 446 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 447 |
-
|
| 448 |
-
[server.storage.net_client_for_updates]
|
| 449 |
-
default_compression_level = 0
|
| 450 |
-
default_compression_threshold = '128KB'
|
| 451 |
-
default_log_long_running_threshold = '0ns'
|
| 452 |
-
default_send_retry_times = 1
|
| 453 |
-
default_timeout = '1s'
|
| 454 |
-
enable_rdma_control = false
|
| 455 |
-
force_use_tcp = false
|
| 456 |
-
|
| 457 |
-
[server.storage.net_client_for_updates.io_worker]
|
| 458 |
-
num_event_loop = 1
|
| 459 |
-
rdma_connect_timeout = '5s'
|
| 460 |
-
read_write_rdma_in_event_thread = false
|
| 461 |
-
read_write_tcp_in_event_thread = false
|
| 462 |
-
tcp_connect_timeout = '1s'
|
| 463 |
-
wait_to_retry_send = '100ms'
|
| 464 |
-
|
| 465 |
-
[server.storage.net_client_for_updates.io_worker.connect_concurrency_limiter]
|
| 466 |
-
max_concurrency = 4
|
| 467 |
-
|
| 468 |
-
[server.storage.net_client_for_updates.io_worker.ibsocket]
|
| 469 |
-
buf_ack_batch = 8
|
| 470 |
-
buf_signal_batch = 8
|
| 471 |
-
buf_size = 16384
|
| 472 |
-
drain_timeout = '5s'
|
| 473 |
-
drop_connections = 0
|
| 474 |
-
event_ack_batch = 128
|
| 475 |
-
max_rd_atomic = 16
|
| 476 |
-
max_rdma_wr = 128
|
| 477 |
-
max_rdma_wr_per_post = 32
|
| 478 |
-
max_sge = 16
|
| 479 |
-
min_rnr_timer = 1
|
| 480 |
-
record_bytes_per_peer = false
|
| 481 |
-
record_latency_per_peer = false
|
| 482 |
-
retry_cnt = 7
|
| 483 |
-
rnr_retry = 0
|
| 484 |
-
send_buf_cnt = 32
|
| 485 |
-
sl = 0
|
| 486 |
-
start_psn = 0
|
| 487 |
-
timeout = 14
|
| 488 |
-
|
| 489 |
-
[server.storage.net_client_for_updates.io_worker.transport_pool]
|
| 490 |
-
max_connections = 1
|
| 491 |
-
|
| 492 |
-
[server.storage.net_client_for_updates.processor]
|
| 493 |
-
enable_coroutines_pool = true
|
| 494 |
-
max_coroutines_num = 256
|
| 495 |
-
max_processing_requests_num = 4096
|
| 496 |
-
response_compression_level = 1
|
| 497 |
-
response_compression_threshold = '128KB'
|
| 498 |
-
|
| 499 |
-
[server.storage.net_client_for_updates.rdma_control]
|
| 500 |
-
max_concurrent_transmission = 64
|
| 501 |
-
|
| 502 |
-
[server.storage.net_client_for_updates.thread_pool]
|
| 503 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 504 |
-
collect_stats = false
|
| 505 |
-
enable_work_stealing = false
|
| 506 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 507 |
-
num_bg_threads = 2
|
| 508 |
-
num_connect_threads = 2
|
| 509 |
-
num_io_threads = 2
|
| 510 |
-
num_proc_threads = 2
|
| 511 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 512 |
-
|
| 513 |
-
[server.storage.retry]
|
| 514 |
-
init_wait_time = '10s'
|
| 515 |
-
max_failures_before_failover = 1
|
| 516 |
-
max_retry_time = '1min'
|
| 517 |
-
max_wait_time = '30s'
|
| 518 |
-
|
| 519 |
-
[server.storage.traffic_control.query]
|
| 520 |
-
max_batch_bytes = '4MB'
|
| 521 |
-
max_batch_size = 128
|
| 522 |
-
max_concurrent_requests = 32
|
| 523 |
-
max_concurrent_requests_per_server = 8
|
| 524 |
-
process_batches_in_parallel = true
|
| 525 |
-
random_shuffle_requests = true
|
| 526 |
-
|
| 527 |
-
[server.storage.traffic_control.read]
|
| 528 |
-
max_batch_bytes = '4MB'
|
| 529 |
-
max_batch_size = 128
|
| 530 |
-
max_concurrent_requests = 32
|
| 531 |
-
max_concurrent_requests_per_server = 8
|
| 532 |
-
process_batches_in_parallel = true
|
| 533 |
-
random_shuffle_requests = true
|
| 534 |
-
|
| 535 |
-
[server.storage.traffic_control.remove]
|
| 536 |
-
max_batch_bytes = '4MB'
|
| 537 |
-
max_batch_size = 128
|
| 538 |
-
max_concurrent_requests = 32
|
| 539 |
-
max_concurrent_requests_per_server = 8
|
| 540 |
-
process_batches_in_parallel = true
|
| 541 |
-
random_shuffle_requests = true
|
| 542 |
-
|
| 543 |
-
[server.storage.traffic_control.truncate]
|
| 544 |
-
max_batch_bytes = '4MB'
|
| 545 |
-
max_batch_size = 128
|
| 546 |
-
max_concurrent_requests = 32
|
| 547 |
-
max_concurrent_requests_per_server = 8
|
| 548 |
-
process_batches_in_parallel = true
|
| 549 |
-
random_shuffle_requests = true
|
| 550 |
-
|
| 551 |
-
[server.storage.traffic_control.write]
|
| 552 |
-
max_batch_bytes = '4MB'
|
| 553 |
-
max_batch_size = 128
|
| 554 |
-
max_concurrent_requests = 32
|
| 555 |
-
max_concurrent_requests_per_server = 8
|
| 556 |
-
process_batches_in_parallel = true
|
| 557 |
-
random_shuffle_requests = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_client_agent_app.toml
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_client_agent_launcher.toml
DELETED
|
@@ -1,88 +0,0 @@
|
|
| 1 |
-
allow_dev_version = true
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
|
| 4 |
-
[client]
|
| 5 |
-
default_compression_level = 0
|
| 6 |
-
default_compression_threshold = '128KB'
|
| 7 |
-
default_log_long_running_threshold = '0ns'
|
| 8 |
-
default_send_retry_times = 1
|
| 9 |
-
default_timeout = '1s'
|
| 10 |
-
enable_rdma_control = false
|
| 11 |
-
force_use_tcp = false
|
| 12 |
-
|
| 13 |
-
[client.io_worker]
|
| 14 |
-
num_event_loop = 1
|
| 15 |
-
rdma_connect_timeout = '5s'
|
| 16 |
-
read_write_rdma_in_event_thread = false
|
| 17 |
-
read_write_tcp_in_event_thread = false
|
| 18 |
-
tcp_connect_timeout = '1s'
|
| 19 |
-
wait_to_retry_send = '100ms'
|
| 20 |
-
|
| 21 |
-
[client.io_worker.connect_concurrency_limiter]
|
| 22 |
-
max_concurrency = 4
|
| 23 |
-
|
| 24 |
-
[client.io_worker.ibsocket]
|
| 25 |
-
buf_ack_batch = 8
|
| 26 |
-
buf_signal_batch = 8
|
| 27 |
-
buf_size = 16384
|
| 28 |
-
drain_timeout = '5s'
|
| 29 |
-
drop_connections = 0
|
| 30 |
-
event_ack_batch = 128
|
| 31 |
-
max_rd_atomic = 16
|
| 32 |
-
max_rdma_wr = 128
|
| 33 |
-
max_rdma_wr_per_post = 32
|
| 34 |
-
max_sge = 16
|
| 35 |
-
min_rnr_timer = 1
|
| 36 |
-
record_bytes_per_peer = false
|
| 37 |
-
record_latency_per_peer = false
|
| 38 |
-
retry_cnt = 7
|
| 39 |
-
rnr_retry = 0
|
| 40 |
-
send_buf_cnt = 32
|
| 41 |
-
sl = 0
|
| 42 |
-
start_psn = 0
|
| 43 |
-
timeout = 14
|
| 44 |
-
|
| 45 |
-
[client.io_worker.transport_pool]
|
| 46 |
-
max_connections = 1
|
| 47 |
-
|
| 48 |
-
[client.processor]
|
| 49 |
-
enable_coroutines_pool = true
|
| 50 |
-
max_coroutines_num = 256
|
| 51 |
-
max_processing_requests_num = 4096
|
| 52 |
-
response_compression_level = 1
|
| 53 |
-
response_compression_threshold = '128KB'
|
| 54 |
-
|
| 55 |
-
[client.rdma_control]
|
| 56 |
-
max_concurrent_transmission = 64
|
| 57 |
-
|
| 58 |
-
[client.thread_pool]
|
| 59 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 60 |
-
collect_stats = false
|
| 61 |
-
enable_work_stealing = false
|
| 62 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 63 |
-
num_bg_threads = 2
|
| 64 |
-
num_connect_threads = 2
|
| 65 |
-
num_io_threads = 2
|
| 66 |
-
num_proc_threads = 2
|
| 67 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 68 |
-
|
| 69 |
-
[ib_devices]
|
| 70 |
-
allow_unknown_zone = true
|
| 71 |
-
default_network_zone = 'UNKNOWN'
|
| 72 |
-
default_pkey_index = 0
|
| 73 |
-
default_traffic_class = 0
|
| 74 |
-
device_filter = []
|
| 75 |
-
fork_safe = true
|
| 76 |
-
skip_inactive_ports = true
|
| 77 |
-
subnets = []
|
| 78 |
-
|
| 79 |
-
[mgmtd_client]
|
| 80 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 81 |
-
auto_extend_client_session_interval = '10s'
|
| 82 |
-
auto_heartbeat_interval = '10s'
|
| 83 |
-
auto_refresh_interval = '10s'
|
| 84 |
-
enable_auto_extend_client_session = true
|
| 85 |
-
enable_auto_heartbeat = false
|
| 86 |
-
enable_auto_refresh = true
|
| 87 |
-
mgmtd_server_addresses = []
|
| 88 |
-
work_queue_size = 100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_fuse_main.toml
DELETED
|
@@ -1,450 +0,0 @@
|
|
| 1 |
-
attr_timeout = 30.0
|
| 2 |
-
batch_io_coros = 128
|
| 3 |
-
check_rmrf = true
|
| 4 |
-
chunk_size_limit = '0'
|
| 5 |
-
dryrun_bench_mode = false
|
| 6 |
-
enable_interrupt = false
|
| 7 |
-
enable_priority = false
|
| 8 |
-
enable_read_cache = true
|
| 9 |
-
enable_writeback_cache = false
|
| 10 |
-
entry_timeout = 30.0
|
| 11 |
-
fdatasync_update_length = false
|
| 12 |
-
flush_on_stat = true
|
| 13 |
-
fsync_length_hint = false
|
| 14 |
-
io_job_deq_timeout = '1ms'
|
| 15 |
-
io_jobq_size = 1024
|
| 16 |
-
iov_limit = '1MB'
|
| 17 |
-
max_background = 32
|
| 18 |
-
max_idle_threads = -1
|
| 19 |
-
max_jobs_per_ioring = 32
|
| 20 |
-
max_readahead = '16MB'
|
| 21 |
-
max_threads = 256
|
| 22 |
-
max_uid = '1M'
|
| 23 |
-
memset_before_read = false
|
| 24 |
-
negative_timeout = 5.0
|
| 25 |
-
notify_inval_threads = 32
|
| 26 |
-
rdma_buf_pool_size = 1024
|
| 27 |
-
readonly = false
|
| 28 |
-
submit_wait_jitter = '1ms'
|
| 29 |
-
symlink_timeout = 5.0
|
| 30 |
-
sync_on_stat = true
|
| 31 |
-
time_granularity = '1s'
|
| 32 |
-
|
| 33 |
-
[client]
|
| 34 |
-
default_compression_level = 0
|
| 35 |
-
default_compression_threshold = '128KB'
|
| 36 |
-
default_log_long_running_threshold = '0ns'
|
| 37 |
-
default_report_metrics = false
|
| 38 |
-
default_send_retry_times = 1
|
| 39 |
-
default_timeout = '1s'
|
| 40 |
-
enable_rdma_control = false
|
| 41 |
-
force_use_tcp = false
|
| 42 |
-
|
| 43 |
-
[client.io_worker]
|
| 44 |
-
num_event_loop = 1
|
| 45 |
-
rdma_connect_timeout = '5s'
|
| 46 |
-
read_write_rdma_in_event_thread = false
|
| 47 |
-
read_write_tcp_in_event_thread = false
|
| 48 |
-
tcp_connect_timeout = '1s'
|
| 49 |
-
wait_to_retry_send = '100ms'
|
| 50 |
-
|
| 51 |
-
[client.io_worker.connect_concurrency_limiter]
|
| 52 |
-
max_concurrency = 4
|
| 53 |
-
|
| 54 |
-
[client.io_worker.ibsocket]
|
| 55 |
-
buf_ack_batch = 8
|
| 56 |
-
buf_signal_batch = 8
|
| 57 |
-
buf_size = 16384
|
| 58 |
-
drain_timeout = '5s'
|
| 59 |
-
drop_connections = 0
|
| 60 |
-
event_ack_batch = 128
|
| 61 |
-
max_rd_atomic = 16
|
| 62 |
-
max_rdma_wr = 128
|
| 63 |
-
max_rdma_wr_per_post = 32
|
| 64 |
-
max_sge = 16
|
| 65 |
-
min_rnr_timer = 1
|
| 66 |
-
record_bytes_per_peer = false
|
| 67 |
-
record_latency_per_peer = false
|
| 68 |
-
retry_cnt = 7
|
| 69 |
-
rnr_retry = 0
|
| 70 |
-
send_buf_cnt = 32
|
| 71 |
-
sl = 0
|
| 72 |
-
start_psn = 0
|
| 73 |
-
timeout = 14
|
| 74 |
-
|
| 75 |
-
[client.io_worker.transport_pool]
|
| 76 |
-
max_connections = 1
|
| 77 |
-
|
| 78 |
-
[client.processor]
|
| 79 |
-
enable_coroutines_pool = true
|
| 80 |
-
max_coroutines_num = 256
|
| 81 |
-
max_processing_requests_num = 4096
|
| 82 |
-
response_compression_level = 1
|
| 83 |
-
response_compression_threshold = '128KB'
|
| 84 |
-
|
| 85 |
-
[client.rdma_control]
|
| 86 |
-
max_concurrent_transmission = 64
|
| 87 |
-
|
| 88 |
-
[client.thread_pool]
|
| 89 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 90 |
-
collect_stats = false
|
| 91 |
-
enable_work_stealing = false
|
| 92 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 93 |
-
num_bg_threads = 2
|
| 94 |
-
num_connect_threads = 2
|
| 95 |
-
num_io_threads = 2
|
| 96 |
-
num_proc_threads = 2
|
| 97 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 98 |
-
|
| 99 |
-
[[common.log.categories]]
|
| 100 |
-
categories = [ '.' ]
|
| 101 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 102 |
-
inherit = true
|
| 103 |
-
level = 'INFO'
|
| 104 |
-
propagate = 'NONE'
|
| 105 |
-
|
| 106 |
-
[[common.log.handlers]]
|
| 107 |
-
async = true
|
| 108 |
-
file_path = '/var/log/3fs/hf3fs_fuse_main.log'
|
| 109 |
-
max_file_size = '100MB'
|
| 110 |
-
max_files = 10
|
| 111 |
-
name = 'normal'
|
| 112 |
-
rotate = true
|
| 113 |
-
rotate_on_open = false
|
| 114 |
-
start_level = 'NONE'
|
| 115 |
-
stream_type = 'STDERR'
|
| 116 |
-
writer_type = 'FILE'
|
| 117 |
-
|
| 118 |
-
[[common.log.handlers]]
|
| 119 |
-
async = false
|
| 120 |
-
file_path = '/var/log/3fs/hf3fs_fuse_main-err.log'
|
| 121 |
-
max_file_size = '100MB'
|
| 122 |
-
max_files = 10
|
| 123 |
-
name = 'err'
|
| 124 |
-
rotate = true
|
| 125 |
-
rotate_on_open = false
|
| 126 |
-
start_level = 'ERR'
|
| 127 |
-
stream_type = 'STDERR'
|
| 128 |
-
writer_type = 'FILE'
|
| 129 |
-
|
| 130 |
-
[[common.log.handlers]]
|
| 131 |
-
async = false
|
| 132 |
-
file_path = '/var/log/3fs/hf3fs_fuse_main-fatal.log'
|
| 133 |
-
max_file_size = '100MB'
|
| 134 |
-
max_files = 10
|
| 135 |
-
name = 'fatal'
|
| 136 |
-
rotate = true
|
| 137 |
-
rotate_on_open = false
|
| 138 |
-
start_level = 'FATAL'
|
| 139 |
-
stream_type = 'STDERR'
|
| 140 |
-
writer_type = 'STREAM'
|
| 141 |
-
|
| 142 |
-
[common.memory]
|
| 143 |
-
prof_active = false
|
| 144 |
-
prof_prefix = ''
|
| 145 |
-
|
| 146 |
-
[common.monitor]
|
| 147 |
-
collect_period = '1s'
|
| 148 |
-
num_collectors = 1
|
| 149 |
-
|
| 150 |
-
[[common.monitor.reporters]]
|
| 151 |
-
type = 'monitor_collector'
|
| 152 |
-
|
| 153 |
-
[common.monitor.reporters.monitor_collector]
|
| 154 |
-
remote_ip = ''
|
| 155 |
-
|
| 156 |
-
[io_bufs]
|
| 157 |
-
max_buf_size = '1MB'
|
| 158 |
-
max_readahead = '256KB'
|
| 159 |
-
write_buf_size = '1MB'
|
| 160 |
-
|
| 161 |
-
[io_jobq_sizes]
|
| 162 |
-
hi = 32
|
| 163 |
-
lo = 4096
|
| 164 |
-
|
| 165 |
-
[io_worker_coros]
|
| 166 |
-
hi = 8
|
| 167 |
-
lo = 8
|
| 168 |
-
|
| 169 |
-
[meta]
|
| 170 |
-
check_server_interval = '5s'
|
| 171 |
-
dynamic_stripe = true
|
| 172 |
-
max_concurrent_requests = 128
|
| 173 |
-
network_type = 'RDMA'
|
| 174 |
-
remove_chunks_batch_size = 32
|
| 175 |
-
remove_chunks_max_iters = 1024
|
| 176 |
-
selection_mode = 'RandomFollow'
|
| 177 |
-
|
| 178 |
-
[meta.background_closer]
|
| 179 |
-
prune_session_batch_count = 128
|
| 180 |
-
prune_session_batch_interval = '10s'
|
| 181 |
-
retry_first_wait = '100ms'
|
| 182 |
-
retry_max_wait = '10s'
|
| 183 |
-
task_scan = '50ms'
|
| 184 |
-
|
| 185 |
-
[meta.background_closer.coroutine_pool]
|
| 186 |
-
coroutines_num = 8
|
| 187 |
-
enable_work_stealing = false
|
| 188 |
-
queue_size = 128
|
| 189 |
-
|
| 190 |
-
[meta.retry_default]
|
| 191 |
-
max_failures_before_failover = 1
|
| 192 |
-
retry_fast = '1s'
|
| 193 |
-
retry_init_wait = '500ms'
|
| 194 |
-
retry_max_wait = '5s'
|
| 195 |
-
retry_send = 1
|
| 196 |
-
retry_total_time = '1min'
|
| 197 |
-
rpc_timeout = '5s'
|
| 198 |
-
|
| 199 |
-
[mgmtd]
|
| 200 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 201 |
-
auto_extend_client_session_interval = '10s'
|
| 202 |
-
auto_heartbeat_interval = '10s'
|
| 203 |
-
auto_refresh_interval = '10s'
|
| 204 |
-
enable_auto_extend_client_session = true
|
| 205 |
-
enable_auto_heartbeat = false
|
| 206 |
-
enable_auto_refresh = true
|
| 207 |
-
mgmtd_server_addresses = []
|
| 208 |
-
work_queue_size = 100
|
| 209 |
-
|
| 210 |
-
[periodic_sync]
|
| 211 |
-
enable = true
|
| 212 |
-
flush_write_buf = true
|
| 213 |
-
interval = '30s'
|
| 214 |
-
limit = 1000
|
| 215 |
-
|
| 216 |
-
[periodic_sync.worker]
|
| 217 |
-
coroutines_num = 4
|
| 218 |
-
enable_work_stealing = false
|
| 219 |
-
queue_size = 1024
|
| 220 |
-
|
| 221 |
-
[storage]
|
| 222 |
-
check_overlapping_read_buffers = true
|
| 223 |
-
check_overlapping_write_buffers = false
|
| 224 |
-
chunk_checksum_type = 'CRC32C'
|
| 225 |
-
create_net_client_for_updates = false
|
| 226 |
-
implementation_type = 'RPC'
|
| 227 |
-
max_inline_read_bytes = '0'
|
| 228 |
-
max_inline_write_bytes = '0'
|
| 229 |
-
max_read_io_bytes = '0'
|
| 230 |
-
|
| 231 |
-
[storage.net_client]
|
| 232 |
-
default_compression_level = 0
|
| 233 |
-
default_compression_threshold = '128KB'
|
| 234 |
-
default_log_long_running_threshold = '0ns'
|
| 235 |
-
default_report_metrics = false
|
| 236 |
-
default_send_retry_times = 1
|
| 237 |
-
default_timeout = '1s'
|
| 238 |
-
enable_rdma_control = false
|
| 239 |
-
force_use_tcp = false
|
| 240 |
-
|
| 241 |
-
[storage.net_client.io_worker]
|
| 242 |
-
num_event_loop = 1
|
| 243 |
-
rdma_connect_timeout = '5s'
|
| 244 |
-
read_write_rdma_in_event_thread = false
|
| 245 |
-
read_write_tcp_in_event_thread = false
|
| 246 |
-
tcp_connect_timeout = '1s'
|
| 247 |
-
wait_to_retry_send = '100ms'
|
| 248 |
-
|
| 249 |
-
[storage.net_client.io_worker.connect_concurrency_limiter]
|
| 250 |
-
max_concurrency = 4
|
| 251 |
-
|
| 252 |
-
[storage.net_client.io_worker.ibsocket]
|
| 253 |
-
buf_ack_batch = 8
|
| 254 |
-
buf_signal_batch = 8
|
| 255 |
-
buf_size = 16384
|
| 256 |
-
drain_timeout = '5s'
|
| 257 |
-
drop_connections = 0
|
| 258 |
-
event_ack_batch = 128
|
| 259 |
-
max_rd_atomic = 16
|
| 260 |
-
max_rdma_wr = 128
|
| 261 |
-
max_rdma_wr_per_post = 32
|
| 262 |
-
max_sge = 16
|
| 263 |
-
min_rnr_timer = 1
|
| 264 |
-
record_bytes_per_peer = false
|
| 265 |
-
record_latency_per_peer = false
|
| 266 |
-
retry_cnt = 7
|
| 267 |
-
rnr_retry = 0
|
| 268 |
-
send_buf_cnt = 32
|
| 269 |
-
sl = 0
|
| 270 |
-
start_psn = 0
|
| 271 |
-
timeout = 14
|
| 272 |
-
|
| 273 |
-
[storage.net_client.io_worker.transport_pool]
|
| 274 |
-
max_connections = 1
|
| 275 |
-
|
| 276 |
-
[storage.net_client.processor]
|
| 277 |
-
enable_coroutines_pool = true
|
| 278 |
-
max_coroutines_num = 256
|
| 279 |
-
max_processing_requests_num = 4096
|
| 280 |
-
response_compression_level = 1
|
| 281 |
-
response_compression_threshold = '128KB'
|
| 282 |
-
|
| 283 |
-
[storage.net_client.rdma_control]
|
| 284 |
-
max_concurrent_transmission = 64
|
| 285 |
-
|
| 286 |
-
[storage.net_client.thread_pool]
|
| 287 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 288 |
-
collect_stats = false
|
| 289 |
-
enable_work_stealing = false
|
| 290 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 291 |
-
num_bg_threads = 2
|
| 292 |
-
num_connect_threads = 2
|
| 293 |
-
num_io_threads = 2
|
| 294 |
-
num_proc_threads = 2
|
| 295 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 296 |
-
|
| 297 |
-
[storage.net_client_for_updates]
|
| 298 |
-
default_compression_level = 0
|
| 299 |
-
default_compression_threshold = '128KB'
|
| 300 |
-
default_log_long_running_threshold = '0ns'
|
| 301 |
-
default_report_metrics = false
|
| 302 |
-
default_send_retry_times = 1
|
| 303 |
-
default_timeout = '1s'
|
| 304 |
-
enable_rdma_control = false
|
| 305 |
-
force_use_tcp = false
|
| 306 |
-
|
| 307 |
-
[storage.net_client_for_updates.io_worker]
|
| 308 |
-
num_event_loop = 1
|
| 309 |
-
rdma_connect_timeout = '5s'
|
| 310 |
-
read_write_rdma_in_event_thread = false
|
| 311 |
-
read_write_tcp_in_event_thread = false
|
| 312 |
-
tcp_connect_timeout = '1s'
|
| 313 |
-
wait_to_retry_send = '100ms'
|
| 314 |
-
|
| 315 |
-
[storage.net_client_for_updates.io_worker.connect_concurrency_limiter]
|
| 316 |
-
max_concurrency = 4
|
| 317 |
-
|
| 318 |
-
[storage.net_client_for_updates.io_worker.ibsocket]
|
| 319 |
-
buf_ack_batch = 8
|
| 320 |
-
buf_signal_batch = 8
|
| 321 |
-
buf_size = 16384
|
| 322 |
-
drain_timeout = '5s'
|
| 323 |
-
drop_connections = 0
|
| 324 |
-
event_ack_batch = 128
|
| 325 |
-
max_rd_atomic = 16
|
| 326 |
-
max_rdma_wr = 128
|
| 327 |
-
max_rdma_wr_per_post = 32
|
| 328 |
-
max_sge = 16
|
| 329 |
-
min_rnr_timer = 1
|
| 330 |
-
record_bytes_per_peer = false
|
| 331 |
-
record_latency_per_peer = false
|
| 332 |
-
retry_cnt = 7
|
| 333 |
-
rnr_retry = 0
|
| 334 |
-
send_buf_cnt = 32
|
| 335 |
-
sl = 0
|
| 336 |
-
start_psn = 0
|
| 337 |
-
timeout = 14
|
| 338 |
-
|
| 339 |
-
[storage.net_client_for_updates.io_worker.transport_pool]
|
| 340 |
-
max_connections = 1
|
| 341 |
-
|
| 342 |
-
[storage.net_client_for_updates.processor]
|
| 343 |
-
enable_coroutines_pool = true
|
| 344 |
-
max_coroutines_num = 256
|
| 345 |
-
max_processing_requests_num = 4096
|
| 346 |
-
response_compression_level = 1
|
| 347 |
-
response_compression_threshold = '128KB'
|
| 348 |
-
|
| 349 |
-
[storage.net_client_for_updates.rdma_control]
|
| 350 |
-
max_concurrent_transmission = 64
|
| 351 |
-
|
| 352 |
-
[storage.net_client_for_updates.thread_pool]
|
| 353 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 354 |
-
collect_stats = false
|
| 355 |
-
enable_work_stealing = false
|
| 356 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 357 |
-
num_bg_threads = 2
|
| 358 |
-
num_connect_threads = 2
|
| 359 |
-
num_io_threads = 2
|
| 360 |
-
num_proc_threads = 2
|
| 361 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 362 |
-
|
| 363 |
-
[storage.retry]
|
| 364 |
-
init_wait_time = '10s'
|
| 365 |
-
max_failures_before_failover = 1
|
| 366 |
-
max_retry_time = '1min'
|
| 367 |
-
max_wait_time = '30s'
|
| 368 |
-
|
| 369 |
-
[storage.traffic_control.query]
|
| 370 |
-
max_batch_bytes = '4MB'
|
| 371 |
-
max_batch_size = 128
|
| 372 |
-
max_concurrent_requests = 32
|
| 373 |
-
max_concurrent_requests_per_server = 8
|
| 374 |
-
process_batches_in_parallel = true
|
| 375 |
-
random_shuffle_requests = true
|
| 376 |
-
|
| 377 |
-
[storage.traffic_control.read]
|
| 378 |
-
max_batch_bytes = '4MB'
|
| 379 |
-
max_batch_size = 128
|
| 380 |
-
max_concurrent_requests = 32
|
| 381 |
-
max_concurrent_requests_per_server = 8
|
| 382 |
-
process_batches_in_parallel = true
|
| 383 |
-
random_shuffle_requests = true
|
| 384 |
-
|
| 385 |
-
[storage.traffic_control.remove]
|
| 386 |
-
max_batch_bytes = '4MB'
|
| 387 |
-
max_batch_size = 128
|
| 388 |
-
max_concurrent_requests = 32
|
| 389 |
-
max_concurrent_requests_per_server = 8
|
| 390 |
-
process_batches_in_parallel = true
|
| 391 |
-
random_shuffle_requests = true
|
| 392 |
-
|
| 393 |
-
[storage.traffic_control.truncate]
|
| 394 |
-
max_batch_bytes = '4MB'
|
| 395 |
-
max_batch_size = 128
|
| 396 |
-
max_concurrent_requests = 32
|
| 397 |
-
max_concurrent_requests_per_server = 8
|
| 398 |
-
process_batches_in_parallel = true
|
| 399 |
-
random_shuffle_requests = true
|
| 400 |
-
|
| 401 |
-
[storage.traffic_control.write]
|
| 402 |
-
max_batch_bytes = '4MB'
|
| 403 |
-
max_batch_size = 128
|
| 404 |
-
max_concurrent_requests = 32
|
| 405 |
-
max_concurrent_requests_per_server = 8
|
| 406 |
-
process_batches_in_parallel = true
|
| 407 |
-
random_shuffle_requests = true
|
| 408 |
-
|
| 409 |
-
[storage_io.read]
|
| 410 |
-
allowReadUncommitted = false
|
| 411 |
-
enableChecksum = false
|
| 412 |
-
|
| 413 |
-
[storage_io.read.debug]
|
| 414 |
-
bypass_disk_io = false
|
| 415 |
-
bypass_rdma_xmit = false
|
| 416 |
-
inject_random_client_error = false
|
| 417 |
-
inject_random_server_error = false
|
| 418 |
-
max_num_of_injection_points = 100
|
| 419 |
-
|
| 420 |
-
[storage_io.read.retry]
|
| 421 |
-
init_wait_time = '0ns'
|
| 422 |
-
max_retry_time = '0ns'
|
| 423 |
-
max_wait_time = '0ns'
|
| 424 |
-
retry_permanent_error = false
|
| 425 |
-
|
| 426 |
-
[storage_io.read.targetSelection]
|
| 427 |
-
mode = 'Default'
|
| 428 |
-
targetIndex = 0
|
| 429 |
-
trafficZone = ''
|
| 430 |
-
|
| 431 |
-
[storage_io.write]
|
| 432 |
-
enableChecksum = true
|
| 433 |
-
|
| 434 |
-
[storage_io.write.debug]
|
| 435 |
-
bypass_disk_io = false
|
| 436 |
-
bypass_rdma_xmit = false
|
| 437 |
-
inject_random_client_error = false
|
| 438 |
-
inject_random_server_error = false
|
| 439 |
-
max_num_of_injection_points = 100
|
| 440 |
-
|
| 441 |
-
[storage_io.write.retry]
|
| 442 |
-
init_wait_time = '0ns'
|
| 443 |
-
max_retry_time = '0ns'
|
| 444 |
-
max_wait_time = '0ns'
|
| 445 |
-
retry_permanent_error = false
|
| 446 |
-
|
| 447 |
-
[storage_io.write.targetSelection]
|
| 448 |
-
mode = 'Default'
|
| 449 |
-
targetIndex = 0
|
| 450 |
-
trafficZone = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_fuse_main_app.toml
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/hf3fs_fuse_main_launcher.toml
DELETED
|
@@ -1,95 +0,0 @@
|
|
| 1 |
-
allow_other = true
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
mountpoint = ''
|
| 4 |
-
token_file = ''
|
| 5 |
-
|
| 6 |
-
[client]
|
| 7 |
-
default_compression_level = 0
|
| 8 |
-
default_compression_threshold = '128KB'
|
| 9 |
-
default_log_long_running_threshold = '0ns'
|
| 10 |
-
default_report_metrics = false
|
| 11 |
-
default_send_retry_times = 1
|
| 12 |
-
default_timeout = '1s'
|
| 13 |
-
enable_rdma_control = false
|
| 14 |
-
force_use_tcp = false
|
| 15 |
-
|
| 16 |
-
[client.io_worker]
|
| 17 |
-
num_event_loop = 1
|
| 18 |
-
rdma_connect_timeout = '5s'
|
| 19 |
-
read_write_rdma_in_event_thread = false
|
| 20 |
-
read_write_tcp_in_event_thread = false
|
| 21 |
-
tcp_connect_timeout = '1s'
|
| 22 |
-
wait_to_retry_send = '100ms'
|
| 23 |
-
|
| 24 |
-
[client.io_worker.connect_concurrency_limiter]
|
| 25 |
-
max_concurrency = 4
|
| 26 |
-
|
| 27 |
-
[client.io_worker.ibsocket]
|
| 28 |
-
buf_ack_batch = 8
|
| 29 |
-
buf_signal_batch = 8
|
| 30 |
-
buf_size = 16384
|
| 31 |
-
drain_timeout = '5s'
|
| 32 |
-
drop_connections = 0
|
| 33 |
-
event_ack_batch = 128
|
| 34 |
-
max_rd_atomic = 16
|
| 35 |
-
max_rdma_wr = 128
|
| 36 |
-
max_rdma_wr_per_post = 32
|
| 37 |
-
max_sge = 16
|
| 38 |
-
min_rnr_timer = 1
|
| 39 |
-
record_bytes_per_peer = false
|
| 40 |
-
record_latency_per_peer = false
|
| 41 |
-
retry_cnt = 7
|
| 42 |
-
rnr_retry = 0
|
| 43 |
-
send_buf_cnt = 32
|
| 44 |
-
sl = 0
|
| 45 |
-
start_psn = 0
|
| 46 |
-
timeout = 14
|
| 47 |
-
|
| 48 |
-
[client.io_worker.transport_pool]
|
| 49 |
-
max_connections = 1
|
| 50 |
-
|
| 51 |
-
[client.processor]
|
| 52 |
-
enable_coroutines_pool = true
|
| 53 |
-
max_coroutines_num = 256
|
| 54 |
-
max_processing_requests_num = 4096
|
| 55 |
-
response_compression_level = 1
|
| 56 |
-
response_compression_threshold = '128KB'
|
| 57 |
-
|
| 58 |
-
[client.rdma_control]
|
| 59 |
-
max_concurrent_transmission = 64
|
| 60 |
-
|
| 61 |
-
[client.thread_pool]
|
| 62 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 63 |
-
collect_stats = false
|
| 64 |
-
enable_work_stealing = false
|
| 65 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 66 |
-
num_bg_threads = 2
|
| 67 |
-
num_connect_threads = 2
|
| 68 |
-
num_io_threads = 2
|
| 69 |
-
num_proc_threads = 2
|
| 70 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 71 |
-
|
| 72 |
-
[ib_devices]
|
| 73 |
-
allow_no_usable_devices = false
|
| 74 |
-
allow_unknown_zone = true
|
| 75 |
-
default_network_zone = 'UNKNOWN'
|
| 76 |
-
default_pkey_index = 0
|
| 77 |
-
default_roce_pkey_index = 0
|
| 78 |
-
default_traffic_class = 0
|
| 79 |
-
device_filter = []
|
| 80 |
-
fork_safe = true
|
| 81 |
-
prefer_ibdevice = true
|
| 82 |
-
skip_inactive_ports = true
|
| 83 |
-
skip_unusable_device = true
|
| 84 |
-
subnets = []
|
| 85 |
-
|
| 86 |
-
[mgmtd_client]
|
| 87 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 88 |
-
auto_extend_client_session_interval = '10s'
|
| 89 |
-
auto_heartbeat_interval = '10s'
|
| 90 |
-
auto_refresh_interval = '10s'
|
| 91 |
-
enable_auto_extend_client_session = true
|
| 92 |
-
enable_auto_heartbeat = false
|
| 93 |
-
enable_auto_refresh = true
|
| 94 |
-
mgmtd_server_addresses = []
|
| 95 |
-
work_queue_size = 100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/meta_main.toml
DELETED
|
@@ -1,633 +0,0 @@
|
|
| 1 |
-
[[common.log.categories]]
|
| 2 |
-
categories = [ '.' ]
|
| 3 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 4 |
-
inherit = true
|
| 5 |
-
level = 'INFO'
|
| 6 |
-
propagate = 'NONE'
|
| 7 |
-
|
| 8 |
-
[[common.log.categories]]
|
| 9 |
-
categories = [ 'eventlog' ]
|
| 10 |
-
handlers = [ 'event' ]
|
| 11 |
-
inherit = false
|
| 12 |
-
level = 'INFO'
|
| 13 |
-
propagate = 'ERR'
|
| 14 |
-
|
| 15 |
-
[[common.log.handlers]]
|
| 16 |
-
async = true
|
| 17 |
-
file_path = '/var/log/3fs/hf3fs_meta_main.log'
|
| 18 |
-
max_file_size = '100MB'
|
| 19 |
-
max_files = 10
|
| 20 |
-
name = 'normal'
|
| 21 |
-
rotate = true
|
| 22 |
-
rotate_on_open = false
|
| 23 |
-
start_level = 'NONE'
|
| 24 |
-
stream_type = 'STDERR'
|
| 25 |
-
writer_type = 'FILE'
|
| 26 |
-
|
| 27 |
-
[[common.log.handlers]]
|
| 28 |
-
async = false
|
| 29 |
-
file_path = '/var/log/3fs/hf3fs_meta_main-err.log'
|
| 30 |
-
max_file_size = '100MB'
|
| 31 |
-
max_files = 10
|
| 32 |
-
name = 'err'
|
| 33 |
-
rotate = true
|
| 34 |
-
rotate_on_open = false
|
| 35 |
-
start_level = 'ERR'
|
| 36 |
-
stream_type = 'STDERR'
|
| 37 |
-
writer_type = 'FILE'
|
| 38 |
-
|
| 39 |
-
[[common.log.handlers]]
|
| 40 |
-
async = false
|
| 41 |
-
file_path = '/var/log/3fs/hf3fs_meta_main-fatal.log'
|
| 42 |
-
max_file_size = '100MB'
|
| 43 |
-
max_files = 10
|
| 44 |
-
name = 'fatal'
|
| 45 |
-
rotate = true
|
| 46 |
-
rotate_on_open = false
|
| 47 |
-
start_level = 'FATAL'
|
| 48 |
-
stream_type = 'STDERR'
|
| 49 |
-
writer_type = 'STREAM'
|
| 50 |
-
|
| 51 |
-
[[common.log.handlers]]
|
| 52 |
-
async = true
|
| 53 |
-
file_path = '/var/log/3fs/hf3fs_meta_main-event.log'
|
| 54 |
-
max_file_size = '100MB'
|
| 55 |
-
max_files = 10
|
| 56 |
-
name = 'event'
|
| 57 |
-
rotate = true
|
| 58 |
-
rotate_on_open = false
|
| 59 |
-
start_level = 'INFO'
|
| 60 |
-
stream_type = 'STDERR'
|
| 61 |
-
writer_type = 'EVENT'
|
| 62 |
-
|
| 63 |
-
[common.memory]
|
| 64 |
-
prof_active = false
|
| 65 |
-
prof_prefix = ''
|
| 66 |
-
|
| 67 |
-
[common.monitor]
|
| 68 |
-
collect_period = '1s'
|
| 69 |
-
num_collectors = 1
|
| 70 |
-
|
| 71 |
-
[[common.monitor.reporters]]
|
| 72 |
-
type = 'monitor_collector'
|
| 73 |
-
|
| 74 |
-
[common.monitor.reporters.monitor_collector]
|
| 75 |
-
remote_ip = ''
|
| 76 |
-
|
| 77 |
-
[server]
|
| 78 |
-
use_memkv = false
|
| 79 |
-
|
| 80 |
-
[server.background_client]
|
| 81 |
-
default_compression_level = 0
|
| 82 |
-
default_compression_threshold = '128KB'
|
| 83 |
-
default_log_long_running_threshold = '0ns'
|
| 84 |
-
default_report_metrics = false
|
| 85 |
-
default_send_retry_times = 1
|
| 86 |
-
default_timeout = '1s'
|
| 87 |
-
enable_rdma_control = false
|
| 88 |
-
force_use_tcp = false
|
| 89 |
-
|
| 90 |
-
[server.background_client.io_worker]
|
| 91 |
-
num_event_loop = 1
|
| 92 |
-
rdma_connect_timeout = '5s'
|
| 93 |
-
read_write_rdma_in_event_thread = false
|
| 94 |
-
read_write_tcp_in_event_thread = false
|
| 95 |
-
tcp_connect_timeout = '1s'
|
| 96 |
-
wait_to_retry_send = '100ms'
|
| 97 |
-
|
| 98 |
-
[server.background_client.io_worker.connect_concurrency_limiter]
|
| 99 |
-
max_concurrency = 4
|
| 100 |
-
|
| 101 |
-
[server.background_client.io_worker.ibsocket]
|
| 102 |
-
buf_ack_batch = 8
|
| 103 |
-
buf_signal_batch = 8
|
| 104 |
-
buf_size = 16384
|
| 105 |
-
drain_timeout = '5s'
|
| 106 |
-
drop_connections = 0
|
| 107 |
-
event_ack_batch = 128
|
| 108 |
-
max_rd_atomic = 16
|
| 109 |
-
max_rdma_wr = 128
|
| 110 |
-
max_rdma_wr_per_post = 32
|
| 111 |
-
max_sge = 16
|
| 112 |
-
min_rnr_timer = 1
|
| 113 |
-
record_bytes_per_peer = false
|
| 114 |
-
record_latency_per_peer = false
|
| 115 |
-
retry_cnt = 7
|
| 116 |
-
rnr_retry = 0
|
| 117 |
-
send_buf_cnt = 32
|
| 118 |
-
sl = 0
|
| 119 |
-
start_psn = 0
|
| 120 |
-
timeout = 14
|
| 121 |
-
|
| 122 |
-
[server.background_client.io_worker.transport_pool]
|
| 123 |
-
max_connections = 1
|
| 124 |
-
|
| 125 |
-
[server.background_client.processor]
|
| 126 |
-
enable_coroutines_pool = true
|
| 127 |
-
max_coroutines_num = 256
|
| 128 |
-
max_processing_requests_num = 4096
|
| 129 |
-
response_compression_level = 1
|
| 130 |
-
response_compression_threshold = '128KB'
|
| 131 |
-
|
| 132 |
-
[server.background_client.rdma_control]
|
| 133 |
-
max_concurrent_transmission = 64
|
| 134 |
-
|
| 135 |
-
[server.background_client.thread_pool]
|
| 136 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 137 |
-
collect_stats = false
|
| 138 |
-
enable_work_stealing = false
|
| 139 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 140 |
-
num_bg_threads = 2
|
| 141 |
-
num_connect_threads = 2
|
| 142 |
-
num_io_threads = 2
|
| 143 |
-
num_proc_threads = 2
|
| 144 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 145 |
-
|
| 146 |
-
[server.base.independent_thread_pool]
|
| 147 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 148 |
-
collect_stats = false
|
| 149 |
-
enable_work_stealing = false
|
| 150 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 151 |
-
num_bg_threads = 2
|
| 152 |
-
num_connect_threads = 2
|
| 153 |
-
num_io_threads = 2
|
| 154 |
-
num_proc_threads = 2
|
| 155 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 156 |
-
|
| 157 |
-
[server.base.thread_pool]
|
| 158 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 159 |
-
collect_stats = false
|
| 160 |
-
enable_work_stealing = false
|
| 161 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 162 |
-
num_bg_threads = 2
|
| 163 |
-
num_connect_threads = 2
|
| 164 |
-
num_io_threads = 2
|
| 165 |
-
num_proc_threads = 2
|
| 166 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 167 |
-
|
| 168 |
-
[[server.base.groups]]
|
| 169 |
-
check_connections_interval = '1min'
|
| 170 |
-
connection_expiration_time = '1day'
|
| 171 |
-
network_type = 'RDMA'
|
| 172 |
-
services = [ 'MetaSerde' ]
|
| 173 |
-
use_independent_thread_pool = false
|
| 174 |
-
|
| 175 |
-
[server.base.groups.io_worker]
|
| 176 |
-
num_event_loop = 1
|
| 177 |
-
rdma_connect_timeout = '5s'
|
| 178 |
-
read_write_rdma_in_event_thread = false
|
| 179 |
-
read_write_tcp_in_event_thread = false
|
| 180 |
-
tcp_connect_timeout = '1s'
|
| 181 |
-
wait_to_retry_send = '100ms'
|
| 182 |
-
|
| 183 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 184 |
-
max_concurrency = 4
|
| 185 |
-
|
| 186 |
-
[server.base.groups.io_worker.ibsocket]
|
| 187 |
-
buf_ack_batch = 8
|
| 188 |
-
buf_signal_batch = 8
|
| 189 |
-
buf_size = 16384
|
| 190 |
-
drain_timeout = '5s'
|
| 191 |
-
drop_connections = 0
|
| 192 |
-
event_ack_batch = 128
|
| 193 |
-
max_rd_atomic = 16
|
| 194 |
-
max_rdma_wr = 128
|
| 195 |
-
max_rdma_wr_per_post = 32
|
| 196 |
-
max_sge = 16
|
| 197 |
-
min_rnr_timer = 1
|
| 198 |
-
record_bytes_per_peer = false
|
| 199 |
-
record_latency_per_peer = false
|
| 200 |
-
retry_cnt = 7
|
| 201 |
-
rnr_retry = 0
|
| 202 |
-
send_buf_cnt = 32
|
| 203 |
-
sl = 0
|
| 204 |
-
start_psn = 0
|
| 205 |
-
timeout = 14
|
| 206 |
-
|
| 207 |
-
[server.base.groups.io_worker.transport_pool]
|
| 208 |
-
max_connections = 1
|
| 209 |
-
|
| 210 |
-
[server.base.groups.listener]
|
| 211 |
-
domain_socket_index = 1
|
| 212 |
-
filter_list = []
|
| 213 |
-
listen_port = 8001
|
| 214 |
-
listen_queue_depth = 4096
|
| 215 |
-
rdma_accept_timeout = '15s'
|
| 216 |
-
rdma_listen_ethernet = true
|
| 217 |
-
reuse_port = false
|
| 218 |
-
|
| 219 |
-
[server.base.groups.processor]
|
| 220 |
-
enable_coroutines_pool = true
|
| 221 |
-
max_coroutines_num = 256
|
| 222 |
-
max_processing_requests_num = 4096
|
| 223 |
-
response_compression_level = 1
|
| 224 |
-
response_compression_threshold = '128KB'
|
| 225 |
-
|
| 226 |
-
[[server.base.groups]]
|
| 227 |
-
check_connections_interval = '1min'
|
| 228 |
-
connection_expiration_time = '1day'
|
| 229 |
-
network_type = 'TCP'
|
| 230 |
-
services = [ 'Core' ]
|
| 231 |
-
use_independent_thread_pool = true
|
| 232 |
-
|
| 233 |
-
[server.base.groups.io_worker]
|
| 234 |
-
num_event_loop = 1
|
| 235 |
-
rdma_connect_timeout = '5s'
|
| 236 |
-
read_write_rdma_in_event_thread = false
|
| 237 |
-
read_write_tcp_in_event_thread = false
|
| 238 |
-
tcp_connect_timeout = '1s'
|
| 239 |
-
wait_to_retry_send = '100ms'
|
| 240 |
-
|
| 241 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 242 |
-
max_concurrency = 4
|
| 243 |
-
|
| 244 |
-
[server.base.groups.io_worker.ibsocket]
|
| 245 |
-
buf_ack_batch = 8
|
| 246 |
-
buf_signal_batch = 8
|
| 247 |
-
buf_size = 16384
|
| 248 |
-
drain_timeout = '5s'
|
| 249 |
-
drop_connections = 0
|
| 250 |
-
event_ack_batch = 128
|
| 251 |
-
max_rd_atomic = 16
|
| 252 |
-
max_rdma_wr = 128
|
| 253 |
-
max_rdma_wr_per_post = 32
|
| 254 |
-
max_sge = 16
|
| 255 |
-
min_rnr_timer = 1
|
| 256 |
-
record_bytes_per_peer = false
|
| 257 |
-
record_latency_per_peer = false
|
| 258 |
-
retry_cnt = 7
|
| 259 |
-
rnr_retry = 0
|
| 260 |
-
send_buf_cnt = 32
|
| 261 |
-
sl = 0
|
| 262 |
-
start_psn = 0
|
| 263 |
-
timeout = 14
|
| 264 |
-
|
| 265 |
-
[server.base.groups.io_worker.transport_pool]
|
| 266 |
-
max_connections = 1
|
| 267 |
-
|
| 268 |
-
[server.base.groups.listener]
|
| 269 |
-
domain_socket_index = 1
|
| 270 |
-
filter_list = []
|
| 271 |
-
listen_port = 9001
|
| 272 |
-
listen_queue_depth = 4096
|
| 273 |
-
rdma_accept_timeout = '15s'
|
| 274 |
-
rdma_listen_ethernet = true
|
| 275 |
-
reuse_port = false
|
| 276 |
-
|
| 277 |
-
[server.base.groups.processor]
|
| 278 |
-
enable_coroutines_pool = true
|
| 279 |
-
max_coroutines_num = 256
|
| 280 |
-
max_processing_requests_num = 4096
|
| 281 |
-
response_compression_level = 1
|
| 282 |
-
response_compression_threshold = '128KB'
|
| 283 |
-
|
| 284 |
-
[server.fdb]
|
| 285 |
-
casual_read_risky = false
|
| 286 |
-
clusterFile = ''
|
| 287 |
-
default_backoff = 0
|
| 288 |
-
enableMultipleClient = false
|
| 289 |
-
externalClientDir = ''
|
| 290 |
-
externalClientPath = ''
|
| 291 |
-
multipleClientThreadNum = 4
|
| 292 |
-
readonly = false
|
| 293 |
-
trace_file = ''
|
| 294 |
-
trace_format = 'json'
|
| 295 |
-
|
| 296 |
-
[server.kv_engine]
|
| 297 |
-
use_memkv = false
|
| 298 |
-
|
| 299 |
-
[server.kv_engine.fdb]
|
| 300 |
-
casual_read_risky = false
|
| 301 |
-
clusterFile = ''
|
| 302 |
-
default_backoff = 0
|
| 303 |
-
enableMultipleClient = false
|
| 304 |
-
externalClientDir = ''
|
| 305 |
-
externalClientPath = ''
|
| 306 |
-
multipleClientThreadNum = 4
|
| 307 |
-
readonly = false
|
| 308 |
-
trace_file = ''
|
| 309 |
-
trace_format = 'json'
|
| 310 |
-
|
| 311 |
-
[server.meta]
|
| 312 |
-
acl_cache_time = '15s'
|
| 313 |
-
allow_directly_move_to_trash = false
|
| 314 |
-
allow_owner_change_immutable = false
|
| 315 |
-
allow_stat_deleted_inodes = true
|
| 316 |
-
authenticate = false
|
| 317 |
-
batch_stat_by_path_concurrent = 4
|
| 318 |
-
batch_stat_concurrent = 8
|
| 319 |
-
check_file_hole = false
|
| 320 |
-
dynamic_stripe = false
|
| 321 |
-
dynamic_stripe_growth = 2
|
| 322 |
-
dynamic_stripe_initial = 16
|
| 323 |
-
enable_new_chunk_engine = false
|
| 324 |
-
grv_cache = false
|
| 325 |
-
idempotent_record_clean = '1min'
|
| 326 |
-
idempotent_record_expire = '30min'
|
| 327 |
-
idempotent_remove = true
|
| 328 |
-
idempotent_rename = false
|
| 329 |
-
iflags_chain_allocation = false
|
| 330 |
-
iflags_chunk_engine = true
|
| 331 |
-
ignore_length_hint = false
|
| 332 |
-
inodeId_abort_on_duplicate = false
|
| 333 |
-
inodeId_check_unique = true
|
| 334 |
-
list_default_limit = 128
|
| 335 |
-
max_batch_operations = 4096
|
| 336 |
-
max_directory_depth = 64
|
| 337 |
-
max_remove_chunks_per_request = 32
|
| 338 |
-
max_symlink_count = 10
|
| 339 |
-
max_symlink_depth = 4
|
| 340 |
-
operation_timeout = '5s'
|
| 341 |
-
otrunc_replace_file = true
|
| 342 |
-
otrunc_replace_file_threshold = '1GB'
|
| 343 |
-
readonly = false
|
| 344 |
-
recursive_remove_check_owner = true
|
| 345 |
-
recursive_remove_perm_check = 1024
|
| 346 |
-
statfs_cache_time = '1min'
|
| 347 |
-
statfs_space_imbalance_threshold = 5
|
| 348 |
-
statfs_update_interval = '5s'
|
| 349 |
-
sync_on_prune_session = false
|
| 350 |
-
time_granularity = '1s'
|
| 351 |
-
|
| 352 |
-
[server.meta.background_hole_checker]
|
| 353 |
-
coroutines_num = 16
|
| 354 |
-
enable_work_stealing = false
|
| 355 |
-
queue_size = 4096
|
| 356 |
-
|
| 357 |
-
[server.meta.distributor]
|
| 358 |
-
timeout = '30s'
|
| 359 |
-
update_interval = '1s'
|
| 360 |
-
|
| 361 |
-
[server.meta.event_trace_log]
|
| 362 |
-
dump_interval = '30s'
|
| 363 |
-
enabled = true
|
| 364 |
-
max_num_writers = 1
|
| 365 |
-
max_row_group_length = 100000
|
| 366 |
-
trace_file_dir = '.'
|
| 367 |
-
|
| 368 |
-
[server.meta.forward]
|
| 369 |
-
addr_type = 'RDMA'
|
| 370 |
-
debug = true
|
| 371 |
-
timeout = '10s'
|
| 372 |
-
|
| 373 |
-
[server.meta.gc]
|
| 374 |
-
check_session = true
|
| 375 |
-
distributed_gc = true
|
| 376 |
-
enable = true
|
| 377 |
-
gc_delay_free_space_threshold = 5
|
| 378 |
-
gc_directory_concurrent = 4
|
| 379 |
-
gc_directory_delay = '0ns'
|
| 380 |
-
gc_directory_entry_batch = 32
|
| 381 |
-
gc_directory_entry_concurrent = 4
|
| 382 |
-
gc_file_concurrent = 32
|
| 383 |
-
gc_file_delay = '5min'
|
| 384 |
-
large_file_chunks = 128
|
| 385 |
-
recursive_perm_check = true
|
| 386 |
-
remove_chunks_batch_size = 32
|
| 387 |
-
retry_delay = '10min'
|
| 388 |
-
scan_batch = 4096
|
| 389 |
-
scan_interval = '200ms'
|
| 390 |
-
small_file_chunks = 32
|
| 391 |
-
txn_low_priority = false
|
| 392 |
-
|
| 393 |
-
[server.meta.gc.retry_remove_chunks]
|
| 394 |
-
init_wait_time = '10s'
|
| 395 |
-
max_retry_time = '30s'
|
| 396 |
-
max_wait_time = '10s'
|
| 397 |
-
retry_permanent_error = false
|
| 398 |
-
|
| 399 |
-
[server.meta.gc.workers]
|
| 400 |
-
coroutines_num = 8
|
| 401 |
-
enable_work_stealing = false
|
| 402 |
-
queue_size = 1024
|
| 403 |
-
|
| 404 |
-
[server.meta.retry_remove_chunks]
|
| 405 |
-
init_wait_time = '10s'
|
| 406 |
-
max_retry_time = '30s'
|
| 407 |
-
max_wait_time = '10s'
|
| 408 |
-
retry_permanent_error = false
|
| 409 |
-
|
| 410 |
-
[server.meta.retry_transaction]
|
| 411 |
-
max_backoff = '1s'
|
| 412 |
-
max_retry_count = 10
|
| 413 |
-
|
| 414 |
-
[server.meta.session_manager]
|
| 415 |
-
enable = true
|
| 416 |
-
scan_batch = 1024
|
| 417 |
-
scan_interval = '5min'
|
| 418 |
-
session_timeout = '5min'
|
| 419 |
-
sync_on_prune_session = false
|
| 420 |
-
|
| 421 |
-
[server.meta.session_manager.close_workers]
|
| 422 |
-
coroutines_num = 32
|
| 423 |
-
enable_work_stealing = false
|
| 424 |
-
queue_size = 1024
|
| 425 |
-
|
| 426 |
-
[server.meta.session_manager.scan_workers]
|
| 427 |
-
coroutines_num = 8
|
| 428 |
-
enable_work_stealing = false
|
| 429 |
-
queue_size = 128
|
| 430 |
-
|
| 431 |
-
[server.meta.user_cache]
|
| 432 |
-
buckets = 127
|
| 433 |
-
exist_ttl = '5min'
|
| 434 |
-
inexist_ttl = '10s'
|
| 435 |
-
|
| 436 |
-
[server.mgmtd_client]
|
| 437 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 438 |
-
auto_extend_client_session_interval = '10s'
|
| 439 |
-
auto_heartbeat_interval = '10s'
|
| 440 |
-
auto_refresh_interval = '10s'
|
| 441 |
-
enable_auto_extend_client_session = false
|
| 442 |
-
enable_auto_heartbeat = true
|
| 443 |
-
enable_auto_refresh = true
|
| 444 |
-
mgmtd_server_addresses = []
|
| 445 |
-
work_queue_size = 100
|
| 446 |
-
|
| 447 |
-
[server.storage_client]
|
| 448 |
-
check_overlapping_read_buffers = true
|
| 449 |
-
check_overlapping_write_buffers = false
|
| 450 |
-
chunk_checksum_type = 'CRC32C'
|
| 451 |
-
create_net_client_for_updates = false
|
| 452 |
-
implementation_type = 'RPC'
|
| 453 |
-
max_inline_read_bytes = '0'
|
| 454 |
-
max_inline_write_bytes = '0'
|
| 455 |
-
max_read_io_bytes = '0'
|
| 456 |
-
|
| 457 |
-
[server.storage_client.net_client]
|
| 458 |
-
default_compression_level = 0
|
| 459 |
-
default_compression_threshold = '128KB'
|
| 460 |
-
default_log_long_running_threshold = '0ns'
|
| 461 |
-
default_report_metrics = false
|
| 462 |
-
default_send_retry_times = 1
|
| 463 |
-
default_timeout = '1s'
|
| 464 |
-
enable_rdma_control = false
|
| 465 |
-
force_use_tcp = false
|
| 466 |
-
|
| 467 |
-
[server.storage_client.net_client.io_worker]
|
| 468 |
-
num_event_loop = 1
|
| 469 |
-
rdma_connect_timeout = '5s'
|
| 470 |
-
read_write_rdma_in_event_thread = false
|
| 471 |
-
read_write_tcp_in_event_thread = false
|
| 472 |
-
tcp_connect_timeout = '1s'
|
| 473 |
-
wait_to_retry_send = '100ms'
|
| 474 |
-
|
| 475 |
-
[server.storage_client.net_client.io_worker.connect_concurrency_limiter]
|
| 476 |
-
max_concurrency = 4
|
| 477 |
-
|
| 478 |
-
[server.storage_client.net_client.io_worker.ibsocket]
|
| 479 |
-
buf_ack_batch = 8
|
| 480 |
-
buf_signal_batch = 8
|
| 481 |
-
buf_size = 16384
|
| 482 |
-
drain_timeout = '5s'
|
| 483 |
-
drop_connections = 0
|
| 484 |
-
event_ack_batch = 128
|
| 485 |
-
max_rd_atomic = 16
|
| 486 |
-
max_rdma_wr = 128
|
| 487 |
-
max_rdma_wr_per_post = 32
|
| 488 |
-
max_sge = 16
|
| 489 |
-
min_rnr_timer = 1
|
| 490 |
-
record_bytes_per_peer = false
|
| 491 |
-
record_latency_per_peer = false
|
| 492 |
-
retry_cnt = 7
|
| 493 |
-
rnr_retry = 0
|
| 494 |
-
send_buf_cnt = 32
|
| 495 |
-
sl = 0
|
| 496 |
-
start_psn = 0
|
| 497 |
-
timeout = 14
|
| 498 |
-
|
| 499 |
-
[server.storage_client.net_client.io_worker.transport_pool]
|
| 500 |
-
max_connections = 1
|
| 501 |
-
|
| 502 |
-
[server.storage_client.net_client.processor]
|
| 503 |
-
enable_coroutines_pool = true
|
| 504 |
-
max_coroutines_num = 256
|
| 505 |
-
max_processing_requests_num = 4096
|
| 506 |
-
response_compression_level = 1
|
| 507 |
-
response_compression_threshold = '128KB'
|
| 508 |
-
|
| 509 |
-
[server.storage_client.net_client.rdma_control]
|
| 510 |
-
max_concurrent_transmission = 64
|
| 511 |
-
|
| 512 |
-
[server.storage_client.net_client.thread_pool]
|
| 513 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 514 |
-
collect_stats = false
|
| 515 |
-
enable_work_stealing = false
|
| 516 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 517 |
-
num_bg_threads = 2
|
| 518 |
-
num_connect_threads = 2
|
| 519 |
-
num_io_threads = 2
|
| 520 |
-
num_proc_threads = 2
|
| 521 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 522 |
-
|
| 523 |
-
[server.storage_client.net_client_for_updates]
|
| 524 |
-
default_compression_level = 0
|
| 525 |
-
default_compression_threshold = '128KB'
|
| 526 |
-
default_log_long_running_threshold = '0ns'
|
| 527 |
-
default_report_metrics = false
|
| 528 |
-
default_send_retry_times = 1
|
| 529 |
-
default_timeout = '1s'
|
| 530 |
-
enable_rdma_control = false
|
| 531 |
-
force_use_tcp = false
|
| 532 |
-
|
| 533 |
-
[server.storage_client.net_client_for_updates.io_worker]
|
| 534 |
-
num_event_loop = 1
|
| 535 |
-
rdma_connect_timeout = '5s'
|
| 536 |
-
read_write_rdma_in_event_thread = false
|
| 537 |
-
read_write_tcp_in_event_thread = false
|
| 538 |
-
tcp_connect_timeout = '1s'
|
| 539 |
-
wait_to_retry_send = '100ms'
|
| 540 |
-
|
| 541 |
-
[server.storage_client.net_client_for_updates.io_worker.connect_concurrency_limiter]
|
| 542 |
-
max_concurrency = 4
|
| 543 |
-
|
| 544 |
-
[server.storage_client.net_client_for_updates.io_worker.ibsocket]
|
| 545 |
-
buf_ack_batch = 8
|
| 546 |
-
buf_signal_batch = 8
|
| 547 |
-
buf_size = 16384
|
| 548 |
-
drain_timeout = '5s'
|
| 549 |
-
drop_connections = 0
|
| 550 |
-
event_ack_batch = 128
|
| 551 |
-
max_rd_atomic = 16
|
| 552 |
-
max_rdma_wr = 128
|
| 553 |
-
max_rdma_wr_per_post = 32
|
| 554 |
-
max_sge = 16
|
| 555 |
-
min_rnr_timer = 1
|
| 556 |
-
record_bytes_per_peer = false
|
| 557 |
-
record_latency_per_peer = false
|
| 558 |
-
retry_cnt = 7
|
| 559 |
-
rnr_retry = 0
|
| 560 |
-
send_buf_cnt = 32
|
| 561 |
-
sl = 0
|
| 562 |
-
start_psn = 0
|
| 563 |
-
timeout = 14
|
| 564 |
-
|
| 565 |
-
[server.storage_client.net_client_for_updates.io_worker.transport_pool]
|
| 566 |
-
max_connections = 1
|
| 567 |
-
|
| 568 |
-
[server.storage_client.net_client_for_updates.processor]
|
| 569 |
-
enable_coroutines_pool = true
|
| 570 |
-
max_coroutines_num = 256
|
| 571 |
-
max_processing_requests_num = 4096
|
| 572 |
-
response_compression_level = 1
|
| 573 |
-
response_compression_threshold = '128KB'
|
| 574 |
-
|
| 575 |
-
[server.storage_client.net_client_for_updates.rdma_control]
|
| 576 |
-
max_concurrent_transmission = 64
|
| 577 |
-
|
| 578 |
-
[server.storage_client.net_client_for_updates.thread_pool]
|
| 579 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 580 |
-
collect_stats = false
|
| 581 |
-
enable_work_stealing = false
|
| 582 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 583 |
-
num_bg_threads = 2
|
| 584 |
-
num_connect_threads = 2
|
| 585 |
-
num_io_threads = 2
|
| 586 |
-
num_proc_threads = 2
|
| 587 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 588 |
-
|
| 589 |
-
[server.storage_client.retry]
|
| 590 |
-
init_wait_time = '2s'
|
| 591 |
-
max_failures_before_failover = 1
|
| 592 |
-
max_retry_time = '5s'
|
| 593 |
-
max_wait_time = '5s'
|
| 594 |
-
|
| 595 |
-
[server.storage_client.traffic_control.query]
|
| 596 |
-
max_batch_bytes = '4MB'
|
| 597 |
-
max_batch_size = 128
|
| 598 |
-
max_concurrent_requests = 32
|
| 599 |
-
max_concurrent_requests_per_server = 8
|
| 600 |
-
process_batches_in_parallel = true
|
| 601 |
-
random_shuffle_requests = true
|
| 602 |
-
|
| 603 |
-
[server.storage_client.traffic_control.read]
|
| 604 |
-
max_batch_bytes = '4MB'
|
| 605 |
-
max_batch_size = 128
|
| 606 |
-
max_concurrent_requests = 32
|
| 607 |
-
max_concurrent_requests_per_server = 8
|
| 608 |
-
process_batches_in_parallel = true
|
| 609 |
-
random_shuffle_requests = true
|
| 610 |
-
|
| 611 |
-
[server.storage_client.traffic_control.remove]
|
| 612 |
-
max_batch_bytes = '4MB'
|
| 613 |
-
max_batch_size = 128
|
| 614 |
-
max_concurrent_requests = 32
|
| 615 |
-
max_concurrent_requests_per_server = 8
|
| 616 |
-
process_batches_in_parallel = true
|
| 617 |
-
random_shuffle_requests = true
|
| 618 |
-
|
| 619 |
-
[server.storage_client.traffic_control.truncate]
|
| 620 |
-
max_batch_bytes = '4MB'
|
| 621 |
-
max_batch_size = 128
|
| 622 |
-
max_concurrent_requests = 32
|
| 623 |
-
max_concurrent_requests_per_server = 8
|
| 624 |
-
process_batches_in_parallel = true
|
| 625 |
-
random_shuffle_requests = true
|
| 626 |
-
|
| 627 |
-
[server.storage_client.traffic_control.write]
|
| 628 |
-
max_batch_bytes = '4MB'
|
| 629 |
-
max_batch_size = 128
|
| 630 |
-
max_concurrent_requests = 32
|
| 631 |
-
max_concurrent_requests_per_server = 8
|
| 632 |
-
process_batches_in_parallel = true
|
| 633 |
-
random_shuffle_requests = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/meta_main_app.toml
DELETED
|
@@ -1,2 +0,0 @@
|
|
| 1 |
-
allow_empty_node_id = true
|
| 2 |
-
node_id = 0
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/meta_main_launcher.toml
DELETED
|
@@ -1,93 +0,0 @@
|
|
| 1 |
-
allow_dev_version = true
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
|
| 4 |
-
[client]
|
| 5 |
-
default_compression_level = 0
|
| 6 |
-
default_compression_threshold = '128KB'
|
| 7 |
-
default_log_long_running_threshold = '0ns'
|
| 8 |
-
default_report_metrics = false
|
| 9 |
-
default_send_retry_times = 1
|
| 10 |
-
default_timeout = '1s'
|
| 11 |
-
enable_rdma_control = false
|
| 12 |
-
force_use_tcp = false
|
| 13 |
-
|
| 14 |
-
[client.io_worker]
|
| 15 |
-
num_event_loop = 1
|
| 16 |
-
rdma_connect_timeout = '5s'
|
| 17 |
-
read_write_rdma_in_event_thread = false
|
| 18 |
-
read_write_tcp_in_event_thread = false
|
| 19 |
-
tcp_connect_timeout = '1s'
|
| 20 |
-
wait_to_retry_send = '100ms'
|
| 21 |
-
|
| 22 |
-
[client.io_worker.connect_concurrency_limiter]
|
| 23 |
-
max_concurrency = 4
|
| 24 |
-
|
| 25 |
-
[client.io_worker.ibsocket]
|
| 26 |
-
buf_ack_batch = 8
|
| 27 |
-
buf_signal_batch = 8
|
| 28 |
-
buf_size = 16384
|
| 29 |
-
drain_timeout = '5s'
|
| 30 |
-
drop_connections = 0
|
| 31 |
-
event_ack_batch = 128
|
| 32 |
-
max_rd_atomic = 16
|
| 33 |
-
max_rdma_wr = 128
|
| 34 |
-
max_rdma_wr_per_post = 32
|
| 35 |
-
max_sge = 16
|
| 36 |
-
min_rnr_timer = 1
|
| 37 |
-
record_bytes_per_peer = false
|
| 38 |
-
record_latency_per_peer = false
|
| 39 |
-
retry_cnt = 7
|
| 40 |
-
rnr_retry = 0
|
| 41 |
-
send_buf_cnt = 32
|
| 42 |
-
sl = 0
|
| 43 |
-
start_psn = 0
|
| 44 |
-
timeout = 14
|
| 45 |
-
|
| 46 |
-
[client.io_worker.transport_pool]
|
| 47 |
-
max_connections = 1
|
| 48 |
-
|
| 49 |
-
[client.processor]
|
| 50 |
-
enable_coroutines_pool = true
|
| 51 |
-
max_coroutines_num = 256
|
| 52 |
-
max_processing_requests_num = 4096
|
| 53 |
-
response_compression_level = 1
|
| 54 |
-
response_compression_threshold = '128KB'
|
| 55 |
-
|
| 56 |
-
[client.rdma_control]
|
| 57 |
-
max_concurrent_transmission = 64
|
| 58 |
-
|
| 59 |
-
[client.thread_pool]
|
| 60 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 61 |
-
collect_stats = false
|
| 62 |
-
enable_work_stealing = false
|
| 63 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 64 |
-
num_bg_threads = 2
|
| 65 |
-
num_connect_threads = 2
|
| 66 |
-
num_io_threads = 2
|
| 67 |
-
num_proc_threads = 2
|
| 68 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 69 |
-
|
| 70 |
-
[ib_devices]
|
| 71 |
-
allow_no_usable_devices = false
|
| 72 |
-
allow_unknown_zone = true
|
| 73 |
-
default_network_zone = 'UNKNOWN'
|
| 74 |
-
default_pkey_index = 0
|
| 75 |
-
default_roce_pkey_index = 0
|
| 76 |
-
default_traffic_class = 0
|
| 77 |
-
device_filter = []
|
| 78 |
-
fork_safe = true
|
| 79 |
-
prefer_ibdevice = true
|
| 80 |
-
skip_inactive_ports = true
|
| 81 |
-
skip_unusable_device = true
|
| 82 |
-
subnets = []
|
| 83 |
-
|
| 84 |
-
[mgmtd_client]
|
| 85 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 86 |
-
auto_extend_client_session_interval = '10s'
|
| 87 |
-
auto_heartbeat_interval = '10s'
|
| 88 |
-
auto_refresh_interval = '10s'
|
| 89 |
-
enable_auto_extend_client_session = false
|
| 90 |
-
enable_auto_heartbeat = true
|
| 91 |
-
enable_auto_refresh = true
|
| 92 |
-
mgmtd_server_addresses = []
|
| 93 |
-
work_queue_size = 100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/mgmtd_main.toml
DELETED
|
@@ -1,232 +0,0 @@
|
|
| 1 |
-
[[common.log.categories]]
|
| 2 |
-
categories = [ '.' ]
|
| 3 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 4 |
-
inherit = true
|
| 5 |
-
level = 'INFO'
|
| 6 |
-
propagate = 'NONE'
|
| 7 |
-
|
| 8 |
-
[[common.log.handlers]]
|
| 9 |
-
async = true
|
| 10 |
-
file_path = '/var/log/3fs/mgmtd_main.log'
|
| 11 |
-
max_file_size = '100MB'
|
| 12 |
-
max_files = 10
|
| 13 |
-
name = 'normal'
|
| 14 |
-
rotate = true
|
| 15 |
-
rotate_on_open = false
|
| 16 |
-
start_level = 'NONE'
|
| 17 |
-
stream_type = 'STDERR'
|
| 18 |
-
writer_type = 'FILE'
|
| 19 |
-
|
| 20 |
-
[[common.log.handlers]]
|
| 21 |
-
async = false
|
| 22 |
-
file_path = '/var/log/3fs/mgmtd_main-err.log'
|
| 23 |
-
max_file_size = '100MB'
|
| 24 |
-
max_files = 10
|
| 25 |
-
name = 'err'
|
| 26 |
-
rotate = true
|
| 27 |
-
rotate_on_open = false
|
| 28 |
-
start_level = 'ERR'
|
| 29 |
-
stream_type = 'STDERR'
|
| 30 |
-
writer_type = 'FILE'
|
| 31 |
-
|
| 32 |
-
[[common.log.handlers]]
|
| 33 |
-
async = false
|
| 34 |
-
file_path = '/var/log/3fs/mgmtd_main-fatal.log'
|
| 35 |
-
max_file_size = '100MB'
|
| 36 |
-
max_files = 10
|
| 37 |
-
name = 'fatal'
|
| 38 |
-
rotate = true
|
| 39 |
-
rotate_on_open = false
|
| 40 |
-
start_level = 'FATAL'
|
| 41 |
-
stream_type = 'STDERR'
|
| 42 |
-
writer_type = 'STREAM'
|
| 43 |
-
|
| 44 |
-
[common.memory]
|
| 45 |
-
prof_active = false
|
| 46 |
-
prof_prefix = ''
|
| 47 |
-
|
| 48 |
-
[common.monitor]
|
| 49 |
-
collect_period = '1s'
|
| 50 |
-
num_collectors = 1
|
| 51 |
-
|
| 52 |
-
[[common.monitor.reporters]]
|
| 53 |
-
type = 'monitor_collector'
|
| 54 |
-
|
| 55 |
-
[common.monitor.reporters.monitor_collector]
|
| 56 |
-
remote_ip = ""
|
| 57 |
-
|
| 58 |
-
[server.base.independent_thread_pool]
|
| 59 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 60 |
-
collect_stats = false
|
| 61 |
-
enable_work_stealing = false
|
| 62 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 63 |
-
num_bg_threads = 2
|
| 64 |
-
num_connect_threads = 2
|
| 65 |
-
num_io_threads = 2
|
| 66 |
-
num_proc_threads = 2
|
| 67 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 68 |
-
|
| 69 |
-
[server.base.thread_pool]
|
| 70 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 71 |
-
collect_stats = false
|
| 72 |
-
enable_work_stealing = false
|
| 73 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 74 |
-
num_bg_threads = 2
|
| 75 |
-
num_connect_threads = 2
|
| 76 |
-
num_io_threads = 2
|
| 77 |
-
num_proc_threads = 2
|
| 78 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 79 |
-
|
| 80 |
-
[[server.base.groups]]
|
| 81 |
-
check_connections_interval = '1min'
|
| 82 |
-
connection_expiration_time = '1day'
|
| 83 |
-
network_type = 'RDMA'
|
| 84 |
-
services = [ 'Mgmtd' ]
|
| 85 |
-
use_independent_thread_pool = false
|
| 86 |
-
|
| 87 |
-
[server.base.groups.io_worker]
|
| 88 |
-
num_event_loop = 1
|
| 89 |
-
rdma_connect_timeout = '5s'
|
| 90 |
-
read_write_rdma_in_event_thread = false
|
| 91 |
-
read_write_tcp_in_event_thread = false
|
| 92 |
-
tcp_connect_timeout = '1s'
|
| 93 |
-
wait_to_retry_send = '100ms'
|
| 94 |
-
|
| 95 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 96 |
-
max_concurrency = 4
|
| 97 |
-
|
| 98 |
-
[server.base.groups.io_worker.ibsocket]
|
| 99 |
-
buf_ack_batch = 8
|
| 100 |
-
buf_signal_batch = 8
|
| 101 |
-
buf_size = 16384
|
| 102 |
-
drain_timeout = '5s'
|
| 103 |
-
drop_connections = 0
|
| 104 |
-
event_ack_batch = 128
|
| 105 |
-
max_rd_atomic = 16
|
| 106 |
-
max_rdma_wr = 128
|
| 107 |
-
max_rdma_wr_per_post = 32
|
| 108 |
-
max_sge = 16
|
| 109 |
-
min_rnr_timer = 1
|
| 110 |
-
record_bytes_per_peer = false
|
| 111 |
-
record_latency_per_peer = false
|
| 112 |
-
retry_cnt = 7
|
| 113 |
-
rnr_retry = 0
|
| 114 |
-
send_buf_cnt = 32
|
| 115 |
-
sl = 0
|
| 116 |
-
start_psn = 0
|
| 117 |
-
timeout = 14
|
| 118 |
-
|
| 119 |
-
[server.base.groups.io_worker.transport_pool]
|
| 120 |
-
max_connections = 1
|
| 121 |
-
|
| 122 |
-
[server.base.groups.listener]
|
| 123 |
-
domain_socket_index = 1
|
| 124 |
-
filter_list = []
|
| 125 |
-
listen_port = 8000
|
| 126 |
-
listen_queue_depth = 4096
|
| 127 |
-
rdma_accept_timeout = '15s'
|
| 128 |
-
rdma_listen_ethernet = true
|
| 129 |
-
reuse_port = false
|
| 130 |
-
|
| 131 |
-
[server.base.groups.processor]
|
| 132 |
-
enable_coroutines_pool = true
|
| 133 |
-
max_coroutines_num = 256
|
| 134 |
-
max_processing_requests_num = 4096
|
| 135 |
-
response_compression_level = 1
|
| 136 |
-
response_compression_threshold = '128KB'
|
| 137 |
-
|
| 138 |
-
[[server.base.groups]]
|
| 139 |
-
check_connections_interval = '1min'
|
| 140 |
-
connection_expiration_time = '1day'
|
| 141 |
-
network_type = 'TCP'
|
| 142 |
-
services = [ 'Core' ]
|
| 143 |
-
use_independent_thread_pool = true
|
| 144 |
-
|
| 145 |
-
[server.base.groups.io_worker]
|
| 146 |
-
num_event_loop = 1
|
| 147 |
-
rdma_connect_timeout = '5s'
|
| 148 |
-
read_write_rdma_in_event_thread = false
|
| 149 |
-
read_write_tcp_in_event_thread = false
|
| 150 |
-
tcp_connect_timeout = '1s'
|
| 151 |
-
wait_to_retry_send = '100ms'
|
| 152 |
-
|
| 153 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 154 |
-
max_concurrency = 4
|
| 155 |
-
|
| 156 |
-
[server.base.groups.io_worker.ibsocket]
|
| 157 |
-
buf_ack_batch = 8
|
| 158 |
-
buf_signal_batch = 8
|
| 159 |
-
buf_size = 16384
|
| 160 |
-
drain_timeout = '5s'
|
| 161 |
-
drop_connections = 0
|
| 162 |
-
event_ack_batch = 128
|
| 163 |
-
max_rd_atomic = 16
|
| 164 |
-
max_rdma_wr = 128
|
| 165 |
-
max_rdma_wr_per_post = 32
|
| 166 |
-
max_sge = 16
|
| 167 |
-
min_rnr_timer = 1
|
| 168 |
-
record_bytes_per_peer = false
|
| 169 |
-
record_latency_per_peer = false
|
| 170 |
-
retry_cnt = 7
|
| 171 |
-
rnr_retry = 0
|
| 172 |
-
send_buf_cnt = 32
|
| 173 |
-
sl = 0
|
| 174 |
-
start_psn = 0
|
| 175 |
-
timeout = 14
|
| 176 |
-
|
| 177 |
-
[server.base.groups.io_worker.transport_pool]
|
| 178 |
-
max_connections = 1
|
| 179 |
-
|
| 180 |
-
[server.base.groups.listener]
|
| 181 |
-
domain_socket_index = 1
|
| 182 |
-
filter_list = []
|
| 183 |
-
listen_port = 9000
|
| 184 |
-
listen_queue_depth = 4096
|
| 185 |
-
rdma_accept_timeout = '15s'
|
| 186 |
-
rdma_listen_ethernet = true
|
| 187 |
-
reuse_port = false
|
| 188 |
-
|
| 189 |
-
[server.base.groups.processor]
|
| 190 |
-
enable_coroutines_pool = true
|
| 191 |
-
max_coroutines_num = 256
|
| 192 |
-
max_processing_requests_num = 4096
|
| 193 |
-
response_compression_level = 1
|
| 194 |
-
response_compression_threshold = '128KB'
|
| 195 |
-
|
| 196 |
-
[server.service]
|
| 197 |
-
allow_heartbeat_from_unregistered = true
|
| 198 |
-
authenticate = false
|
| 199 |
-
bootstrapping_length = '2min'
|
| 200 |
-
bump_routing_info_version_interval = '5s'
|
| 201 |
-
check_status_interval = '10s'
|
| 202 |
-
client_session_timeout = '20min'
|
| 203 |
-
enable_routinginfo_cache = true
|
| 204 |
-
extend_lease_check_release_version = true
|
| 205 |
-
extend_lease_interval = '10s'
|
| 206 |
-
heartbeat_fail_interval = '1min'
|
| 207 |
-
heartbeat_ignore_stale_targets = true
|
| 208 |
-
heartbeat_ignore_unknown_targets = false
|
| 209 |
-
heartbeat_timestamp_valid_window = '30s'
|
| 210 |
-
lease_length = '1min'
|
| 211 |
-
new_chain_bootstrap_interval = '2min'
|
| 212 |
-
only_accept_client_uuid = false
|
| 213 |
-
retry_times_on_txn_errors = -1
|
| 214 |
-
send_heartbeat = true
|
| 215 |
-
send_heartbeat_interval = '10s'
|
| 216 |
-
suspicious_lease_interval = '20s'
|
| 217 |
-
target_info_load_interval = '1s'
|
| 218 |
-
target_info_persist_batch = 1000
|
| 219 |
-
target_info_persist_interval = '1s'
|
| 220 |
-
try_adjust_target_order_as_preferred = false
|
| 221 |
-
update_chains_interval = '1s'
|
| 222 |
-
update_metrics_interval = '1s'
|
| 223 |
-
validate_lease_on_write = true
|
| 224 |
-
|
| 225 |
-
[server.service.retry_transaction]
|
| 226 |
-
max_backoff = '1s'
|
| 227 |
-
max_retry_count = 10
|
| 228 |
-
|
| 229 |
-
[server.service.user_cache]
|
| 230 |
-
buckets = 127
|
| 231 |
-
exist_ttl = '5min'
|
| 232 |
-
inexist_ttl = '10s'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/mgmtd_main_app.toml
DELETED
|
@@ -1,2 +0,0 @@
|
|
| 1 |
-
allow_empty_node_id = true
|
| 2 |
-
node_id = 0
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/mgmtd_main_launcher.toml
DELETED
|
@@ -1,44 +0,0 @@
|
|
| 1 |
-
allow_dev_version = true
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
use_memkv = false
|
| 4 |
-
|
| 5 |
-
[fdb]
|
| 6 |
-
casual_read_risky = false
|
| 7 |
-
clusterFile = ''
|
| 8 |
-
default_backoff = 0
|
| 9 |
-
enableMultipleClient = false
|
| 10 |
-
externalClientDir = ''
|
| 11 |
-
externalClientPath = ''
|
| 12 |
-
multipleClientThreadNum = 4
|
| 13 |
-
readonly = false
|
| 14 |
-
trace_file = ''
|
| 15 |
-
trace_format = 'json'
|
| 16 |
-
|
| 17 |
-
[ib_devices]
|
| 18 |
-
allow_no_usable_devices = false
|
| 19 |
-
allow_unknown_zone = true
|
| 20 |
-
default_network_zone = 'UNKNOWN'
|
| 21 |
-
default_pkey_index = 0
|
| 22 |
-
default_roce_pkey_index = 0
|
| 23 |
-
default_traffic_class = 0
|
| 24 |
-
device_filter = []
|
| 25 |
-
fork_safe = true
|
| 26 |
-
prefer_ibdevice = true
|
| 27 |
-
skip_inactive_ports = true
|
| 28 |
-
skip_unusable_device = true
|
| 29 |
-
subnets = []
|
| 30 |
-
|
| 31 |
-
[kv_engine]
|
| 32 |
-
use_memkv = false
|
| 33 |
-
|
| 34 |
-
[kv_engine.fdb]
|
| 35 |
-
casual_read_risky = false
|
| 36 |
-
clusterFile = ''
|
| 37 |
-
default_backoff = 0
|
| 38 |
-
enableMultipleClient = false
|
| 39 |
-
externalClientDir = ''
|
| 40 |
-
externalClientPath = ''
|
| 41 |
-
multipleClientThreadNum = 4
|
| 42 |
-
readonly = false
|
| 43 |
-
trace_file = ''
|
| 44 |
-
trace_format = 'json'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/monitor_collector_main.toml
DELETED
|
@@ -1,141 +0,0 @@
|
|
| 1 |
-
[common]
|
| 2 |
-
cluster_id = ''
|
| 3 |
-
|
| 4 |
-
[common.ib_devices]
|
| 5 |
-
allow_unknown_zone = true
|
| 6 |
-
default_network_zone = 'UNKNOWN'
|
| 7 |
-
device_filter = []
|
| 8 |
-
subnets = []
|
| 9 |
-
|
| 10 |
-
[[common.log.categories]]
|
| 11 |
-
categories = [ '.' ]
|
| 12 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 13 |
-
inherit = true
|
| 14 |
-
level = 'INFO'
|
| 15 |
-
propagate = 'NONE'
|
| 16 |
-
|
| 17 |
-
[[common.log.handlers]]
|
| 18 |
-
async = true
|
| 19 |
-
file_path = '/var/log/3fs/monitor_collector_main.log'
|
| 20 |
-
max_file_size = '100MB'
|
| 21 |
-
max_files = 10
|
| 22 |
-
name = 'normal'
|
| 23 |
-
rotate = true
|
| 24 |
-
rotate_on_open = false
|
| 25 |
-
start_level = 'NONE'
|
| 26 |
-
stream_type = 'STDERR'
|
| 27 |
-
writer_type = 'FILE'
|
| 28 |
-
|
| 29 |
-
[[common.log.handlers]]
|
| 30 |
-
async = false
|
| 31 |
-
file_path = '/var/log/3fs/monitor_collector_main-err.log'
|
| 32 |
-
max_file_size = '100MB'
|
| 33 |
-
max_files = 10
|
| 34 |
-
name = 'err'
|
| 35 |
-
rotate = true
|
| 36 |
-
rotate_on_open = false
|
| 37 |
-
start_level = 'ERR'
|
| 38 |
-
stream_type = 'STDERR'
|
| 39 |
-
writer_type = 'FILE'
|
| 40 |
-
|
| 41 |
-
[[common.log.handlers]]
|
| 42 |
-
async = false
|
| 43 |
-
file_path = '/var/log/3fs/monitor_collector_main-fatal.log'
|
| 44 |
-
max_file_size = '100MB'
|
| 45 |
-
max_files = 10
|
| 46 |
-
name = 'fatal'
|
| 47 |
-
rotate = true
|
| 48 |
-
rotate_on_open = false
|
| 49 |
-
start_level = 'FATAL'
|
| 50 |
-
stream_type = 'STDERR'
|
| 51 |
-
writer_type = 'STREAM'
|
| 52 |
-
|
| 53 |
-
[server.base.independent_thread_pool]
|
| 54 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 55 |
-
collect_stats = false
|
| 56 |
-
enable_work_stealing = false
|
| 57 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 58 |
-
num_bg_threads = 2
|
| 59 |
-
num_connect_threads = 2
|
| 60 |
-
num_io_threads = 2
|
| 61 |
-
num_proc_threads = 2
|
| 62 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 63 |
-
|
| 64 |
-
[server.base.thread_pool]
|
| 65 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 66 |
-
collect_stats = false
|
| 67 |
-
enable_work_stealing = false
|
| 68 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 69 |
-
num_bg_threads = 2
|
| 70 |
-
num_connect_threads = 2
|
| 71 |
-
num_io_threads = 2
|
| 72 |
-
num_proc_threads = 2
|
| 73 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 74 |
-
|
| 75 |
-
[[server.base.groups]]
|
| 76 |
-
#default_timeout = '1s'
|
| 77 |
-
#drop_connections_interval = '1h'
|
| 78 |
-
network_type = 'TCP'
|
| 79 |
-
services = [ 'MonitorCollector' ]
|
| 80 |
-
use_independent_thread_pool = false
|
| 81 |
-
|
| 82 |
-
[server.base.groups.io_worker]
|
| 83 |
-
num_event_loop = 1
|
| 84 |
-
rdma_connect_timeout = '5s'
|
| 85 |
-
read_write_rdma_in_event_thread = false
|
| 86 |
-
read_write_tcp_in_event_thread = false
|
| 87 |
-
tcp_connect_timeout = '1s'
|
| 88 |
-
wait_to_retry_send = '100ms'
|
| 89 |
-
|
| 90 |
-
[server.base.groups.io_worker.ibsocket]
|
| 91 |
-
buf_ack_batch = 8
|
| 92 |
-
buf_signal_batch = 8
|
| 93 |
-
buf_size = 16384
|
| 94 |
-
drop_connections = 0
|
| 95 |
-
event_ack_batch = 128
|
| 96 |
-
#gid_index = 0
|
| 97 |
-
max_rd_atomic = 16
|
| 98 |
-
max_rdma_wr = 128
|
| 99 |
-
max_rdma_wr_per_post = 32
|
| 100 |
-
max_sge = 16
|
| 101 |
-
min_rnr_timer = 1
|
| 102 |
-
pkey_index = 0
|
| 103 |
-
record_bytes_per_peer = false
|
| 104 |
-
record_latency_per_peer = false
|
| 105 |
-
retry_cnt = 7
|
| 106 |
-
rnr_retry = 0
|
| 107 |
-
send_buf_cnt = 32
|
| 108 |
-
sl = 0
|
| 109 |
-
start_psn = 0
|
| 110 |
-
timeout = 14
|
| 111 |
-
traffic_class = 0
|
| 112 |
-
|
| 113 |
-
[server.base.groups.io_worker.transport_pool]
|
| 114 |
-
max_connections = 1
|
| 115 |
-
|
| 116 |
-
[server.base.groups.listener]
|
| 117 |
-
filter_list = []
|
| 118 |
-
listen_port = 10000
|
| 119 |
-
listen_queue_depth = 4096
|
| 120 |
-
rdma_listen_ethernet = true
|
| 121 |
-
reuse_port = false
|
| 122 |
-
|
| 123 |
-
[server.base.groups.processor]
|
| 124 |
-
enable_coroutines_pool = true
|
| 125 |
-
max_coroutines_num = 256
|
| 126 |
-
max_processing_requests_num = 4096
|
| 127 |
-
|
| 128 |
-
[server.monitor_collector]
|
| 129 |
-
batch_commit_size = 4096
|
| 130 |
-
conn_threads = 32
|
| 131 |
-
queue_capacity = 204800
|
| 132 |
-
|
| 133 |
-
[server.monitor_collector.reporter]
|
| 134 |
-
type = 'clickhouse'
|
| 135 |
-
|
| 136 |
-
[server.monitor_collector.reporter.clickhouse]
|
| 137 |
-
db = ''
|
| 138 |
-
host = ''
|
| 139 |
-
passwd = ''
|
| 140 |
-
port = ''
|
| 141 |
-
user = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/storage_main.toml
DELETED
|
@@ -1,510 +0,0 @@
|
|
| 1 |
-
[[common.log.categories]]
|
| 2 |
-
categories = [ '.' ]
|
| 3 |
-
handlers = [ 'normal', 'err', 'fatal' ]
|
| 4 |
-
inherit = true
|
| 5 |
-
level = 'INFO'
|
| 6 |
-
propagate = 'NONE'
|
| 7 |
-
|
| 8 |
-
[[common.log.handlers]]
|
| 9 |
-
async = true
|
| 10 |
-
file_path = '/var/log/3fs/storage_main.log'
|
| 11 |
-
max_file_size = '100MB'
|
| 12 |
-
max_files = 10
|
| 13 |
-
name = 'normal'
|
| 14 |
-
rotate = true
|
| 15 |
-
rotate_on_open = false
|
| 16 |
-
start_level = 'NONE'
|
| 17 |
-
stream_type = 'STDERR'
|
| 18 |
-
writer_type = 'FILE'
|
| 19 |
-
|
| 20 |
-
[[common.log.handlers]]
|
| 21 |
-
async = false
|
| 22 |
-
file_path = '/var/log/3fs/storage_main-err.log'
|
| 23 |
-
max_file_size = '100MB'
|
| 24 |
-
max_files = 10
|
| 25 |
-
name = 'err'
|
| 26 |
-
rotate = true
|
| 27 |
-
rotate_on_open = false
|
| 28 |
-
start_level = 'ERR'
|
| 29 |
-
stream_type = 'STDERR'
|
| 30 |
-
writer_type = 'FILE'
|
| 31 |
-
|
| 32 |
-
[[common.log.handlers]]
|
| 33 |
-
async = false
|
| 34 |
-
file_path = '/var/log/3fs/storage_main-fatal.log'
|
| 35 |
-
max_file_size = '100MB'
|
| 36 |
-
max_files = 10
|
| 37 |
-
name = 'fatal'
|
| 38 |
-
rotate = true
|
| 39 |
-
rotate_on_open = false
|
| 40 |
-
start_level = 'FATAL'
|
| 41 |
-
stream_type = 'STDERR'
|
| 42 |
-
writer_type = 'STREAM'
|
| 43 |
-
|
| 44 |
-
[common.memory]
|
| 45 |
-
prof_active = false
|
| 46 |
-
prof_prefix = ''
|
| 47 |
-
|
| 48 |
-
[common.monitor]
|
| 49 |
-
collect_period = '1s'
|
| 50 |
-
num_collectors = 1
|
| 51 |
-
|
| 52 |
-
[[common.monitor.reporters]]
|
| 53 |
-
type = 'monitor_collector'
|
| 54 |
-
|
| 55 |
-
[common.monitor.reporters.monitor_collector]
|
| 56 |
-
remote_ip = ""
|
| 57 |
-
|
| 58 |
-
[server]
|
| 59 |
-
speed_up_quit = true
|
| 60 |
-
use_coroutines_pool_read = true
|
| 61 |
-
use_coroutines_pool_update = true
|
| 62 |
-
|
| 63 |
-
[server.aio_read_worker]
|
| 64 |
-
enable_io_uring = true
|
| 65 |
-
inflight_control_offset = 128
|
| 66 |
-
ioengine = 'libaio'
|
| 67 |
-
max_events = 512
|
| 68 |
-
min_complete = 128
|
| 69 |
-
num_threads = 32
|
| 70 |
-
queue_size = 4096
|
| 71 |
-
wait_all_inflight = false
|
| 72 |
-
|
| 73 |
-
[server.allocate_worker]
|
| 74 |
-
max_remain_groups = 8
|
| 75 |
-
max_remain_ultra_groups = 4
|
| 76 |
-
max_reserved_chunks = '1GB'
|
| 77 |
-
min_remain_groups = 4
|
| 78 |
-
min_remain_ultra_groups = 0
|
| 79 |
-
|
| 80 |
-
[server.base.independent_thread_pool]
|
| 81 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 82 |
-
collect_stats = false
|
| 83 |
-
enable_work_stealing = false
|
| 84 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 85 |
-
num_bg_threads = 2
|
| 86 |
-
num_connect_threads = 2
|
| 87 |
-
num_io_threads = 2
|
| 88 |
-
num_proc_threads = 2
|
| 89 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 90 |
-
|
| 91 |
-
[server.base.thread_pool]
|
| 92 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 93 |
-
collect_stats = false
|
| 94 |
-
enable_work_stealing = false
|
| 95 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 96 |
-
num_bg_threads = 2
|
| 97 |
-
num_connect_threads = 2
|
| 98 |
-
num_io_threads = 32
|
| 99 |
-
num_proc_threads = 32
|
| 100 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 101 |
-
|
| 102 |
-
[[server.base.groups]]
|
| 103 |
-
check_connections_interval = '1min'
|
| 104 |
-
connection_expiration_time = '1day'
|
| 105 |
-
network_type = 'RDMA'
|
| 106 |
-
services = [ 'StorageSerde' ]
|
| 107 |
-
use_independent_thread_pool = false
|
| 108 |
-
|
| 109 |
-
[server.base.groups.io_worker]
|
| 110 |
-
num_event_loop = 1
|
| 111 |
-
rdma_connect_timeout = '5s'
|
| 112 |
-
read_write_rdma_in_event_thread = false
|
| 113 |
-
read_write_tcp_in_event_thread = false
|
| 114 |
-
tcp_connect_timeout = '1s'
|
| 115 |
-
wait_to_retry_send = '100ms'
|
| 116 |
-
|
| 117 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 118 |
-
max_concurrency = 4
|
| 119 |
-
|
| 120 |
-
[server.base.groups.io_worker.ibsocket]
|
| 121 |
-
buf_ack_batch = 8
|
| 122 |
-
buf_signal_batch = 8
|
| 123 |
-
buf_size = 16384
|
| 124 |
-
drain_timeout = '5s'
|
| 125 |
-
drop_connections = 0
|
| 126 |
-
event_ack_batch = 128
|
| 127 |
-
max_rd_atomic = 16
|
| 128 |
-
max_rdma_wr = 128
|
| 129 |
-
max_rdma_wr_per_post = 32
|
| 130 |
-
max_sge = 16
|
| 131 |
-
min_rnr_timer = 1
|
| 132 |
-
record_bytes_per_peer = false
|
| 133 |
-
record_latency_per_peer = false
|
| 134 |
-
retry_cnt = 7
|
| 135 |
-
rnr_retry = 0
|
| 136 |
-
send_buf_cnt = 32
|
| 137 |
-
sl = 0
|
| 138 |
-
start_psn = 0
|
| 139 |
-
timeout = 14
|
| 140 |
-
|
| 141 |
-
[server.base.groups.io_worker.transport_pool]
|
| 142 |
-
max_connections = 1
|
| 143 |
-
|
| 144 |
-
[server.base.groups.listener]
|
| 145 |
-
custom_tcp_nic_prefix = ''
|
| 146 |
-
domain_socket_index = 1
|
| 147 |
-
filter_list = []
|
| 148 |
-
listen_port = 8000
|
| 149 |
-
listen_queue_depth = 4096
|
| 150 |
-
rdma_accept_timeout = '15s'
|
| 151 |
-
rdma_listen_ethernet = true
|
| 152 |
-
reuse_port = false
|
| 153 |
-
|
| 154 |
-
[server.base.groups.processor]
|
| 155 |
-
enable_coroutines_pool = true
|
| 156 |
-
max_coroutines_num = 256
|
| 157 |
-
max_processing_requests_num = 4096
|
| 158 |
-
response_compression_level = 1
|
| 159 |
-
response_compression_threshold = '128KB'
|
| 160 |
-
|
| 161 |
-
[[server.base.groups]]
|
| 162 |
-
check_connections_interval = '1min'
|
| 163 |
-
connection_expiration_time = '1day'
|
| 164 |
-
network_type = 'TCP'
|
| 165 |
-
services = [ 'Core' ]
|
| 166 |
-
use_independent_thread_pool = true
|
| 167 |
-
|
| 168 |
-
[server.base.groups.io_worker]
|
| 169 |
-
num_event_loop = 1
|
| 170 |
-
rdma_connect_timeout = '5s'
|
| 171 |
-
read_write_rdma_in_event_thread = false
|
| 172 |
-
read_write_tcp_in_event_thread = false
|
| 173 |
-
tcp_connect_timeout = '1s'
|
| 174 |
-
wait_to_retry_send = '100ms'
|
| 175 |
-
|
| 176 |
-
[server.base.groups.io_worker.connect_concurrency_limiter]
|
| 177 |
-
max_concurrency = 4
|
| 178 |
-
|
| 179 |
-
[server.base.groups.io_worker.ibsocket]
|
| 180 |
-
buf_ack_batch = 8
|
| 181 |
-
buf_signal_batch = 8
|
| 182 |
-
buf_size = 16384
|
| 183 |
-
drain_timeout = '5s'
|
| 184 |
-
drop_connections = 0
|
| 185 |
-
event_ack_batch = 128
|
| 186 |
-
max_rd_atomic = 16
|
| 187 |
-
max_rdma_wr = 128
|
| 188 |
-
max_rdma_wr_per_post = 32
|
| 189 |
-
max_sge = 16
|
| 190 |
-
min_rnr_timer = 1
|
| 191 |
-
record_bytes_per_peer = false
|
| 192 |
-
record_latency_per_peer = false
|
| 193 |
-
retry_cnt = 7
|
| 194 |
-
rnr_retry = 0
|
| 195 |
-
send_buf_cnt = 32
|
| 196 |
-
sl = 0
|
| 197 |
-
start_psn = 0
|
| 198 |
-
timeout = 14
|
| 199 |
-
|
| 200 |
-
[server.base.groups.io_worker.transport_pool]
|
| 201 |
-
max_connections = 1
|
| 202 |
-
|
| 203 |
-
[server.base.groups.listener]
|
| 204 |
-
domain_socket_index = 1
|
| 205 |
-
filter_list = []
|
| 206 |
-
listen_port = 9000
|
| 207 |
-
listen_queue_depth = 4096
|
| 208 |
-
rdma_accept_timeout = '15s'
|
| 209 |
-
rdma_listen_ethernet = true
|
| 210 |
-
reuse_port = false
|
| 211 |
-
|
| 212 |
-
[server.base.groups.processor]
|
| 213 |
-
enable_coroutines_pool = true
|
| 214 |
-
max_coroutines_num = 256
|
| 215 |
-
max_processing_requests_num = 4096
|
| 216 |
-
response_compression_level = 1
|
| 217 |
-
response_compression_threshold = '128KB'
|
| 218 |
-
|
| 219 |
-
[server.buffer_pool]
|
| 220 |
-
big_rdmabuf_count = 64
|
| 221 |
-
big_rdmabuf_size = '64MB'
|
| 222 |
-
rdmabuf_count = 1024
|
| 223 |
-
rdmabuf_size = '4MB'
|
| 224 |
-
|
| 225 |
-
[server.check_worker]
|
| 226 |
-
disk_low_space_threshold = 0.95999999999999996
|
| 227 |
-
disk_reject_create_chunk_threshold = 0.97999999999999998
|
| 228 |
-
emergency_recycling_ratio = 0.94999999999999996
|
| 229 |
-
update_target_size_interval = '10s'
|
| 230 |
-
|
| 231 |
-
[server.client]
|
| 232 |
-
default_compression_level = 0
|
| 233 |
-
default_compression_threshold = '128KB'
|
| 234 |
-
default_log_long_running_threshold = '0ns'
|
| 235 |
-
default_report_metrics = false
|
| 236 |
-
default_send_retry_times = 1
|
| 237 |
-
default_timeout = '1s'
|
| 238 |
-
enable_rdma_control = false
|
| 239 |
-
force_use_tcp = false
|
| 240 |
-
|
| 241 |
-
[server.client.io_worker]
|
| 242 |
-
num_event_loop = 1
|
| 243 |
-
rdma_connect_timeout = '5s'
|
| 244 |
-
read_write_rdma_in_event_thread = false
|
| 245 |
-
read_write_tcp_in_event_thread = false
|
| 246 |
-
tcp_connect_timeout = '1s'
|
| 247 |
-
wait_to_retry_send = '100ms'
|
| 248 |
-
|
| 249 |
-
[server.client.io_worker.connect_concurrency_limiter]
|
| 250 |
-
max_concurrency = 4
|
| 251 |
-
|
| 252 |
-
[server.client.io_worker.ibsocket]
|
| 253 |
-
buf_ack_batch = 8
|
| 254 |
-
buf_signal_batch = 8
|
| 255 |
-
buf_size = 16384
|
| 256 |
-
drain_timeout = '5s'
|
| 257 |
-
drop_connections = 0
|
| 258 |
-
event_ack_batch = 128
|
| 259 |
-
max_rd_atomic = 16
|
| 260 |
-
max_rdma_wr = 128
|
| 261 |
-
max_rdma_wr_per_post = 32
|
| 262 |
-
max_sge = 16
|
| 263 |
-
min_rnr_timer = 1
|
| 264 |
-
record_bytes_per_peer = false
|
| 265 |
-
record_latency_per_peer = false
|
| 266 |
-
retry_cnt = 7
|
| 267 |
-
rnr_retry = 0
|
| 268 |
-
send_buf_cnt = 32
|
| 269 |
-
sl = 0
|
| 270 |
-
start_psn = 0
|
| 271 |
-
timeout = 14
|
| 272 |
-
|
| 273 |
-
[server.client.io_worker.transport_pool]
|
| 274 |
-
max_connections = 1
|
| 275 |
-
|
| 276 |
-
[server.client.processor]
|
| 277 |
-
enable_coroutines_pool = true
|
| 278 |
-
max_coroutines_num = 256
|
| 279 |
-
max_processing_requests_num = 4096
|
| 280 |
-
response_compression_level = 1
|
| 281 |
-
response_compression_threshold = '128KB'
|
| 282 |
-
|
| 283 |
-
[server.client.rdma_control]
|
| 284 |
-
max_concurrent_transmission = 64
|
| 285 |
-
|
| 286 |
-
[server.client.thread_pool]
|
| 287 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 288 |
-
collect_stats = false
|
| 289 |
-
enable_work_stealing = false
|
| 290 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 291 |
-
num_bg_threads = 2
|
| 292 |
-
num_connect_threads = 2
|
| 293 |
-
num_io_threads = 2
|
| 294 |
-
num_proc_threads = 2
|
| 295 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 296 |
-
|
| 297 |
-
[server.coroutines_pool_default]
|
| 298 |
-
coroutines_num = 64
|
| 299 |
-
queue_size = 1024
|
| 300 |
-
threads_num = 8
|
| 301 |
-
|
| 302 |
-
[server.coroutines_pool_read]
|
| 303 |
-
coroutines_num = 64
|
| 304 |
-
queue_size = 1024
|
| 305 |
-
threads_num = 8
|
| 306 |
-
|
| 307 |
-
[server.coroutines_pool_sync]
|
| 308 |
-
coroutines_num = 64
|
| 309 |
-
queue_size = 1024
|
| 310 |
-
threads_num = 8
|
| 311 |
-
|
| 312 |
-
[server.coroutines_pool_update]
|
| 313 |
-
coroutines_num = 64
|
| 314 |
-
queue_size = 1024
|
| 315 |
-
threads_num = 8
|
| 316 |
-
|
| 317 |
-
[server.dump_worker]
|
| 318 |
-
dump_interval = '1day'
|
| 319 |
-
dump_root_path = ''
|
| 320 |
-
high_cpu_usage_threshold = 100
|
| 321 |
-
|
| 322 |
-
[server.forward_client]
|
| 323 |
-
default_compression_level = 0
|
| 324 |
-
default_compression_threshold = '128KB'
|
| 325 |
-
default_log_long_running_threshold = '0ns'
|
| 326 |
-
default_report_metrics = false
|
| 327 |
-
default_send_retry_times = 1
|
| 328 |
-
default_timeout = '1s'
|
| 329 |
-
enable_rdma_control = false
|
| 330 |
-
force_use_tcp = false
|
| 331 |
-
|
| 332 |
-
[server.forward_client.io_worker]
|
| 333 |
-
num_event_loop = 1
|
| 334 |
-
rdma_connect_timeout = '5s'
|
| 335 |
-
read_write_rdma_in_event_thread = false
|
| 336 |
-
read_write_tcp_in_event_thread = false
|
| 337 |
-
tcp_connect_timeout = '1s'
|
| 338 |
-
wait_to_retry_send = '100ms'
|
| 339 |
-
|
| 340 |
-
[server.forward_client.io_worker.connect_concurrency_limiter]
|
| 341 |
-
max_concurrency = 4
|
| 342 |
-
|
| 343 |
-
[server.forward_client.io_worker.ibsocket]
|
| 344 |
-
buf_ack_batch = 8
|
| 345 |
-
buf_signal_batch = 8
|
| 346 |
-
buf_size = 16384
|
| 347 |
-
drain_timeout = '5s'
|
| 348 |
-
drop_connections = 0
|
| 349 |
-
event_ack_batch = 128
|
| 350 |
-
max_rd_atomic = 16
|
| 351 |
-
max_rdma_wr = 128
|
| 352 |
-
max_rdma_wr_per_post = 32
|
| 353 |
-
max_sge = 16
|
| 354 |
-
min_rnr_timer = 1
|
| 355 |
-
record_bytes_per_peer = false
|
| 356 |
-
record_latency_per_peer = false
|
| 357 |
-
retry_cnt = 7
|
| 358 |
-
rnr_retry = 0
|
| 359 |
-
send_buf_cnt = 32
|
| 360 |
-
sl = 0
|
| 361 |
-
start_psn = 0
|
| 362 |
-
timeout = 14
|
| 363 |
-
|
| 364 |
-
[server.forward_client.io_worker.transport_pool]
|
| 365 |
-
max_connections = 1
|
| 366 |
-
|
| 367 |
-
[server.forward_client.processor]
|
| 368 |
-
enable_coroutines_pool = true
|
| 369 |
-
max_coroutines_num = 256
|
| 370 |
-
max_processing_requests_num = 4096
|
| 371 |
-
response_compression_level = 1
|
| 372 |
-
response_compression_threshold = '128KB'
|
| 373 |
-
|
| 374 |
-
[server.forward_client.rdma_control]
|
| 375 |
-
max_concurrent_transmission = 64
|
| 376 |
-
|
| 377 |
-
[server.forward_client.thread_pool]
|
| 378 |
-
bg_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 379 |
-
collect_stats = false
|
| 380 |
-
enable_work_stealing = false
|
| 381 |
-
io_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 382 |
-
num_bg_threads = 2
|
| 383 |
-
num_connect_threads = 2
|
| 384 |
-
num_io_threads = 2
|
| 385 |
-
num_proc_threads = 2
|
| 386 |
-
proc_thread_pool_stratetry = 'SHARED_QUEUE'
|
| 387 |
-
|
| 388 |
-
[server.mgmtd]
|
| 389 |
-
accept_incomplete_routing_info_during_mgmtd_bootstrapping = true
|
| 390 |
-
auto_extend_client_session_interval = '10s'
|
| 391 |
-
auto_heartbeat_interval = '10s'
|
| 392 |
-
auto_refresh_interval = '10s'
|
| 393 |
-
enable_auto_extend_client_session = false
|
| 394 |
-
enable_auto_heartbeat = true
|
| 395 |
-
enable_auto_refresh = true
|
| 396 |
-
mgmtd_server_addresses = []
|
| 397 |
-
work_queue_size = 100
|
| 398 |
-
|
| 399 |
-
[server.reliable_forwarding]
|
| 400 |
-
max_inline_forward_bytes = '0'
|
| 401 |
-
retry_first_wait = '100ms'
|
| 402 |
-
retry_max_wait = '1s'
|
| 403 |
-
retry_total_time = '1min'
|
| 404 |
-
|
| 405 |
-
[server.reliable_update]
|
| 406 |
-
clean_up_expired_clients = false
|
| 407 |
-
expired_clients_timeout = '1h'
|
| 408 |
-
|
| 409 |
-
[server.storage]
|
| 410 |
-
apply_transmission_before_getting_semaphore = true
|
| 411 |
-
batch_read_ignore_chain_version = false
|
| 412 |
-
batch_read_job_split_size = 1024
|
| 413 |
-
max_concurrent_rdma_reads = 256
|
| 414 |
-
max_concurrent_rdma_writes = 256
|
| 415 |
-
max_num_results_per_query = 100
|
| 416 |
-
post_buffer_per_bytes = '64KB'
|
| 417 |
-
rdma_transmission_req_timeout = '0ns'
|
| 418 |
-
read_only = false
|
| 419 |
-
|
| 420 |
-
[server.storage.event_trace_log]
|
| 421 |
-
dump_interval = '30s'
|
| 422 |
-
enabled = true
|
| 423 |
-
max_num_writers = 1
|
| 424 |
-
max_row_group_length = 100000
|
| 425 |
-
trace_file_dir = '.'
|
| 426 |
-
|
| 427 |
-
[server.storage.write_worker]
|
| 428 |
-
bg_num_threads = 8
|
| 429 |
-
num_threads = 32
|
| 430 |
-
queue_size = 4096
|
| 431 |
-
|
| 432 |
-
[server.sync_meta_kv_worker]
|
| 433 |
-
sync_meta_kv_interval = '1min'
|
| 434 |
-
|
| 435 |
-
[server.sync_worker]
|
| 436 |
-
batch_size = 16
|
| 437 |
-
full_sync_chains = []
|
| 438 |
-
full_sync_level = 'NONE'
|
| 439 |
-
num_channels = 1024
|
| 440 |
-
num_threads = 16
|
| 441 |
-
sync_start_timeout = '10s'
|
| 442 |
-
|
| 443 |
-
[server.sync_worker.batch_concurrency_limiter]
|
| 444 |
-
max_concurrency = 64
|
| 445 |
-
|
| 446 |
-
[server.sync_worker.pool]
|
| 447 |
-
coroutines_num = 64
|
| 448 |
-
enable_work_stealing = false
|
| 449 |
-
queue_size = 1024
|
| 450 |
-
|
| 451 |
-
[server.targets]
|
| 452 |
-
allow_disk_without_uuid = false
|
| 453 |
-
collect_all_fds = true
|
| 454 |
-
create_engine_path = true
|
| 455 |
-
space_info_cache_timeout = '5s'
|
| 456 |
-
target_num_per_path = 0
|
| 457 |
-
target_paths = []
|
| 458 |
-
|
| 459 |
-
[server.targets.storage_target]
|
| 460 |
-
force_persist = true
|
| 461 |
-
kv_path = ''
|
| 462 |
-
migrate_kv_store = false
|
| 463 |
-
mutex_num = 257
|
| 464 |
-
point_query_strategy = 'NONE'
|
| 465 |
-
|
| 466 |
-
[server.targets.storage_target.file_store]
|
| 467 |
-
preopen_chunk_size_list = []
|
| 468 |
-
|
| 469 |
-
[server.targets.storage_target.kv_store]
|
| 470 |
-
create_if_missing = false
|
| 471 |
-
integrate_leveldb_log = false
|
| 472 |
-
leveldb_block_cache_size = '8GB'
|
| 473 |
-
leveldb_iterator_fill_cache = true
|
| 474 |
-
leveldb_shared_block_cache = true
|
| 475 |
-
leveldb_sst_file_size = '16MB'
|
| 476 |
-
leveldb_write_buffer_size = '16MB'
|
| 477 |
-
rocksdb_avoid_flush_during_recovery = false
|
| 478 |
-
rocksdb_avoid_flush_during_shutdown = false
|
| 479 |
-
rocksdb_avoid_unnecessary_blocking_io = false
|
| 480 |
-
rocksdb_block_cache_size = '8GB'
|
| 481 |
-
rocksdb_block_size = '4KB'
|
| 482 |
-
rocksdb_bloom_filter_bits_per_key = 10
|
| 483 |
-
rocksdb_compression = 'kNoCompression'
|
| 484 |
-
rocksdb_enable_bloom_filter = true
|
| 485 |
-
rocksdb_enable_pipelined_write = false
|
| 486 |
-
rocksdb_enable_prefix_transform = true
|
| 487 |
-
rocksdb_keep_log_file_num = 10
|
| 488 |
-
rocksdb_level0_file_num_compaction_trigger = 4
|
| 489 |
-
rocksdb_lowest_used_cache_tier = 'kNonVolatileBlockTier'
|
| 490 |
-
rocksdb_max_manifest_file_size = '64MB'
|
| 491 |
-
rocksdb_num_levels = 7
|
| 492 |
-
rocksdb_prepopulate_block_cache = 'kDisable'
|
| 493 |
-
rocksdb_readahead_size = '2MB'
|
| 494 |
-
rocksdb_shared_block_cache = true
|
| 495 |
-
rocksdb_stats_dump_period = '2min'
|
| 496 |
-
rocksdb_target_file_size_base = '64MB'
|
| 497 |
-
rocksdb_target_file_size_multiplier = 1
|
| 498 |
-
rocksdb_threads_num = 8
|
| 499 |
-
rocksdb_unordered_write = false
|
| 500 |
-
rocksdb_wal_recovery_mode = 'kTolerateCorruptedTailRecords'
|
| 501 |
-
rocksdb_write_buffer_size = '16MB'
|
| 502 |
-
sync_when_write = true
|
| 503 |
-
type = 'LevelDB'
|
| 504 |
-
|
| 505 |
-
[server.targets.storage_target.meta_store]
|
| 506 |
-
allocate_size = '256MB'
|
| 507 |
-
punch_hole_batch_size = 16
|
| 508 |
-
recycle_batch_size = 256
|
| 509 |
-
removed_chunk_expiration_time = '3day'
|
| 510 |
-
removed_chunk_force_recycled_time = '1h'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
asian_ai/chinese/3FS/configs/storage_main_app.toml
DELETED
|
@@ -1,2 +0,0 @@
|
|
| 1 |
-
allow_empty_node_id = true
|
| 2 |
-
node_id = 0
|
|
|
|
|
|
|
|
|