Cedar DECIMAL功能开发与表Schema设计
需积分: 0 7 浏览量
更新于2024-08-05
收藏 659KB PDF 举报
"DECIMAL功能开发文档1 - 针对DECIMAL数据类型的开发需求、设计与模块解析"
在 DECIMAL 功能开发文档中,主要关注的是在Cedar数据库系统中添加对DECIMAL数据类型的全面支持。Cedar是华东师范大学计算机科学与软件工程学院基于OceanBase数据库的一个扩展关系型数据库系统,其目标是在处理大量数据和跨行跨表事务方面提供高效服务。在cedar0.2版本之前,系统并未包含对DECIMAL数据类型的处理,但为了满足更广泛和精确的数值计算需求,DECIMAL数据类型的引入变得至关重要。
1. **需求分析**
DECIMAL数据类型主要用于存储精确的数值,如货币或精确度要求高的科学计算。在需求分析阶段,Cedar需要实现以下功能:
- **创建支持DECIMAL的表**:允许用户在创建表时定义含有DECIMAL类型的列,并存储对应的精度和小数位数信息。
- **数据存储**:确保数据以精确的方式存储,不因浮点运算而产生精度损失。
- **读取操作**:提供读取DECIMAL类型数据的能力。
- **数学运算**:支持对DECIMAL类型数据进行加、减、乘、除等数学运算,保证计算结果的精确性。
2. **模块设计**
- **表Schema设计**:在Cedar中,每个服务器(如RS,UPS,CS,MS)都有一个`ObSchemaManagerV2`,用于管理和同步所有表的结构信息。`ObTableSchema`和`ObColumnSchemaV2`类是实现这一功能的关键。
- `ObTableSchema`:包含了关于表的信息,如表名、列信息等,其中`table_infos_`数组存储了所有表的元数据。
- `ObColumnSchemaV2`:代表表中的列,包含列的名称、数据类型(如ColumnType枚举类型)、大小、是否可为空(is_nullable_)等属性。对于DECIMAL类型,`size_`字段可能不适用,因为其长度不固定,而`type_`字段将设置为DECIMAL。
3. **设计实现**
- **数据类型定义**:在数据库系统中,必须定义一个表示DECIMAL的数据结构,如`ObObjDef`,来容纳整数部分和小数部分的二进制表示。
- **存储与索引**:考虑到DECIMAL的存储特性,可能需要特定的存储策略,如使用固定长度或可变长度的编码方式,以及优化的索引结构以支持高效查询。
- **SQL解析与执行**:SQL语句中的DECIMAL操作需要在解析器和执行器层面进行特殊处理,确保计算的精确性。
4. **性能与一致性**
为了保持所有服务器上的表schema一致,需要有一套同步机制,确保在表结构变更时,所有服务器都能及时更新其`ObSchemaManagerV2`中的信息。这通常通过分布式协调服务完成,例如Zookeeper。
5. **测试与验证**
在开发完成后,必须进行详尽的测试,包括单元测试、集成测试和压力测试,确保DECIMAL数据类型的存储、读取和计算功能准确无误,并能在高并发环境下稳定运行。
DECIMAL功能的开发不仅涉及数据类型的定义和存储,还包括系统架构的设计和调整,以及数据库管理系统多个层次的修改和优化,以确保在Cedar中实现对精确数值计算的全面支持。
2022-08-03 上传
2022-08-08 上传
119 浏览量
2021-04-28 上传
2019-10-20 上传
2019-09-05 上传
2021-06-03 上传
200 浏览量

yiyi分析亲密关系
- 粉丝: 33
最新资源
- 掌握PerfView:高效配置.NET程序性能数据
- SQL2000与Delphi结合的超市管理系统设计
- 冲压模具设计的高效拉伸计算器软件介绍
- jQuery文字图片滚动插件:单行多行及按钮控制
- 最新C++参考手册:包含C++11标准新增内容
- 实现Android嵌套倒计时及活动启动教程
- TMS320F2837xD DSP技术手册详解
- 嵌入式系统实验入门:掌握VxWorks及通信程序设计
- Magento支付宝接口使用教程
- GOIT MARKUP HW-06 项目文件综述
- 全面掌握JBossESB组件与配置教程
- 古风水墨风艾灸养生响应式网站模板
- 讯飞SDK中的音频增益调整方法与实践
- 银联加密解密工具集 - Des算法与Bitmap查看器
- 全面解读OA系统源码中的权限管理与人员管理技术
- PHP HTTP扩展1.7.0版本发布,支持PHP5.3环境