首页
/ Google.Cloud.Spanner.Admin.Instance.V1 5.0.0版本发布:云数据库管理能力升级

Google.Cloud.Spanner.Admin.Instance.V1 5.0.0版本发布:云数据库管理能力升级

2025-07-07 12:37:54作者:廉皓灿Ida

Google.Cloud.Spanner是Google Cloud Platform提供的全球分布式关系型数据库服务,它结合了传统关系型数据库的功能特性与NoSQL数据库的水平扩展能力。作为其管理接口的重要组成部分,Google.Cloud.Spanner.Admin.Instance.V1库提供了对Spanner实例进行管理的API接口。

主要变更与特性

事务处理机制优化

新版本对事务处理机制进行了重大改进,引入了SpannerTransactionCreationOptions和SpannerTransactionOptions两种选项类型。这一变化使得开发者能够更精细地控制事务的创建和行为。值得注意的是,所有开启事务的方法(如BeginTransaction、Open和RunWithRetriableTransaction系列方法)现在都支持这两种选项类型作为参数。

同时,事务的生命周期管理也得到了加强。在成功提交或回滚后,事务将自动被释放(disposed)。任何尝试使用已释放事务的操作都会在客户端引发错误。这一改变有助于开发者更早地发现潜在的事务使用问题。

数据类型映射调整

在数据类型支持方面,5.0.0版本新增了对FLOAT32类型的支持,并对默认类型映射进行了调整:

  • CLR decimal类型默认映射从FLOAT64改为Numeric
  • CLR float类型默认映射从FLOAT64改为FLOAT32

这一变化使得类型映射更加合理,同时也可能影响现有应用程序的行为,需要开发者注意并进行必要的调整。

内联事务支持

新版本引入了内联事务支持,这是一个重要的架构改进。与之前版本不同,事务不再预先创建(prewarmed),而是在首次需要使用时才被获取。这种按需创建的方式提高了资源利用率,减少了不必要的开销。

作为这一变化的一部分,PooledSession.WithFreshTransactionOrNewAsync方法已被移除,取而代之的是PooledSession.RefreshedOrNewAsync方法。新方法返回一个新的PooledSession实例,该实例要么代表同一个会话但没有关联事务,要么代表一个新获取的会话。

废弃代码清理

5.0.0版本完成了对之前beta版本中标记为废弃的代码的清理工作。这些代码在v5.0.0-beta01之前已被标记为废弃,现在被正式移除,使得代码库更加简洁和一致。

升级建议

对于从4.x.x版本升级的用户,需要注意以下几点:

  1. 事务处理API的变化可能影响现有代码,特别是那些使用事务的方法调用
  2. 数据类型映射的调整可能影响数据存储和检索的结果
  3. 内联事务的引入改变了事务获取的时机,可能影响性能特征
  4. 所有标记为废弃的API已被移除,需要替换为新的实现

建议在升级前进行全面测试,特别是关注事务处理和数据类型相关的功能。对于关键业务系统,可以考虑分阶段升级,先在小规模环境中验证兼容性。

总结

Google.Cloud.Spanner.Admin.Instance.V1 5.0.0版本带来了多项重要改进,特别是在事务处理和数据类型的支持方面。这些变化不仅增强了功能,也提高了系统的健壮性和一致性。虽然升级过程中可能需要一些调整,但这些改进为构建更可靠、更高效的云数据库应用提供了更好的基础。

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

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
149
238
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
752
475
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
110
171
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
85
15
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
121
254
arkanalyzerarkanalyzer
方舟分析器:面向ArkTS语言的静态程序分析框架
TypeScript
102
42
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
374
361
open-eBackupopen-eBackup
open-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。
HTML
111
76
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.03 K
0
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
713
98