博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SAP HANA 三大特点
阅读量:5292 次
发布时间:2019-06-14

本文共 1325 字,大约阅读时间需要 4 分钟。

SAP HANA 的三大特点:

第一:加速数据的访问。

1.把数据保存在内存中,(Using main memory as the data store)通过下图我们可以看到内存的访问速度比磁盘快1,000,000倍,传统磁盘读取是5毫秒,内存读取是5纳秒比SSD和闪存快1000倍。虽然寄存器和Cache的读取数据的速度比内存快,但在实际的数据处理中它们的使用是有限的。

根据计算机组成原理我们知道数据是从 磁盘----> 通过数据总线和控制器(RAID,I/O hub等)--->内存--->CPU Cache --->CPU进行数据处理(CPU寄存器)。

内存是直接与CPU cache进行数据传输的,数据传输速度远远大于磁盘。所以与数据保存在磁盘中相比,数据保存在内存中可以大大的提高数据库在存取数据的时间的性能优势。在传统的数据库中。由于内存存储的数据有易失性,系统掉电或者是重启内存中的数据就会丢失,针对这个SAP HAHA有一个后台的异步进程savepoint(Data persistence)定时的把内存数据存储到磁盘中。把数据存储在内存中解决的传统数据库在磁盘I/O读取的性能瓶颈,但是在出现了新的性能瓶颈是把内存中的数据加载到CPU Cache中,SAP HANA采取多处理器并发处理。

数据持久化(Data persistence)

2.硬件方面:服务器采用多核架构(每个刀片8 x 8 核心 CPU)多刀片大规模并行扩展,刀片服务器价格低廉,采用64 位地址空间 — 单台服务器容量为2 TB ,100 GB / 秒数据吞吐量,价格迅速下降,性能迅速提升。

3.软件方面:数据存储可以选择行存储或者是列存储,同时对数据进行压缩。

 

第二:把数据分开处理。

内存本地化:把大数据量和计算量分散到不同处理器
并行处理:不同的服务器之间也共享同一组数据
容灾性:单一的服务器的DOWN机将不影响任何计算

第三:最小化数据传输。(Minimizing data movement)

1.压缩数据。(compress data)

尽管今天的内存容量允许把大量的数据存储在内存中,把数据进行压缩的目的没有直接用来提高性能,但把内存数据进行压缩还是可取的,它可以最大限度的减少数据从内存传输到CPU cache中。SAP HANA 采用数据字典的方法对数据进行压缩,用整数来代表相应的文本。数据库可以压缩数据和减少数据的传输。

2.把应用逻辑和计算由应用层转移到数据库层。(Pushing application logic to the database)

传统数据库中,一个应用程序在处理应用逻辑数据时,先把数据从数据库读出来,然后再进行相应的计算处理,最后处理后的数据写回数据库中。在数据库和应用程序传输数据包括在一个网络通信,那么网络资源的开销,延时,传输速率及及最大吞吐量都对它们之间的通信会产生限制。如果数据库能够执行计算和应用逻辑,不需要将数据发送回应用程序甚至可能减少数据交换的需要。这最大限度地减少传输的数据量。

转载于:https://www.cnblogs.com/liuzhuqing/p/7480169.html

你可能感兴趣的文章
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
关于Mysql select语句中拼接字符串的记录
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>