In-memory Computing with SAP HANA读书笔记 - 第二章:SAP HANA overview

本文为In-memory Computing with SAP HANA on Lenovo X6 Systems第二章SAP HANA overview的读书笔记。

本章最重要的部分是SAP HANA architecture

SAP HANA overview

SAP HANA数据库是结合了行式,列式和对象的内存数据库,可以充分利用硬件的并行处理能力。

SAP HANA appliance是一体化的软硬件设施,核心还是SAP HANA。

SAP HANA architecture

HANA的核心是关系型引擎(relational database engines),支持行式和列式。行式适合于插入,更新操作,但压缩比,查询性能不如列式。

每张表可以选择自己的行式或列式引擎,后续也可以再转换。

行式存储的表在启动时加载。列式存储的表可以在启动或按需在访问时加载。

行式和列式存储共享持久化层,内存中数据的改变通过savepoint存放到磁盘,而提交的交易通过log记录到磁盘,通常是闪存盘,因为需要同步写盘。

relational engines可以通过各种方式使用,包括SQL (JDBC/ODBC), MDX (ODBO), 和BICS (SQL DBC)等。

calculation engine使得数据可以就地处理,无需移动数据。HANA SQL Script使得一些应用逻辑可以直接在HANA中执行,是SQL的扩展,角色类似于Oracle的PL/SQL。

SAP HANA appliance

软硬一体的方案,核心是HANA,再加上一些管理软件。

SAP HANA delivery model

支持两种模式,新硬件单一厂商部署模式和多厂商集成(可利用已有硬件)的模式。

SAP HANA as an appliance

新硬件部署模式,是主流的部署模式,都是SAP认证的服务器厂商提供方的的集成部署方案,必须是Intel Xeon CPU,每个CPU有一定的内存配比,万兆网卡,冗余和高可用性等。

SAP HANA tailored data center integration

tailored data center integration (TDI)模式,可集成多个厂商的硬件

Sizing SAP HANA

对于内存计算系统而言,内存的容量(CPU的内存配比)比较重要,如果配的太高,浪费,如果配的太小,CPU的能力不能充分发挥。因此需要一个合适的CPU core内存配比。

Memory per core ratio for SAP HANA appliances

SAP以T-Shirt Size的方式定义了CPU/内存配比,如下图:

S+使用的是S的内存,及M的硬件。M+同理。

SAP Business Suite对CPU要求低,内存要求高,具有不同的T-Shirt Size

Sizing approach

HANA的Sizing取决于其用于什么场景,具体参见SAP Notes:

* Note 1514966 - SAP HANA 1.0: Sizing SAP In-Memory Database

* Note 1637145 - SAP NetWeaver BW on HANA: Sizing SAP In-Memory Database

* Note 1793345 - Sizing for SAP Suite on HANA

* Note 1872170 - Suite on HANA memory sizing

对于scale-out BW,参见以下SAP Notes:

SAP也提供SAP Quick Sizer在线Sizing工具。

Sizing的结果影响到license。

SAP HANA software licensing

The SAP HANA software is available in two editions (platform and enterprise edition) and the SAP HANA software licensing depends on the use case.

时间: 2024-10-12 09:07:25

In-memory Computing with SAP HANA读书笔记 - 第二章:SAP HANA overview的相关文章

《深入理解Java虚拟机》读书笔记---第二章 Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来.这一章就是给大家介绍Java虚拟机内存的各个区域,讲解这些区域的作用,服务对象以及其中可能产生的问题. 1.运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域. 1.1程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型中里,字

《Java并发变成实践》读书笔记---第二章 线程安全性

什么是线程安全性 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问.从非正式的意义上来说,对象的状态是指存储在状态变量(例如实例或静态域)中的数据."共享"意味着变量可以由多个线程同时访问,而"可变"则意味着变量的值在其生命周期内可以发生变化.所以编写线程安全的代码更侧重于如何防止在数据上发生不受控的并发访问. 如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误

In-memory Computing with SAP HANA读书笔记 - 第一章:Basic concepts of in-memory

本文为In-memory Computing with SAP HANA on Lenovo X6 Systems第一章Basic concepts of in-memory computing的读书笔记. 作为基础概念,本章非常重要.此Redbook讲得浅显易懂,配图也容易理解.唯一需要深读是DL ACM的那篇论文,后续我会再补充. "卑之,毋甚高论,令今可行也", 本章正符合汉文帝对于张释之的要求. Basic concepts of in-memory computing In-

[Effective Java 读书笔记] 第二章 创建和销毁对象 第六-?条

第六条 消除过期引用 JAVA中依然会有 memory leak的,比如一个栈先增长再收缩,那么从栈中弹出的对象是不会被当做垃圾回收的,即时使用栈的程序不再引用这些对象.这是因为栈的内部维护着对这些对象的过期引用(永远也不会被解除的引用),需要显示的将这些对象清空(置为null),告诉垃圾回收器回收这些对象. 比如Stack类的实现里,pop()函数最后会有对element置null的操作: public synchronized E pop() { E obj; int len = size(

《时间序列分析及应用:R语言》读书笔记--第二章 基本概念

本章介绍时间序列中的基本概念.特别地,介绍随机过程.均值.方差.协方差函数.平稳过程和自相关函数等概念. 2.1时间序列与随机过程 关于随机过程的定义,本科上过相关课程,用的是<应用随机过程>清华林元烈老师的书.第1章第5节: 上面的定义比较清楚明白.按照本书上的说法,随机变量序列就是一个随机过程,换句话说,在每一个t时刻,所研究的量都是一个随机变量.随机过程完整的概率结构是由每个时刻的有限联合概率分布族决定的,幸运的是,联合分布中的大部分信息可以通过均值.方差和协方差等加以描述,而不用去直接

读书笔记第二章

第二章Linux的驱动程序需要android应用程序以及android NDK程序来测试Linux驱动.因此,不信需要配置Linux驱动开发环境,还需要配置开发android应用程序以及android Ndk程序的开发环境.需要的工具:jdk6或以上版本.eclipse 3.4或以上版本.ADT.CDT.android SDK.android NDk.交叉编译环境.linux内核源代码.Android源代码.用于调试开发板的串口工具:minicom.搭建android应用程序开发环境:安装and

数据结构读书笔记----------第二章 线性表

2.1 线性表的定义 线性结构的特点是数据元素之间是一种线性关系,在一个线性表中,数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构.综上所诉:线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列. 2.2 线性表的顺序存储以及运算实现 //线性顺序存储的定义 #define Maxsize 100 typedef int DataType; typedef struct { DataType data[Maxsize]; int last; //用来记录线性表中最

读书笔记 第二章

本章内容主要讲到了如何搭建安卓环境,分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK: 第二步:配置Windows上JDK的变量环境 : 第三步: 下载安装Eclipse :第四步:下载安装Android SDK :第五步:为Eclipse安装ADT插件. 关于JDK,他所包含的基本工具主要有:javac:Java编译器,将源代码转成字节码:jar:打包工具,将相关的类文件打包成一个文件:javadoc:文档生成器,从源码注释中提取文档:jdb:debugger,调试查错工具

[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

第二章  创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧..),比如书中 Boolean.valueOf(boolean) 1 public static final Boolean TRUE = new Boolean(true