每日HackerNews RSS

QuestDB 是一款开源的时序数据库,专为金融交易等高吞吐量、超低延迟的工作负载而设计。其核心创新点在于 **WINDOW JOIN** 操作符,它取代了复杂且低效的 SQL 变通方法,通过单一且高度优化的语法,实现在特定时间窗口内对数据进行聚合。 ### 面临的问题 处理时间窗口连接的标准 SQL 方法(例如将 `ASOF JOIN` 与范围连接和 `UNION ALL` 结合使用)会产生庞大的中间数据集,导致查询优化器无法有效地进行并行化或向量化。随着数据规模的扩大,这些方法的性能往往会大幅下降。 ### QuestDB 的解决方案 WINDOW JOIN 通过以下方式进行了优化: * **数据级并行:** 将表切分为“页面帧”(page frames),由多个工作线程独立处理。 * **SIMD 聚合:** 将窗口数据复制到连续的、按键(per-key)划分的缓冲区中,使 QuestDB 能够利用手动调优的 SIMD 内核(AVX2)以极高的速度计算总和、平均值以及最小值/最大值。 * **高效内存利用:** 通过避免对每一个中间连接对进行实例化,QuestDB 保持了可预测且高效的内存使用。 在与 Timescale、DuckDB 和 ClickHouse 的基准测试对比中,QuestDB 的并行化 `WINDOW JOIN` 性能比最接近的竞争对手快达 **25 倍**,充分展示了专用操作符相较于通用 SQL 改写方案的优势。

发布 登录 注册 发布 Justine Moore @venturetwins 超个性化广告的时代已经开启…… 下午 5:01 · 2026年6月28日 16.26 万次浏览 818 次转发 922 次引用 2000 次点赞 451 条书签 阅读 81 条回复 初次使用 X? 立即注册以获取你专属的个性化时间线! 使用 Google 注册 使用 Apple 注册 创建账号 注册即表示你同意服务条款和隐私政策,包括 Cookie 使用。 相关用户 Justine Moore @venturetwins 关注 当前热门 条款 · 隐私 · Cookie · 无障碍服务 · 广告信息 · 更多 © 2026 X Corp. 不要错过正在发生的事情 X 上的用户总是第一时间获知信息。 登录 注册

近期 Hacker News 上的一场讨论凸显了用户的沮丧情绪,有报道称 Instagram 正在将个人照片用于 Meta 眼镜的广告中。虽然许多用户表示震惊,但也有人指出这种做法并非新鲜事;Meta 的服务条款长期以来一直允许该公司在不提供补偿的情况下,将用户内容、姓名和头像用于商业目的。 这场对话反映了用户对数据隐私和“服务条款”协议的普遍无奈,这些协议以篇幅冗长且鲜有人阅读而闻名。批评者认为,Meta 在数据滥用方面的黑历史——从剑桥分析丑闻到推广诈骗广告——使得此类做法虽然在道德上存在争议,但并不令人意外。 这场辩论触及了免费平台作为“产品”的本质:只要用户将社交连接和实用性置于隐私之上,他们就始终是 Meta 商业模式中的商品。一些用户建议,离开这些平台是唯一的真正解决方案,但也有人指出,对于许多小型企业和社交圈而言,Meta 生态系统的网络效应使得离开几乎不可能。归根结底,共识在于,此类做法是使用那些罔顾用户隐私的公司所提供的“免费”服务时,不可避免的副产品。

本文深入探讨了一个简单的 CUDA 向量加法内核的生命周期,追踪其从源代码到在 NVIDIA RTX 4090 上执行的全过程。 **编译与注册** `nvcc` 编译器充当驱动程序的角色,协调多种工具将高级 CUDA 代码转换为“fatbin”。该二进制文件包含 PTX(一种与设备无关的虚拟 ISA)和 SASS(特定于目标架构的机器码)。程序启动时,一个隐藏的构造函数会将这些内核注册到 CUDA 运行时,将主机端的函数指针映射到设备端的符号。 **启动机制** 当主机调用内核时,会使用生成的存根将参数打包到缓冲区中。随后,驱动程序创建一个“队列元数据”(QMD)描述符(包含启动几何结构和内存地址),并通过命令流(“pushbuffer”)将其发送至 GPU。CPU 通过 MMIO“门铃”寄存器通知 GPU 开始执行。 **GPU 执行** GPU 的计算工作分配器将网格划分到 128 个流式多处理器(SM)上。每个 SM 使用线程束调度器管理线程执行,并利用硬件打包的“控制码”来处理延迟、计分板屏障和内存加载。最终,计算结果存储在 L2 缓存中,并传输回主机内存。

这篇 Hacker News 帖子讨论了文章《运行 CUDA 内核时会发生什么?》,该文深入剖析了内核从 CPU 提交到 GPU 执行的技术全过程。 评论者称赞这篇文章阐明了“门铃”(doorbells)和队列管理描述符(QMDs)等复杂概念,填补了高级文档与底层硬件操作之间的空白。讨论要点包括: * **优化:** 参与者争论手动内核优化是否会被人工智能驱动或商品化的库所取代,但许多人指出,硬件特定的限制使得自动化变得困难。 * **驱动稳定性:** 关于 GPU 驱动程序的健壮性存在激烈辩论。虽然一些人认为大多数“驱动程序错误”实际上是应用程序错误,但另一些人批评缺乏隔离性,指出有问题的代码仍可能导致整个系统挂起。 * **API 使用:** 多位用户建议使用 CUDA Driver API 而非 Runtime API,因为前者具有更高的透明度和更好的控制力,并能实现类似着色器开发中的内核热重载等功能。 总体而言,社区认为这篇文章是理解高级代码与硬件执行之间那些“巫术”的重要资源。

《Principia》的开发者已成功恢复了对 Windows XP 的支持。这项成就要求开发者深入钻研,对游戏开源的构建流程进行了现代化改造。尽管《Principia》最初是为早期智能手机和旧版 Windows 系统设计的,但现代化的工具链和库依赖(如 UCRT 和较新的 GCC 版本)最终导致游戏与旧版 Windows 系统不再兼容。 为了克服这一困难,开发者在 Linux 上创建了一套自定义的交叉编译工具链。该过程涉及对 GCC 16 进行打补丁,以绕过现代 C23 和 Vista 特有的 API 要求,并仔细挑选了仍支持 XP 有限运行环境的旧版本依赖库(例如 libcurl 8.17.0)。开发者还用 Dear ImGui 替换了存在问题的 GTK3 对话框,以降低系统开销。 在真实的老旧硬件上经过严格测试(包括极具挑战性的驱动安装过程)后,开发者成功在 Windows XP 上运行了这款游戏。虽然此版本不会纳入官方的频繁更新发布周期,但所有构建脚本已在 GitHub 上公开。该项目作为一项旨在保持软件对旧版操作系统兼容性的技术实践,取得了圆满成功。

Hacker News 最近的一场讨论聚焦于一个旨在将开源物理沙盒游戏《Principia》引入 Windows XP 的项目。该帖反映了社区对维护这一遗留操作系统支持的持久热情,该系统在工业和业余爱好者领域仍被广泛使用。 参与者分享了实现 XP 现代化体验的技术策略,例如使用“Legacy Update”简化安装流程、通过“Supermium”反向移植 Chromium,以及利用巧妙的注册表或依赖项变通方法来运行现代应用程序。尽管一些用户讨论了将 XP 连接到互联网的安全风险,但专家指出,现代路由器防火墙可以缓解许多历史性漏洞。 这次对话强调了人们对 XP 稳定性和高效性的广泛认可,一些用户甚至声称,经过优化的 XP 系统在运行现代软件时,速度往往比新操作系统更快。归根结底,该项目证明了通过独创性来保护旧系统的“黑客”精神,使遗留硬件能够在现代继续执行相关任务。

请启用 JavaScript 并关闭广告拦截器

错误:无法满足请求。请求被拦截。目前无法连接到此应用或网站的服务器。可能是流量过大或配置错误所致。请稍后再试,或联系应用/网站所有者。如果您通过 CloudFront 向客户提供内容,可以查阅 CloudFront 文档以了解排查和防止此错误的步骤。 由 cloudfront (CloudFront) 生成 请求 ID:X7lneaTqzna9RSxwl8TcnwPvOkPj3LbNBFFUGmOtE2FzjgjEig2VHg==

Bellroy 的工程师通过将数千个 TemplateHaskell (TH) 调用替换为经过编译时验证的 `NonEmptyText` 构造函数,使一个数据密集型包的构建时间缩短了约 10%。 团队利用 GHC 9.10 的 `RequiredTypeArguments` 特性,将类型层级的字符串字面量直接传递给函数。通过定义一个利用 `Unsatisfiable` 的自定义类型类(`IsNonEmptySymbol`),当输入空字符串时,系统能触发针对性的错误消息,从而确保无效状态在编译时即无法表示。 这种方法避免了在编译期间求值的 TH 拼接开销。作者将此模式扩展到了更复杂的验证场景(例如 DynamoDB 表名解析),通过使用类型层级的循环(type-family loops)在类型层面执行算法检查。尽管 Haskell 中的类型层级编程存在限制(如严格的归约限制和复杂的语法),但这一技术迈向了更稳健、类似于依赖类型设计的重要一步,证明了经过类型检查的常量既能保持高性能,又具备良好的表达能力。

曾几何时,计算机还是局限于特定房间内的固定设备。随着时间的推移,我们过渡到了笔记本电脑和智能手机时代,用物理空间的自由换取了时刻在线的便利。尽管这种演变让数字服务变得触手可及,但也引进了大量的干扰和令人上瘾的通知,侵入了我们的私人生活。 作者意识到这种“时刻在线”的环境削弱了我们的专注力和幸福感,因此主张重建个人边界。通过回归以桌面电脑为中心的工作流程、精简通知,并在家中与智能手机保持物理距离,作者成功地找回了自己的注意力。 从“机房”到口袋设备的转变虽承诺了自由,但代价是让我们被困在了一个极具侵略性的信息环境中。通过引入刻意的阻碍——即主动选择何时何地使用技术——我们可以摆脱数字干扰的持续拉扯。最终,作者发现与设备保持距离并非障碍,而是过上一种更专注、更从容生活的必要工具。

管理多区域服务部署往往会带来繁重的 DNS 更新和故障切换手册等手动负担。Linkerd 的多集群扩展通过使集群能够作为单一的统一服务网格运行,实现了这一过程的自动化。 Linkerd 支持三种不同的模式,并可通过简单的服务标签在同一架构中混合使用: * **联邦 (Federated):** 最适合与集群无关的服务。它将相同的服务聚合为一个端点,在集群发生故障时提供自动故障切换。 * **扁平镜像 (Flat Mirroring):** 最适合关注数据局部性的场景。它允许客户端通过直接的 Pod 到 Pod 连接访问特定的远程集群。 * **网关镜像 (Gateway Mirroring):** 最适合异构网络。它通过网关路由流量,非常适合缺乏扁平网络的隔离集群。 此设置需要仔细的基础设施规划,特别是 CIDR 不可重叠以及双向 VPC 对等连接。通过利用共享信任锚点,您可以创建全网状拓扑,由 Linkerd 透明地处理负载均衡和故障切换。 最终,这种方法消除了运维复杂性:通用服务通过联邦获得自动弹性,而专用服务则通过镜像保持显式控制。通过将多区域基础设施视为单一网格,您可以用基于策略的弹性自动化取代脆弱的手动流程。

更多

联系我们 contact @ memedata.com