摘要: C++中只用指针而无需完整类型定义的技巧与原理 在 C++ 里,如果你只用指针来引用一个类型,而不直接使用这个类型的成员或实例,是可以不需要完整定义该类型的,这叫做前向声明(forward declaration)。 1. 例子: #include <iostream> // 前向声明(不需要包含完 阅读全文
posted @ 2025-08-12 21:58 苏格拉底的落泪 阅读(3) 评论(0) 推荐(0)
摘要: 移动多个主机到root-default: # 将指定主机移动到default根节点下 ceph osd crush move <hostname> root=default # 示例:将node1主机移动到default根节点 ceph osd crush move node1 root=defau 阅读全文
posted @ 2025-08-08 11:25 苏格拉底的落泪 阅读(3) 评论(0) 推荐(0)
摘要: 函数nfs4_op_open解析 typedef enum { CLAIM_NULL = 0, CLAIM_PREVIOUS = 1, CLAIM_DELEGATE_CUR = 2, CLAIM_DELEGATE_PREV = 3, CLAIM_FH = 4, CLAIM_DELEG_PREV_FH 阅读全文
posted @ 2025-08-07 22:16 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: struct fuse_lowlevel_ops解析-① void (*setattr)( fuse_req_t req, fuse_ino_t ino, struct stat *attr, int to_set, struct fuse_file_info *fi ); setattr 的 to 阅读全文
posted @ 2025-08-06 20:54 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: folly::atomic_shared_ptr folly::atomic_shared_ptr<T> 是 Facebook 的 Folly 库提供的一个 线程安全的 std::shared_ptr 原子封装器。它弥补了标准 C++ 中 std::shared_ptr 不能直接进行原子读写的缺陷( 阅读全文
posted @ 2025-07-28 11:16 苏格拉底的落泪 阅读(11) 评论(0) 推荐(0)
摘要: folly::partial #include <folly/Functional.h> #include <iostream> void print(int a, int b, int c) { std::cout << a << ", " << b << ", " << c << std::en 阅读全文
posted @ 2025-07-25 09:39 苏格拉底的落泪 阅读(3) 评论(0) 推荐(0)
摘要: RDMA基础 参考资料 1. RDMA基本元素 阅读全文
posted @ 2025-07-16 15:48 苏格拉底的落泪 阅读(5) 评论(0) 推荐(0)
摘要: 函数posix_memalign 函数posix_memalign原型: #include <stdlib.h> int posix_memalign(void **memptr, size_t alignment, size_t size); 参数说明 memptr: 双重指针,用于存储分配的内存 阅读全文
posted @ 2025-07-16 10:20 苏格拉底的落泪 阅读(25) 评论(0) 推荐(0)
摘要: match #[derive(Debug, Clone)] struct User { name: String, is_admin: bool, active: bool, } #[derive(Debug)] struct Request { action: String, require_ad 阅读全文
posted @ 2025-07-08 16:21 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: 枚举 Option<T> 概览 enum Option<T> { Some(T), None, } Some(T):表示有值。 None:表示无值(空值、未定义、找不到等)。 fn find_even(numbers: &[i32]) -> Option<i32> { for &n in numbe 阅读全文
posted @ 2025-07-05 17:38 苏格拉底的落泪 阅读(1) 评论(0) 推荐(0)
摘要: trait trait 可以类比其他语言中的 接口(interface) 或 抽象类。它定义了一组方法签名,但不实现具体逻辑,具体逻辑由实现该 trait 的类型提供。 trait TraitName { fn method(&self); } 然后用 impl 为类型实现这个 trait: str 阅读全文
posted @ 2025-07-05 16:36 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: 生命周期 当函数签名中没有显式生命周期参数时,Rust 会根据以下三条规则自动推断: 1. 每个引用参数都有自己的生命周期参数。 例如,函数有两个引用参数,Rust 会假设它们有不同的生命周期: fn foo(x: &i32, y: &i32) -> i32 { ... } // 自动推断为: fn 阅读全文
posted @ 2025-07-05 14:40 苏格拉底的落泪 阅读(10) 评论(0) 推荐(0)
摘要: 数组 1. 显示初始化 let a: [i32; 3] = [1, 2, 3]; // 类型:[i32; 3] [i32; 3] 表示:长度为 3 的 i32 数组。 元素数量固定,不能动态改变。 2. 使用重复值初始化 let b = [0; 5]; // 等价于 [0, 0, 0, 0, 0] 阅读全文
posted @ 2025-07-05 14:06 苏格拉底的落泪 阅读(10) 评论(0) 推荐(0)
摘要: 元组结构体 // 普通结构体,字段有名字 struct Person { name: String, age: u32, } // 元组结构体,字段按位置访问 struct Color(u8, u8, u8); // 元组结构体(单字段),用于封装某个类型 struct Wrapper(Vec<i3 阅读全文
posted @ 2025-07-04 16:32 苏格拉底的落泪 阅读(7) 评论(0) 推荐(0)
摘要: 结构体 为什么会有多个 impl Engine? 组织代码:把一部分方法放一个 impl,另一部分放另一个 impl,比如基础方法和扩展方法分开写。 实现不同 trait:通常用 impl Engine 实现类型自身的方法,再用 impl Trait for Engine 实现某个 trait。 分 阅读全文
posted @ 2025-07-04 14:51 苏格拉底的落泪 阅读(2) 评论(0) 推荐(0)
摘要: pub mod user { // 结构体是 pub 的 pub struct User { name: String, // 字段默认是私有的 } impl User { pub fn new(name: &str) -> Self { User { name: name.to_string(), 阅读全文
posted @ 2025-07-04 14:49 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: Box use std::ptr; struct MyStruct { value: i32, } impl MyStruct { fn new(val: i32) -> Self { Self { value: val } } fn print(&self) { println!("MyStruc 阅读全文
posted @ 2025-07-04 14:20 苏格拉底的落泪 阅读(4) 评论(0) 推荐(0)
摘要: rdma命令 列出本机的 RDMA(IB 或 RoCE)设备信息 ibv_devinfo 输出: [root@openeuler ~]# ibv_devinfo hca_id: rxe0 transport: InfiniBand (0) fw_ver: 0.0.0 node_guid: 020c: 阅读全文
posted @ 2025-06-20 15:43 苏格拉底的落泪 阅读(21) 评论(0) 推荐(0)
摘要: cmake -E 命令 功能说明 cmake -E make_directory dir 创建目录(跨平台的 mkdir) cmake -E copy file dest 拷贝文件 cmake -E copy_directory src dest 拷贝整个目录 cmake -E remove fil 阅读全文
posted @ 2025-06-10 21:31 苏格拉底的落泪 阅读(6) 评论(0) 推荐(0)
摘要: 参考资料 1. cephfs如何配置多主(多活) mds 阅读全文
posted @ 2025-05-23 09:47 苏格拉底的落泪 阅读(5) 评论(0) 推荐(0)
摘要: 成员函数指针 在 C++ 中,类成员指针(pointer-to-member)是指向类的成员(可以是数据成员或成员函数)的指针。它和普通指针不一样,必须通过对象或者对象指针来访问。 数据成员指针声明方式: 类型 类名::*指针名; 示例 #include <iostream> struct MyCl 阅读全文
posted @ 2025-05-22 14:07 苏格拉底的落泪 阅读(8) 评论(0) 推荐(0)
摘要: centos7进入终端显示-bash-4.2 处理 解决方法: cp /etc/skel/.bashrc /root/ cp /etc/skel/.bash_profile /root/ 参考资料 1. Centos7 进入终端显示-bash-4.2 处理 阅读全文
posted @ 2025-05-14 21:43 苏格拉底的落泪 阅读(74) 评论(0) 推荐(0)
摘要: DeepSeek 3FS集群部署 dnf install rdma-core-devel dnf install gperftools-devel dnf install python3-devel cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebI 阅读全文
posted @ 2025-05-07 14:12 苏格拉底的落泪 阅读(74) 评论(0) 推荐(0)
摘要: 成员函数后加&的作用 参考资料 1. C++成员函数后加&的作用是什么? 阅读全文
posted @ 2025-04-27 09:11 苏格拉底的落泪 阅读(14) 评论(0) 推荐(0)
摘要: linux下golang环境安装 package main import "fmt" func main() { fmt.Printf("Hello,World!\n") } 参考资料 1. Linux下golang环境安装 阅读全文
posted @ 2025-04-26 20:45 苏格拉底的落泪 阅读(10) 评论(0) 推荐(0)
摘要: rename函数 参考资料 1. rename函数解析 阅读全文
posted @ 2025-04-26 20:42 苏格拉底的落泪 阅读(18) 评论(0) 推荐(0)
摘要: requires关键字 requires 子句(clause):用于指定模板参数必须满足的约束条件: template<typename T> requires std::integral<T> T add(T a, T b) { return a + b; } 这也可以写成简化形式: templa 阅读全文
posted @ 2025-04-26 11:13 苏格拉底的落泪 阅读(72) 评论(0) 推荐(0)
摘要: 参考资料 1. ceph误删admin auth处理 阅读全文
posted @ 2025-04-01 14:21 苏格拉底的落泪 阅读(19) 评论(0) 推荐(0)
摘要: zookeeper 集群配置 集群角色规划: 名称 IP 角色 hadoop01 192.168.0.10 zookeeper hadoop02 192.168.0.11 zookeeper hadoop03 192.168.0.12 zookeeper 当我们将conf下的 zoo_sample. 阅读全文
posted @ 2025-04-01 09:55 苏格拉底的落泪 阅读(21) 评论(0) 推荐(0)
摘要: 基于Zookeeper搭建Kafka高可用集群 参考资料 1. 基于Zookeeper搭建Kafka高可用集群 阅读全文
posted @ 2025-03-31 14:06 苏格拉底的落泪 阅读(18) 评论(0) 推荐(0)
摘要: 基于ZooKeeper搭建Hadoop高可用集群 名称 主机IP 说明 hadoop01 192.168.0.10 mon、mds、rgw、mgr、osd hadoop02 192.168.0.11 mon、mds、rgw、mgr、osd hadoop03 192.168.0.12 mon、mds、 阅读全文
posted @ 2025-03-29 16:49 苏格拉底的落泪 阅读(38) 评论(0) 推荐(0)
摘要: hdfs文件操作命令 创建目录: hdfs dfs -mkdir /user/test 上传文件 hdfs dfs -put localfile.txt /user/test/ 下载文件 hdfs dfs -copyToLocal /user/test/file.txt ./ 删除文件或目录 hdf 阅读全文
posted @ 2025-03-29 16:38 苏格拉底的落泪 阅读(148) 评论(0) 推荐(0)
摘要: Hadoop集群整体概述 Hadoop集群包括两个集群:HDFS集群、YARN集群 两个集群逻辑上分离、通常物理上在一起 两个集群都是标准的主从架构集群 逻辑上分离,物理上合并的理解: 逻辑上分离:两个集群互相之间没有依赖、互不影响 物理上合并:某些角色进程往往部署在同一台物理服务器上 hadoop 阅读全文
posted @ 2025-03-29 15:30 苏格拉底的落泪 阅读(110) 评论(0) 推荐(0)
摘要: 配置文件填写规则 在nfsd导出目录中,在不同节点导出相同的目录,保持相同的fsid;在同一个节点中,导出不同的目录,使用不同的fsid。 mount挂载参数: 选项 作用 mtype=hard或mtype=soft 当nfs的服务器端出现异常的时候,linux服务器的底层有重发机制,nfs客户端一 阅读全文
posted @ 2025-03-26 20:22 苏格拉底的落泪 阅读(29) 评论(0) 推荐(0)
摘要: linux tc qdisc的使用案例 查看当前 tc 规则: tc qdisc show dev eth0 移除规则: tc qdisc del dev eth0 root 模拟网络丢包: tc qdisc add dev eth0 root netem loss 1% 令eth0网卡的上行带宽限 阅读全文
posted @ 2025-03-26 20:08 苏格拉底的落泪 阅读(112) 评论(0) 推荐(0)
摘要: linux下jdk的安装 下载网址:🔗https://www.oracle.com/java/technologies/downloads/#java8-linux 1. 解压安装: tar -zxvf jdk-8u431-linux-x64.tar.gz -C /usr/java 2. 配置环境 阅读全文
posted @ 2025-03-22 13:03 苏格拉底的落泪 阅读(17) 评论(0) 推荐(0)
摘要: 如何把当前改动追加到某次指定 commit 上(非上次) 参考资料 1. 如何把当前改动追加到某次指定 commit 上(非上次) 阅读全文
posted @ 2024-12-24 14:14 苏格拉底的落泪 阅读(35) 评论(0) 推荐(0)
摘要: 命令sed选项-p用法 使用 sed 打印整个文件的内容,实际上就相当于输出文件的内容,但不修改文件: sed -n 'p' filename 你可以使用 sed 打印某一特定行。例如,打印文件的第 3 行: sed -n '3p' filename 打印第 1 到第 5 行: sed -n '1, 阅读全文
posted @ 2024-12-17 20:58 苏格拉底的落泪 阅读(76) 评论(0) 推荐(0)
摘要: 参考资料 Cephfs的MDS侧元数据池和mdcache存储数据结构分析 阅读全文
posted @ 2023-12-15 16:03 苏格拉底的落泪 阅读(58) 评论(0) 推荐(0)
摘要: 删除ceph文件系统和存储池 删除ceph文件系统和存储池: ceph fs rm cephfs --yes-i-really-mean-it 删除存储池 ceph osd pool delete cephfs_data2 cephfs_data2 --yes-i-really-really-mea 阅读全文
posted @ 2023-12-15 15:42 苏格拉底的落泪 阅读(635) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示