首页
/ Apache Arrow 20.0.0版本中已移除的废弃API分析

Apache Arrow 20.0.0版本中已移除的废弃API分析

2025-05-15 05:56:04作者:毕习沙Eudora

Apache Arrow项目在20.0.0版本中进行了多项废弃API的清理工作,这些API大多已在早期版本中被标记为废弃状态。本文将详细介绍这些被移除的API及其影响范围。

C++核心模块的API变更

在C++部分,项目移除了多个长期标记为废弃的接口:

  1. 分组操作相关:移除了GetNextSegment及其相关函数,这些函数自18.0.0版本起就被标记为废弃状态。这些函数原本用于处理数据分组操作,现已被更现代的替代方案取代。

  2. 缓存管理:Gandiva模块中的GetCapacity函数被移除,该函数自17.0.0版本起就被废弃。这是缓存管理API现代化改造的一部分。

  3. 内存I/OBufferReader的旧式构造函数被移除,这些构造函数自14.0.0版本起就被标记为废弃。新的构造函数提供了更好的内存管理和错误处理机制。

  4. HDFS接口:移除了ObjectTypeFileStatistics等HDFS相关类型,这些类型自0.17.0版本起就被废弃。这些类型已被更符合现代HDFS接口的设计所取代。

  5. GCS文件系统:移除了OpenAppendStream函数,该函数自6.0.0版本起就被废弃。GCS文件系统接口经历了重大重构,提供了更一致的流操作API。

  6. 线程池管理:清理了owned_thread_pool_相关代码,这些代码自11.0.0版本起就被废弃。新的线程池管理机制提供了更好的资源控制和生命周期管理。

Python模块的API变更

Python绑定部分也进行了类似的清理:

  1. IPC格式:移除了use_legacy_format参数,该参数控制IPC写入器是否使用旧版格式。新版IPC格式提供了更好的性能和兼容性。

  2. Parquet数据集:移除了use_legacy_dataset参数,该参数原本用于控制是否使用旧版Parquet数据集实现。新版实现提供了更完整的功能和更好的性能。

  3. 扩展类型:移除了PyExtensionType相关代码,这是扩展类型系统现代化改造的一部分。新的扩展类型机制提供了更清晰的接口和更好的类型安全。

Flight相关变更

Flight组件也进行了多项清理:

  1. 认证接口:移除了旧的Authenticate方法,该方法自13.0.0版本起就被废弃。新的认证机制提供了更灵活的安全模型。

  2. 中间件接口:移除了StartCall方法,该方法同样自13.0.0版本起就被废弃。新的中间件API提供了更一致的调用生命周期管理。

  3. UCX传输:移除了Flight UCX传输实现,该实现自19.0.0版本起就被标记为废弃。项目推荐使用更成熟的替代传输方案。

对用户的影响和迁移建议

对于使用这些废弃API的用户,建议:

  1. 检查项目代码中是否使用了上述任何废弃API
  2. 参考对应版本的更新日志了解替代方案
  3. 在升级到20.0.0版本前完成迁移
  4. 特别注意IPC格式和Parquet数据集相关的变更,这些变更可能影响数据读写行为

这些清理工作有助于减少代码维护负担,提高整体性能,并为未来功能开发提供更清晰的基础架构。项目团队建议用户尽快迁移到新的API,以获得更好的性能和更长期的支持。

登录后查看全文
热门项目推荐
相关项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
511
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
258
298
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5