<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SinjoyWong的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SinjoyWong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SinjoyWong]]></copyright><item><title><![CDATA[gcsfuse的symlinks模拟：Legacy和Standard两种方法]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/164848081</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/164848081</guid><author>SinjoyWong</author><pubDate>Thu, 10 Sep 2026 14:46:02 +0800</pubDate><description><![CDATA[GCS为对象存储，其对象的命名空间是扁平的（bucket, name） -> bytes + metadat，没有inode，也没有symlink的概念。因此FUSE需要一种机制来让对象存储模拟文件存储的symlink。metadata 有 goog-reserved-file-is-symlink==true?直接取 gcsfuse_symlink_target 的 value。来兼容Legacy和Standard两种symlink实现方式。：构造SymlinkInode结构体，通过。]]></description><category></category></item><item><title><![CDATA[gcsfuse的gzip]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/164630469</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/164630469</guid><author>SinjoyWong</author><pubDate>Tue, 08 Sep 2026 19:56:41 +0800</pubDate><description><![CDATA[透明解压（transparent decompression）是HTTP客户端库（Go的net/http）在客户端完全没有要求的情况下，自动完成了gzip的协商与解码，让上层代码“看不见”压缩的存在。代码从resp.Body读到的已经是解压后的明文字节，仿佛压缩从未发生过。“透明”的另一面是“不可见”。它同时抹掉了三个证据：响应头里的，以及解压动作本身。除了问题时看到的不是报错，而是字节数对不上这种静默错位。]]></description><category></category></item><item><title><![CDATA[ceph index-less桶可以用radosgw-admin bucket rm吗]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/164088674</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/164088674</guid><author>SinjoyWong</author><pubDate>Wed, 26 Aug 2026 14:57:24 +0800</pubDate><description><![CDATA[不行。对 indexless bucket 会"成功"退出（exit 0），但。]]></description><category></category></item><item><title><![CDATA[O_DIRECT与gcsfuse的go程序中实现内存页面对齐]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/164082432</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/164082432</guid><author>SinjoyWong</author><pubDate>Wed, 26 Aug 2026 12:15:55 +0800</pubDate><description><![CDATA[O_DIRECT。]]></description><category></category></item><item><title><![CDATA[gcsfuse与中断FUSE_INTERRUPT]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/164057488</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/164057488</guid><author>SinjoyWong</author><pubDate>Tue, 25 Aug 2026 15:24:30 +0800</pubDate><description><![CDATA[发起某个请求的那个进程被信号打断了，请尽快终止那个在途请求“。// 指向被中断的原始请求的唯一 ID它由内核发起，携带一个unique字段，指明要终止的是哪一个在途请求。核心语义是“尽力而为的提示”， daemon可以终止该请求，也可以无视它继续做完。发送中断后，内核仍然会等待daemon恢复原始请求。本质上gcsfuse 中的的参数时在“POSIX中断语义（可被Ctrl-C打断）“与”远端写操作的原子性/一致性“之间做的一个全局粗粒度的取舍。默认对所有操作类型的中断都是”不理会中断“。]]></description><category></category></item><item><title><![CDATA[一些我开发过程中用到的AI配置]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/163542734</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/163542734</guid><author>SinjoyWong</author><pubDate>Thu, 06 Aug 2026 20:41:38 +0800</pubDate><description><![CDATA[当用户询问某个概念/术语时，回答应遵循三段式结构：1. What — 这个概念是什么（定义、本质）；2. Why — 为什么需要这个概念（它解决了什么问题、存在的动机）；3. How — 如何设计和实现的，为什么这样设计而不是那样设计（设计决策、trade-off 分析）。]]></description><category></category></item><item><title><![CDATA[gcsfuse的generation以及412 PreconditionFail]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/163394959</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/163394959</guid><author>SinjoyWong</author><pubDate>Sat, 01 Aug 2026 15:30:35 +0800</pubDate><description><![CDATA[上文中提到了gcsfuse中针对gcs返回的的利用，从而用于处理本地打开一个文件后，还未关闭，远端已经修改了这个文件这种场景。由于这是和后端存储服务端相关的功能，因此需要详细分析一下现在gcs go sdk的设计和gcsfuse的使用情况。写过一片文章分析ceph里412的处理，但是还是不够直观，因此又查看gcsfuse和gcs go sdk的代码以及官方文档，从而拼凑一下这里的设计思路和实现思路。]]></description><category></category></item><item><title><![CDATA[ceph中的412 precondition failed错误码]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/163327181</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/163327181</guid><author>SinjoyWong</author><pubDate>Thu, 30 Jul 2026 10:35:50 +0800</pubDate><description><![CDATA[在 Ceph RGW 中的设计是一个从 HTTP 协议层出发，逐步向内层渗透的经典案例。它从纯粹的 HTTP 条件头校验（RFC 7232 协议合规）起步，逐步被复用用于内部状态校验（版本控制互斥、过期时间匹配、数据同步冲突解决），最终形成了一种“状态预期不满足”的通用语义。这种设计的优雅之处在于调用方可以用统一的方式处理"不是真正错误"的场景，但代价是语义边界变得模糊——有时 412 意味着客户端应该重试，有时意味着操作应该被静默跳过，有时仅仅意味着一个参数越界。]]></description><category></category></item><item><title><![CDATA[gcsfuse的TypeCache]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/163242799</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/163242799</guid><author>SinjoyWong</author><pubDate>Mon, 27 Jul 2026 14:26:23 +0800</pubDate><description><![CDATA[在gcsfuse中，TypeCache的存在是为了解决一个文件系统模拟对象存储的根本gap: 对象存储的目录是由'/'prefixto在时需要判断一个字路径是文件还是目录，或不存在。在早期设计中，是独立维护了一个typeCache，每次lookUp先查询typeCache拿到cachedType，再据此决定取GCS查什么。]]></description><category></category></item><item><title><![CDATA[gcsfuse的statCache的正缓存与负缓存]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/163139314</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/163139314</guid><author>SinjoyWong</author><pubDate>Thu, 23 Jul 2026 17:34:47 +0800</pubDate><description><![CDATA[StatObject请求需要经由网络去访问远端对象存储，是个耗时的操作，因此需要将其缓存下来。缓存有两种，一种是正向缓存，在请求了StatObject（或类似的请求），拿到了元数据之后将这个对象的元数据进行缓存；一种是负向缓存，在调用了DeleteObject（或类似的请求），记录在缓存中，表明这个对象是不存在的，无需再对这个对象发起StatObject请求。为什么需要负向缓存？是因为一个条目的存在性也是需要发起网络请求才能确认。]]></description><category></category></item><item><title><![CDATA[gcsfuse的metadata prefetch功能]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/161720920</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/161720920</guid><author>SinjoyWong</author><pubDate>Fri, 05 Jun 2026 14:50:16 +0800</pubDate><description><![CDATA[TryAcquire。]]></description><category></category></item><item><title><![CDATA[Google Cloud Storage以及对应CSI使用分层命名空间（HNS）桶时对 AI/ML 检查点性能的优化]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160924340</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160924340</guid><author>SinjoyWong</author><pubDate>Sat, 09 May 2026 14:17:33 +0800</pubDate><description><![CDATA[特性命名空间模型原生分层命名空间，文件夹为一等资源实体扁平命名空间 + 前缀模拟目录，仅支持有限分层能力Blob 存储附加 HNS 层，元数据与数据分离存储检查点重命名速度比扁平存储桶快 20 倍，原子性操作，无中间状态非原子操作，时间复杂度 O (n)，性能随对象数量线性下降原子操作，但存在元数据同步开销，延迟比 GCS HNS 高约 40%初始 QPS比扁平存储桶提升 8 倍，冷启动 10 分钟达 100,000 写入 QPS。]]></description><category></category></item><item><title><![CDATA[深度解析 Google Cloud Storage 分层命名空间（HNS）对 AI/ML 检查点性能的优化]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160894374</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160894374</guid><author>SinjoyWong</author><pubDate>Fri, 08 May 2026 16:15:58 +0800</pubDate><description><![CDATA[特性命名空间模型原生分层命名空间，文件夹为一等资源实体扁平命名空间 + 前缀模拟目录，仅支持有限分层能力Blob 存储附加 HNS 层，元数据与数据分离存储检查点重命名速度比扁平存储桶快 20 倍，原子性操作，无中间状态非原子操作，时间复杂度 O (n)，性能随对象数量线性下降原子操作，但存在元数据同步开销，延迟比 GCS HNS 高约 40%初始 QPS比扁平存储桶提升 8 倍，冷启动 10 分钟达 100,000 写入 QPS。]]></description><category></category></item><item><title><![CDATA[GCSFuse Profiles - SRE 运维指南]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160879717</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160879717</guid><author>SinjoyWong</author><pubDate>Fri, 08 May 2026 09:35:35 +0800</pubDate><description><![CDATA[本指南覆盖 GCSFuse profile 的运维层面：监控、故障排查、容量规划以及与 profile 优化系统相关的事件响应。]]></description><category></category></item><item><title><![CDATA[GCSFuse Profiles - 用户指南]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160879672</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160879672</guid><author>SinjoyWong</author><pubDate>Fri, 08 May 2026 09:34:59 +0800</pubDate><description><![CDATA[覆盖：使用 5 分钟 TTL 而非无限# 覆盖：禁用 range read 缓存Profile 先应用所有默认值，然后你的显式覆盖在其上生效。]]></description><category></category></item><item><title><![CDATA[GCSFuse Profiles - 设计规约]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160865661</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160865661</guid><author>SinjoyWong</author><pubDate>Thu, 07 May 2026 18:20:39 +0800</pubDate><description><![CDATA[GCS 上的 AI/ML 工作负载具有高度特定的 I/O 模式，与通用场景截然不同。实现最优性能需要协调 6+ 个配置参数，它们之间的交互关系并不直观。用户不应需要深入理解 GCSFuse 内部机制才能获得高性能的 AI/ML 工作负载。]]></description><category></category></item><item><title><![CDATA[GCSFuse Profile 机制设计动机分析]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160865646</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160865646</guid><author>SinjoyWong</author><pubDate>Thu, 07 May 2026 18:20:05 +0800</pubDate><description><![CDATA[从维度读模式顺序大读随机/range readrange read写模式顺序大写几乎不写顺序大写目录操作隐式目录列表缓存rename数据变化频率低（数据集固定）极低（模型不变）中（新 ckpt 周期产生）三个 profile 恰好覆盖了 AI/ML 管道的三个阶段：fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;模型更新训练。]]></description><category></category></item><item><title><![CDATA[gcs-fuse-csi-driver Profiles Recommender sre ops guide]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853732</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853732</guid><author>SinjoyWong</author><pubDate>Thu, 07 May 2026 12:13:17 +0800</pubDate><description><![CDATA[SRE、平台运维工程师: 日志分析、故障排查、容量规划、告警配置。]]></description><category></category></item><item><title><![CDATA[gcs-fuse-csi-driver Profiles Recommender user guide]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853710</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853710</guid><author>SinjoyWong</author><pubDate>Thu, 07 May 2026 12:12:29 +0800</pubDate><description><![CDATA[Profiles Recommender 是一个自动缓存调优系统。你的 Bucket 大小（对象数量和数据总量）所在节点的硬件类型（GPU / TPU / 通用节点）可用内存和临时存储容量自动计算最优的stat cache和file cache配置，无需你手动计算和设置。一句话总结: 把性能调参的认知负担从你转移到系统。metadata:labels:此时推荐器将设置 file cache = -1 (unlimited) 并跳过介质选择，让 gcsfuse 使用你提供的缓存卷。]]></description><category></category></item><item><title><![CDATA[gcs-fuse-csi-driver Profiles Recommender design spec]]></title><link>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853675</link><guid>https://blog.youkuaiyun.com/SinjoyWong/article/details/160853675</guid><author>SinjoyWong</author><pubDate>Thu, 07 May 2026 12:11:51 +0800</pubDate><description><![CDATA[开发者、系统架构师。]]></description><category></category></item></channel></rss>