大数据平台详细设计1.doc

PAGE 2 PAGE 2 第 PAGE 92 页 共 NUMPAGES 112 页 大数据平台 详细设计 V1.0版 TOC \o 1-5 \h \z \u 产品简介 4 重要公共模块 5 ? 基础数据结构Array 5 ? 内存访问数据结构MemoryBlock 5 ? 内存池Memory Pool 7 ? 远程函数调用RPC 13 Master Node 19 简介 19 1. Control 模块 19 ? 表分布策略 19 2. SQL 模块 24 ? 查询执行策略 26 ? 执行器 32 ? 计划节点 36 ? 元组操作 60 ? 表达式计算 64 ? 投影操作 68 Data Node 75 简介 75 1. 重要模块 75 ? DB 75 ? Table 76 ? Tablet Group 78 ? Tablet 79 ? Tablet Order 80 ? TableInfo 81 2. 数据存储 81 3. 数据导入 86 ? 概括 86 ? 多节点的Loading 89 分布式机制 93 1. 概括 93 2. 数据备份和同步 99 ? 主备份与副备份的区别 103 产品简介 DreamData大数据实时分析数据库是从分布式数据库的基础上发展而来,吸收了大规模并行处理(MPP-massively parallel processing )、NoSQL列存数据库、数据库内压缩等多项最新技术成果的优势,结合内存计算技术,直接在内存中优化程序和计算,为用户提供卓越的性能体验。 DreamData实现了数据处理中新的业务途径。事实上,它远远超过了数据库的传统定义,并且其性质远不只是内存中磁盘数据结构上的本地缓存。 DreamData最大的特色就是大而快,它能极快地导入和处理海量的数据,并在这个基础上能极快地进行用户所需数据统计和分析。在同样的硬件配置条件下,相对传统关系型数据库而言,DreamData的单机性能要高出50倍以上,并且随着节点数量的增加,整体性能会同步提升。 重要公共模块 基础数据结构Array Array是程序中最常用到的当做数组的基础数据结构。可以方便的使用array_create、array_add、array_get等接口对Array进行操作。一般较常见的接口都可以在Array.h中找到。 Array* array_create(long long init_size, int elem_size); #define array_add(a, e) /** faster version, but no safe check **/ #define array_get(array, long_long_index) /** The Array Struct can not accessed directly by other modules, but put at the header file for array_add macro **/ typedef struct Array{ long long used_size; //number of elements in this array int elem_size; //elements size in bytes long long allocated_size; //allocated size for this array long long allocated_bytes_size; //allocated bytes for this array char* data; }Array; 内存访问数据结构MemoryBlock 因为代码全是使用C语言编写,虽然代码执行和内存使用更为高效,但是开发效率可能因此降低,为了更好的提高开发效率,在原始的内存上面用MemoryBlock数据结构进行了抽象。 typedef struct MemoryBlock{ char* memory; /** the beginning of memory block **/ int curso

文档评论(0)

1亿VIP精品文档

相关文档