SAP HANA tailored data center integration (TDI) was released in November 2013 to offer an additional approach of deploying SAP HANA. While the deployment of an appliance is easy and comfortable for customers, appliances impose limitations on the flexibility of selecting the hardware components for compute servers, storage, and network. Furthermore, operating appliances may require changes to established IT operation processes. For those who prefer leveraging their established processes and gaining more flexibility in hardware selection for SAP HANA, SAP introduced SAP HANA TDI. For more information please download this overview presentation.
SAP HANA TDI - Overview
I've done HANA training courses, How to practice?
HANATEC certificationhas in it's curricula the "HA100 - SAP HANA Introduction" and the "HA200 - SAP HANA Installation & Operations" training courses.
These courses are, in my opinion well structured and with enought exercises to get the exact understanding on the presented subjects. Perhaps the View concepts and creation in HA100 is to much stressed out than expected for the technical or BASIS consultant.
After a couple of weeks I was faced with the need to go thru all the course stuff again and I was searching for a HANA system to support my study and to do some or all the exercises .
The answer is in the HA100 course SPS7 though not anymore in SPS10. Creating a HANA Cloud free subscription for the "SAP HANA Developer Edition" it's enought for evaluations and exploration covering the HA100 material at least.
Get access to a HANA system
To get a free account we can do it from http://developers.sap.com/hana and there sign up (only step 2 on next picture) to get started with a free SAP HANA developer edition in the cloud.
We should be aware these web pages are changing and continually evolving so one can find out diferent look on the pages.
After filling all the information to sign up we get the confirmation via e-mail:
From the confimation e-mail we get the URL to access our just created Hana cloud, where s000#######will be the S-user:
https://account.hanatrial.ondemand.com/cockpit#/acc/s000######trial/services
Get some tutorial
The data model available in the evaluation system is not the same as the one used in HA100 training course. The following document posted by Stoyan Manchev is as a very good alternative even if it doesn't go so deeper on the exercises about creating views .
8 Easy Steps to Develop an XS application on the SAP HANA Cloud Platform
When following steps 1 to 4 we begin preparing the environment and then connecting HANA studio do the Hana cloud and creating a view. Don't need to go thru step 5 and nexts since they are not related with our certification.
To run the step 2 we need a HANA Studio. We can download it to install from https://tools.hana.ondemand.com/#hanatools; I've done it with the Luna edition.
Take your time. It will take a while to get everything fitted together in order to create the views.
Updating HANA Studio to connect to a cloud system
To connect to a cloud system using HANA Studio we need to install additional tools:
https://help.hana.ondemand.com/help/frameset.htm?b0e351ada628458cb8906f55bcac4755.html
And as result we get a new option to Add cloud system:
Test your knowledge
After going thru these steps we'll master the HANA100 and to test our knowledge before going to SAP to make the examen we can do a small assessment which we get choosing "Discovery Preview: SAP HANA Introduction" on https://performancemanager.successfactors.eu
This is a 12 hours e-learning free course based on HA100 with a web assessment included.
Limitations
Unfortunatelly this HANA Developpment Edition for wich we can have a freee access on the cloud is useless to cover almost all if not all the subjects of HA200 Because it has limitations in the adiministration parts. We are not able to define users, roles or even display any administration view.
SAP HANA TDI - Storage Requirements
As an in-memory database, SAP HANA uses storage devices to save a copy of the data, for the purpose of startup and fault recovery without data loss. The choice of the specific storage technology is driven by various requirements like size, performance and high availability. This paper discusses the SAP HANA storage requirements.
SAP HANA Security - An Overview
Protecting a company's or an organization's critical data from unauthorized access and ensuring compliance with the growing number of rules and regulations is becoming increasingly important for SAP customers. The purpose of this document is to give IT security experts a starting point and overview of what they need to understand about SAP HANA in order to comply with security-relevant regulations and policies and to protect their SAP HANA implementation and the data within from unauthorized access.
Troubleshooting Hanging Situations in HANA
Purpose
The purpose of this document is to instruct SAP customers on how to analyse hanging situations in their HANA system.
Overview
Analyzing hanging situations.
So what constituencies a hanging situation in HANA? When we talk about a hanging situation we generally refer to a whole system wide hang, as opposed to highlighting one specific activity, ie: queries or operations. This means we are going to look at the systems conditions (performance) which leads the DB to run slowly, or not at all in some cases.
Like all other software systems, SAP HANA relies on hardware to run its processes. Even when looking at the most basic single sever, single host, we can see many areas which over lap and interact with one another, in other words, when you see a hang do not just assume the cause is all related to HANA.
So a small example of a hang / freeze situation I have witnessed is when a user goes to open the "Administrative Tab" in HANA Studio and the system hangs for a long period of time. Below is a small example of troubleshooting this issue.
Troubleshooting
The first thing you have to think of when you face this situation is to execute Runtime Dumps immediately.
Runtime Dumps can useful for the following situations:
- Standstill situations
- High CPU
- Hanging Threads
- Query cancellation not working
By checking an RTE dump you can look for certain key indicators such as Large Query plans. Large Query plans can indicate problematic SQL Queries. The thread of this SQL query can then be checked via the parent and also its child threads. These threads then link you back to short stacks which then can checked to see what exactly this stack is doing. See Troubleshooting High CPU for further info.
As the HANA Studio will more than likely be hanging during the hang / slow performance, you can use SSH to run the Runtime Dumps with 2 minute intervals through the means of this hdbsql script:
DATE=`date +%Y%m%d.%H%M%S` ; for PID in `ps x|grep -E "hdb(index)server"|grep -v grep|awk '{print $1}'` ; do CMDLINE=`ps x|grep -E "^ *${PID}"|grep -v grep |awk '{for(i=5;i<=NF;i++) printf $(i)}'` ; echo $PID - $CMDLINE ; hdbcons -p ${PID} "runtimedump dump -c" >${CMDLINE}-${PID}-${DATE}.dump ; done ; sleep 120 ; DATE=`date +%Y%m%d.%H%M%S` ; for PID in `ps x|grep -E "hdb((index+)server"|grep -v grep|awk '{print $1}'` ; do CMDLINE=`ps x|grep -E "^ *${PID}"|grep -v grep |awk '{for(i=5;i<=NF;i++) printf $(i)}'` ; echo $PID - $CMDLINE ; hdbcons -p ${PID} "runtimedump dump -c" >${CMDLINE}-${PID}-${DATE}.dump ; done
After running the script you can then open the generated RTE dumps. The dumps will show you what exact queries were running at the time of the hang / freeze.
These queries can then either be searched on the SAP search or you can check to see if these are your own customer queries which need to be looked at it terms of optimization. (Also if you have to open an incident with SAP this information will be what the engineer will be looking for)
In relation to the HANA Studio Hang, the solution for this can be found by searching the SQL Query generated which will return the Note High CPU when opening admin console
The vast majority of hanging situations are related to bottleneck issues with with CPU, Storage, Network etc.
Usually the DBA will know the time and date of the hang that is causing the issues, but if this is not known you can always use the Performance load graph. As of SP9 you can now use the HANA Cockpit load graph. (I know this was a function already available in previous revisions but this did not work very well and crashed a lot). This preforms better and does not crash like its predecessor in Studio if the nameserverhistory file was large.
Going to the SAP HANA Cockpit, you can then see the SAP HANA Database Administration section with nice looking Fiori designed tiles:
Here you can check at what time and date did the system experience the issues.
Please also be aware of the HANA Offline Cockpit functionality that became available recently. By logging in with the SIDADM user you can use the "Troubleshoot Unresponsive System" also:
If the load graph cannot be access by either Studio or Cockpit you can also use the TOP command at OS level which will show you the running processes:
So now you have the Time Stamp of the issue. Now you go to HANA Diagnosis Tab in Studio , or its corresponding tile in Cockpit.
Here is where you locate the time stamp in the relevant files so you can see what was happening before, during and after the hang.
The first files to look into are the indexserver + nameserver. Check the corresponding time stamps (Before and during the time) in these files to see if any obvious errors are apparent. Some examples of errors you may see before the system hang can be:
- SQL error 131: transaction rolled back by lock wait timeout
- SQL error 133: transaction rolled back by detected deadlock
If you see these please see Note on Lock Analysis
- mvcc_anti_ager.cc(01291) : There are too many un-collected versions.
('number of versions > 1000000' or 'maximum number of versions per record > 100000')
- The cursor possibly block the garbage collection of HANA database.
mvcc_anti_ager.cc(01291) : There are too many un-collected versions on table "<schema>"."<table>"
('number of versions for one of the partitions > 1000000' or 'maximum number of versions per record > 100000')
- The transaction blocks the garbage collection of HANA database.
mvcc_anti_ager.cc(01199) : long running uncommitted write transaction detected.
mvcc_anti_ager.cc(01082) : The Connection is disconnected forcefully because it is blocking garbage collection for too long period.
Statement.cc(03190) : session control command is performed by ..., user=SYSTEM, query=ALTER SYSTEM DISCONNECT SESSION '<conn_id>'
mvcc_anti_ager.cc(00834) : long running cursor detected.
- The open cursor possibly blocks the garbage collection of HANA database.
Please close a cursor in application or kill the connection by "ALTER SYSTEM DISCONNECT SESSION '<conn_id>' "
The above refers to a long running transaction that has yet to be committed and could be causing your system to hang. If you were to see any of these errors please see FAQ on Garbage Collection.
If you have checked the HANA logs and you can nothing obvious or problematic, then here is when you check the var/log/messages.
If you see some irregularities in these files then open a ticket with your hardware provider.
The main point to take from this document is to ALWAYS try and capture the hang with runtime dumps. This will then give you the DBA or SAP a very good chance of identifying the root cause of the hang.
Michael
[SAP HANA Academy] SAP HANA SPS11 - SAP HANA Security - How to Create a User with"NO_FROCE_FIRST_PASSWORD"
In a tutorial video the SAP HANA Academy's Jamie Wiseman shows how to create a user using the "NO_FORCE_FIRST_PASSWORD_CHANGE" option. This option enables a user to not have to change their password the very first time they log into SAP HANA. Note that your password's lifetime policy will still apply. The option is new in SAP HANA SPS11 but will not work in prior iterations of SAP HANA.
Check out Jamie's video below.
Lines 2-3 of the syntax shown below creates a user with the NO FORCE_FIRST_PASSWORD_CHANGE option. With this option the user's current and valid password is specified during the user creation. Therefore it is highly recommended to use a secure password at this point. The user you're logged into SAP HANA as must have the appropriate rights to create a user.
After all of the syntax is run navigate to the results from the SELECT * FROM USERS statement.
The newly created user's information is displayed on the last line of the table. Scrolling to the two Password columns (PASSWORD_CHANGE_TIME and PASSWORD_CHANGE_NEEDED) verifies that the user will not need to change their password until the password's lifetime expires.
If you're unsure regarding the system view name that contains your password policy it will be displayed in the results table from the SELECT * FROM M_PASSWORD_POLICY statement. Note that the password's lifetime policy in Jamie's demonstration in 182 days.
For more tutorials videos on What's New with SAP HANA SPS11 please check out this playlist.
SAP HANA Academy - Over 1,300 free tutorials videos on SAP HANA, SAP Analytics and the SAP HANA Cloud Platform.
Follow us on Twitter @saphanaacademy and connect with us on LinkedIn to keep apprised of our latest free tutorials.
[SAP HANA Academy] SAP HANA SPS11 - HANA Spatial: Intersection Aggregate Method, ST_INTERSECTIONAGGR
In a tutorial video the SAP HANA Academy's Jamie Wiseman examines the Intersection Aggregate method, which is part of SAP HANA Spatial. This method is new to SAP HANA and available in SAP HANA SPS11. Watch Jamie's video below.
The Intersection Aggregate method returns the spatial intersection of all of the geometries in a group. The aggregate is logically computed by repeatedly applying the spatial type intersection method to combine two geometries at a time.
Jamie is using the .ST_AsText method so that the results are returned in a more readable format as opposed to the results coming back in a binary format. The syntax used in this video is available in the description of the video and also at the bottom of this post.
Lines 3-19 of the syntax will create a test schema and a test table. Next several geometries will be added to the shape column. The SRID will be 0 as Jamie will be looking at geometries in a Cartesian system.
If you run lines 4-25 you will return the data from your test table as shown below.
The table contains a pair of closed polygons, specifically a square and a triangle, and a line segment. The visual representation of these geometries are depicted below. The geometries were added in the following order: square, triangle, line.
Executing lines 28-29 will run the Intersection Aggregation on the shape column. The result is the single line segment that is shown below.
Note that this method will return a null if there is no common intersection between the complete set of geometries that are being compared. Also if the final set that the method looks at is a single geometry then that single geometry will be returned.
For more tutorials videos on What's New with SAP HANA SPS11 please check out this playlist.
SAP HANA Academy - Over 1,300 free tutorials videos on SAP HANA, SAP Analytics and the SAP HANA Cloud Platform.
Follow us on Twitter @saphanaacademy and connect with us on LinkedIn to keep apprised of our latest free tutorials.
Tutorial's Syntax:
-- create a test schema and add a test table
CREATE SCHEMA DEVTEST;
CREATE COLUMN TABLE DEVTEST.SPATIALTEST (
ID INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
SHAPE ST_GEOMETRY(0)
);
-- add several geometries to the test table
INSERT INTO DEVTEST.SPATIALTEST VALUES (
NEW ST_Polygon('Polygon ((0 0, 4 0, 4 4, 0 4, 0 0))')
);
INSERT INTO DEVTEST.SPATIALTEST VALUES (
NEW ST_Polygon('Polygon ((1 3, 3 1, 3 3, 1 3))')
);
INSERT INTO DEVTEST.SPATIALTEST VALUES (
NEW ST_LineString('LineString (0 0, 3 3)')
);
-- look at the data in the test table
SELECT
SHAPE.ST_AsWKT() AS SHAPE,
SHAPE.ST_GeometryType() AS SHAPE_TYPE
FROM DEVTEST.SPATIALTEST;
-- use ST_IntersectionAggr on the SHAPE column
SELECT ST_IntersectionAggr ( SHAPE ).ST_AsText()
FROM DEVTEST.SPATIALTEST;
[SAP HANA Academy] SAP HANA SPS11 - SQL Functions: BinToHex & BinToNHex Functions
In a tutorial video the SAP HANA Academy's Jamie Wiseman examines two binary to hexadecimal conversion SQL Functions. Jamie details how to use the BinToHex () and the BinToNHex() functions. This pair of functions are new to SAP HANA SPS11. Watch Jamie's video below.
The difference between the two new SQL functions is the output type. The conversion of BinToHex is a VarChar output while the conversion of BinToNHex is a NVarChar output.
Jamie enters the syntax shown below and displayed at the bottom of this post into a SQL console in SAP HANA Studio.
Both functions require a single parameter (input value) and produce a hexadecimal value as the output. Running the syntax returns identical results for the two queries, except that the BinToNHex has a NVarChar output.
So the decision to use BinToHex or BinToNHex will largely depend on what your application is expecting.
Note that both the BinToHex and BinToNHex functions will automatically convert any input to binary. Therefore you won't need to use a To_BINARY conversion. A To_BINARY conversion is currently displayed in the second column of the result tables highlighted above.
For more tutorials videos on What's New with SAP HANA SPS11 please check out this playlist.
SAP HANA Academy - Over 1,300 free tutorials videos on SAP HANA, SAP Analytics and the SAP HANA Cloud Platform.
Follow us on Twitter @saphanaacademy and connect with us on LinkedIn to keep apprised of our latest free tutorials.
Tutorial's Syntax:
SELECT
BINTOHEX('ABC'),
BINTOHEX(TO_BINARY('ABC'))
FROM DUMMY;
-- Converts a binary value to a hexadecimal value as a VARCHAR data type.
-- The input value is converted to a binary value first if it is not a binary value.
--results:
--414243, 414243
SELECT
BINTONHEX('ABC'),
BINTONHEX(TO_BINARY('ABC'))
FROM DUMMY;
-- Converts a binary value to a hexadecimal value as an NVARCHAR data type.
-- The input value is converted to a binary value first if it is not a binary value.
--results:
--414243, 414243
Bye bye "Standart Jobs function"
Standart Jobs function (transaction SM36) is obsolete in SAP S/4HANA for sap technical jobs. Instead of it, we have a new easy way: Technical Job Repository.
Technical Job Repository carries out the scheduling of periodic technical sap jobs in the client.
Also this mechanism is carried out automatically by the system. You do not need any interaction and scheduling, unlike the earlier Standard Jobs function in SM36.
New Job Repository function calls the transaction SJOBREPO.
SJOBREPO displays an overview of all job definitions delivered and scheduled by SAP in the technical job repository.
You can use SJOBREPO to change a job definition within certain limits or to completely deactivate it.
There is a hourly working trigger for technical background job generation. One kernel parameter is responsible for this mechanism (rdisp/job_repo_activate_time). These generations logs are stored in table BTCCTL for the last execution time.
There is good one SAP note (#2190119) and it has an attached PDF document that explains the functionality and customizing possibilities of the technical job repository in SAP S/4HANA.
Have fun!
Importing Database Systems in Bulk into SAP DB Control Center
Registering a large number of database systems to monitor one by one can become a time consuming process. Instead of adding one system at a time, you can add multiple systems at once using an import file.
Note: This document was originally created by a former colleague of mine, Yuki Ji, in support of a customer engagement initiative regarding the SAP DB Control Center (DCC) product. To preserve this knowledge, the document was migrated to this space.
- Configure Monitored Systems - Make sure to setup the technical user for each system you wish to configure. You will need the credentials of the technical user for import registration.
- Create an Import File - Create an import file according to the format indicated in the link. Save the import file as either a .csv or a .txt file.
In the import file you are able to omit system login IDs or passwords. If you do so, SAP DCC prompts you during the import process for the missing information BUT it prompts you for only one user/password pair. The entered pair is then used for each system that is missing credentials for that import. If you are importing multiple systems with unique user/password combinations, it is simplest to import the systems in separate operations or to include all the login credentials in the import file. - Login to DCC and open System Directory. In the bottom right corner of System Directory select Import Systems.
- Select your Import file from your local system and click Load File to continue to the next step.
- Below you will see that one of the systems we entered, PM1, has already been registered so no further actions can be taken for that system. For the other systems, PM2 and YJI we can see that we are missing credentials for system YJI. The credentials will be addressed in the next step.
In this step we choose which systems we wish to continue registering. For this example I am selecting both PM2 and YJI.
Note: If DCC is unable to find or connect to the system, or there is a typo in the import file, you will see the related error messages on this page. Some things to check initially: monitored system configuration, Import file spelling and inputs. - On selecting Import, because we have credentials missing we are asked to supply them. The window also give a reminder that the credentials entered here will be applied to all systems that do not already credentials supplied. The credentials I enter will be applied to system YJI.
- After clicking Login, if the credentials are correct the systems are registered! If after clicking Login the system is not registered, check the credentials you entered and whether they match the system.
SAP HANA Workload Management
SAP HANA is a real-time, in-memory data management platform that addresses all data processing scenarios of any customer application. This leads to the typical operating environment where many concurrent users running different applications produce a heterogeneous set of workloads in the SAP HANA database. These various workloads have different resource demands to the system and compete for shared resources in the SAP HANA database. SAP HANA provides various workload management options for controlling resource consumption. The document gives detailed information about that options based on SPS11.
Feature Scope Description for SAP HANA
The feature scope description for SAP HANA explains which features, capabilities and documentation are available for SAP HANA SPS11.
SAP HANA virtualized - Overview
With the release of SAP HANA SPS 05, SAP announced support for VMware hypervisor, as the first technology supported to partition a SAP HANA server into smaller partitions / VMs. Meanwhile SAP has further extended its support to run SAP HANA in a virtualized / partitioned (multi-tenant) environments, by adding additional scenarios and technologies supported.
See SAP Note 1788665 and attached SAP HANA technology roadmap for running on virtualized / partitioned platforms for more information on currently supported scenarios and where to find further information on best practices and constraints which may apply.
In short, current SAP HANA support covers:
- General support for SAP HANA on VMware vSphere 5.1 in non-production
- General support for single SAP HANA VMs on VMware vSphere 5.5 in production and non-production
- Controlled General Availability for multi-VM and BW on HANA scale-out scenarios on VMware vSphere 5.5 in production
- Controlled Availability for Hitachi LPAR (single and multiple partitions) in production
News, February 8, 2016 |
---|
As of February 8th, 2016, the multi-VM and Scale-out scenarios on vSphere 5.5 have moved into General Availability after a more than a year-long testing period and after the defined KPIs for the number of live customers have been met. Not only typically mid-term project plans, but also customer satisfaction and accordingly low feedback rates made this program last longer than expected. Also see SAP Note 2024433 and SAP Note 2157587. |
On our roadmap for future support are:
- Support of larger VMs and 8-socket hardware with VMware vSphere 6
See above referenced SAP Note and slide deck for additional information and details.
SAP HANA TDI - Overview
SAP HANA tailored data center integration (TDI) was released in November 2013 to offer an additional approach of deploying SAP HANA. While the deployment of an appliance is easy and comfortable for customers, appliances impose limitations on the flexibility of selecting the hardware components for compute servers, storage, and network. Furthermore, operating appliances may require changes to established IT operation processes. For those who prefer leveraging their established processes and gaining more flexibility in hardware selection for SAP HANA, SAP introduced SAP HANA TDI. For more information please download this overview presentation.
I've done HANA training courses, How to practice?
HANATEC certificationhas in it's curricula the "HA100 - SAP HANA Introduction" and the "HA200 - SAP HANA Installation & Operations" training courses.
These courses are, in my opinion well structured and with enought exercises to get the exact understanding on the presented subjects. Perhaps the View concepts and creation in HA100 is to much stressed out than expected for the technical or BASIS consultant.
After a couple of weeks I was faced with the need to go thru all the course stuff again and I was searching for a HANA system to support my study and to do some or all the exercises .
The answer is in the HA100 course SPS7 though not anymore in SPS10. Creating a HANA Cloud free subscription for the "SAP HANA Developer Edition" it's enought for evaluations and exploration covering the HA100 material at least.
Get access to a HANA system
To get a free account we can do it from http://developers.sap.com/hana and there sign up (only step 2 on next picture) to get started with a free SAP HANA developer edition in the cloud.
We should be aware these web pages are changing and continually evolving so one can find out diferent look on the pages.
After filling all the information to sign up we get the confirmation via e-mail:
From the confimation e-mail we get the URL to access our just created Hana cloud, where s000#######will be the S-user:
https://account.hanatrial.ondemand.com/cockpit#/acc/s000######trial/services
Get some tutorial
The data model available in the evaluation system is not the same as the one used in HA100 training course. The following document posted by Stoyan Manchev is as a very good alternative even if it doesn't go so deeper on the exercises about creating views .
8 Easy Steps to Develop an XS application on the SAP HANA Cloud Platform
When following steps 1 to 4 we begin preparing the environment and then connecting HANA studio do the Hana cloud and creating a view. Don't need to go thru step 5 and nexts since they are not related with our certification.
To run the step 2 we need a HANA Studio. We can download it to install from https://tools.hana.ondemand.com/#hanatools; I've done it with the Luna edition.
Take your time. It will take a while to get everything fitted together in order to create the views.
Updating HANA Studio to connect to a cloud system
To connect to a cloud system using HANA Studio we need to install additional tools:
https://help.hana.ondemand.com/help/frameset.htm?b0e351ada628458cb8906f55bcac4755.html
And as result we get a new option to Add cloud system:
Test your knowledge
After going thru these steps we'll master the HANA100 and to test our knowledge before going to SAP to make the examen we can do a small assessment which we get choosing "Discovery Preview: SAP HANA Introduction" on https://performancemanager.successfactors.eu
This is a 12 hours e-learning free course based on HA100 with a web assessment included.
Limitations
Unfortunatelly this HANA Developpment Edition for wich we can have a freee access on the cloud is useless to cover almost all if not all the subjects of HA200 Because it has limitations in the adiministration parts. We are not able to define users, roles or even display any administration view.
SAP HANA TDI - Storage Requirements
As an in-memory database, SAP HANA uses storage devices to save a copy of the data, for the purpose of startup and fault recovery without data loss. The choice of the specific storage technology is driven by various requirements like size, performance and high availability. This paper discusses the SAP HANA storage requirements.
SAP HANA Security - An Overview
Protecting a company's or an organization's critical data from unauthorized access and ensuring compliance with the growing number of rules and regulations is becoming increasingly important for SAP customers. The purpose of this document is to give IT security experts a starting point and overview of what they need to understand about SAP HANA in order to comply with security-relevant regulations and policies and to protect their SAP HANA implementation and the data within from unauthorized access.
Scientific Publications and Activities of the SAP HANA Database Campus
This is a list of selected publications and activities made by the SAP HANA Database Campus.
2016
- David Kernert, Wolfgang Lehner, Frank Köhler. Topology-Aware Optimization of Big Sparse Matrices and Matrix Multiplications on Main-Memory Systems. ICDE 2016, Helsinki, Finland, May 16-20, 2016.
- Elena Vasilyeva, Maik Thiele, Thomas Heinze, Wolfgang Lehner. DebEAQ - Debugging Empty-Answer Queries On Large Data Graphs (Demonstration). ICDE 2016, Helsinki, Finland, May 16-20, 2016.
- Elena Vasilyeva. Why-Query Support in Graph Databases (PhD Symposium). ICDE 2016, Helsinki, Finland, May 16-20, 2016.
2015
- Elena Vasilyeva, Maik Thiele, Christof Bornhövd, Wolfgang Lehner. Considering User Intention in Differential Graph Queries. Journal of Database Management (JDM), 26(3), 21-40. doi: 10.4018/JDM.2015070102
- Elena Vasilyeva, Maik Thiele, Christof Bornhövd, Wolfgang Lehner. Answering "Why Empty?" and "Why So Many?" queries in graph databases. Journal of Computer and System Sciences (2015), DOI=10.1016/j.jcss.2015.06.007 http://dx.doi.org/10.1016/j.jcss.2015.06.007
- 2nd place in the ACM SIGMOD 2015 programming contest. For more details, click here.
- The second SAP HANA student Campus Open House day took place in Walldorf on June 24th, 2015. For more details, click here.
- Mehul Wagle, Daniel Booss, Ivan Schreter. Scalable NUMA-Aware Memory Allocations with In-Memory Databases. TPCTC 2015 (co-located with VLDB 2015), Kohala Coast, Hawaii, USA, August 31 - September 4, 2015.
- Marcus Paradies, Elena Vasilyeva, Adrian Mocan, Wolfgang Lehner. Robust Cardinality Estimation for Subgraph Isomorphism Queries on Property Graphs. Big-O(Q) 2015 (co-located with VLDB 2015), Kohala Coast, Hawaii, USA, August 31 - September 4, 2015.
- Max Wildemann, Michael Rudolf, Marcus Paradies. The Time Has Come: Traversal and Reachability in Time-Varying Graphs. Big-O(Q) 2015 (co-located with VLDB 2015), Kohala Coast, Hawaii, USA, August 31 - September 4, 2015.
- Iraklis Psaroudakis, Tobias Scheuer, Norman May, Abdelkader Sellami, Anastasia Ailamaki. Scaling Up Concurrent Main-Memory Column-Store Scans: Towards Adaptive NUMA-aware Data and Task Placement. VLDB 2015, Kohala Coast, Hawaii, USA, August 31 - September 4, 2015.
- Jan Finis, Robert Brunel, Alfons Kemper, Thomas Neumann, Norman May, Franz Faerber. Indexing Highly Dynamic Hierarchical Data. VLDB 2015, Kohala Coast, Hawaii, USA, August 31 - September 4, 2015.
- David Kernert, Norman May, Michael Hladik, Klaus Werner, Wolfgang Lehner. From Static to Agile - Interactive Particle Physics Analysis with the SAP HANA DB. DATA 2015, Colmar, France, July 20-22, 2015.
- Marcus Paradies, Wolfgang Lehner, Christof Bornhövd. GRAPHITE: An Extensible Graph Traversal Framework for Relational Database Management Systems. SSDBM 2015, San Diego, USA, June 29 - July 1, 2015.
- Elena Vasilyeva, Maik Thiele, Adrian Mocan, Wolfgang Lehner. Relaxation of Subgraph Queries Delivering Empty Results. SSDBM 2015, San Diego, USA, June 29 - July 1, 2015.
- Florian Wolf, Iraklis Psaroudakis, Norman May, Anastasia Ailamaki, Kai-Uwe Sattler. Extending Database Task Schedulers for Multi-threaded Application Code. SSDBM 2015, San Diego, USA, June 29 - July 1, 2015.
- Ingo Müller, Peter Sanders, Arnaud Lacurie, Wolfgang Lehner, Franz Färber. Cache-Efficient Aggregation: Hashing Is Sorting. SIGMOD 2015, Melbourne, Australia, May 31-June 4, 2015.
- Daniel Scheibli, Christian Dinse, Alexander Böhm. QE3D: Interactive Visualization and Exploration of Complex, Distributed Query Plans . SIGMOD 2015 (Demonstration), Melbourne, Australia, May 31-June 4, 2015.
- Martin Kaufmann, Peter M. Fischer, Norman May, Chang Ge, Anil K. Goel, Donald Kossmann. Bi-temporal Timeline Index: A Data Structure for Processing Queries on Bi-temporal Data. ICDE 2015, Seoul, Korea, April 2015.
- Robert Brunel, Jan Finis, Gerald Franz, Norman May, Alfons Kemper, Thomas Neumann, Franz Faerber. Supporting Hierarchical Data in SAP HANA. ICDE 2015, Seoul, Korea, April 2015.
- David Kernert, Frank Köhler, Wolfgang Lehner. SpMachO - Optimizing Sparse Linear Algebra Expressions with Probabilistic Density Estimation. EDBT 2015, Brussels, Belgium, March 23-27, 2015.
- Alexander Böhm: Keynote: Novel Optimization Techniques for Modern Database Environments. BTW 2015: 23-24, March 5, 2015, Hamburg
- Alexander Böhm, Mathias Golombek, Christoph Heinz, Henrik Loeser, Alfred Schlaucher, Thomas Ruf: Panel: Big Data - Evolution oder Revolution in der Datenverarbeitung? BTW 2015: 647-648, March 5, 2015, Hamburg
- Ismail Oukid, Wolfgang Lehner, Thomas Kissinger, Thomas Willhalm, Peter Bumbulis. Instant Recovery for Main-Memory Databases. CIDR 2015, Asilomar, California, USA. January 4-7, 2015.
2014
- The first SAP HANA Student Campus Open House day took place in Walldorf on June 5th, 2014. For more details, click here.
- Iraklis Psaroudakis, Florian Wolf, Norman May, Thomas Neumann, Alexander Böhm, Anastasia Ailamaki, Kai-Uwe Sattler. Scaling up Mixed Workloads: a Battle of Data Freshness, Flexibility, and Scheduling. TPCTC 2014, Hangzhou, China, September 1-5, 2014.
- Michael Rudolf, Hannes Voigt, Christof Bornhövd, Wolfgang Lehner. SynopSys: Foundations for Multidimensional Graph Analytics. BIRTE 2014, Hangzhou, China, September 1, 2014.
- Elena Vasilyeva, Maik Thiele, Christof Bornhövd, Wolfgang Lehner: Top-k Differential Queries in Graph Databases. In Advances in Databases and Information Systems - 18th East European Conference, ADBIS 2014, Ohrid, Republic of Macedonia, September 7-10, 2014.
- Kim-Thomas Rehmann, Alexander Böhm, Dong Hun Lee, Jörg Wiemers: Continuous performance testing for SAP HANA. First International Workshop on Reliable Data Services and Systems (RDSS), Co-located with ACM SIGMOD 2014, Snowbird, Utah, USA
- Guido Moerkotte, David DeHaan, Norman May, Anisoara Nica, Alexander Böhm: Exploiting ordered dictionaries to efficiently construct histograms with q-error guarantees in SAP HANA. SIGMOD Conference 2014, Snowbird, Utah, USA
- Ismail Oukid, Daniel Booss, Wolfgang Lehner, Peter Bumbulis, Thomas Willhalm. SOFORT: A Hybrid SCM-DRAM Storage Engine For Fast Data Recovery. DaMoN 2014, Snowbird, USA, June 22-27, 2014.
- Iraklis Psaroudakis, Thomas Kissinger, Danica Porobic, Thomas Ilsche, Erietta Liarou, Pinar Tözün, Anastasia Ailamaki, Wolfgang Lehner. Dynamic Fine-Grained Scheduling for Energy-Efficient Main-Memory Queries. DaMoN 2014, Snowbird, USA, June 22-27, 2014.
- Marcus Paradies, Michael Rudolf, Christof Bornhövd, Wolfgang Lehner. GRATIN: Accelerating Graph Traversals in Main-Memory Column Stores. GRADES 2014, Snowbird, USA, June 22-27, 2014.
- David Kernert, Frank Köhler, Wolfgang Lehner. SLACID - Sparse Linear Algebra in a Columnar In-Memory Database System. SSDBM, Aalborg, Denmark, June/July 2014.
- Ingo Müller, Peter Sanders, Robert Schulze, Wei Zhou. Retrieval and Perfect Hashing using Fingerprinting. SEA 2014, Copenhagen, Denmark, June/July 2014.
- Martin Kaufmann, Peter M. Fischer, Norman May, Donald Kossmann. Benchmarking Bitemporal Database Systems: Ready for the Future or Stuck in the Past? EDBT 2014, Athens, Greece, March 2014.
- Ingo Müller, Cornelius Ratsch, Franz Färber. Adaptive String Dictionary Compression in In-Memory Column-Store Database Systems. EDBT 2014, Athens, Greece, March 2014.
- Elena Vasilyeva, Maik Thiele, Christof Bornhövd, Wolfgang Lehner: GraphMCS: Discover the Unknown in Large Data Graphs. EDBT/ICDT Workshops: 200-207.
2013
- Sebastian Breß, Felix Beier, Hannes Rauhe, Kai-Uwe Sattler, Eike Schallehn, Gunter Saake, Efficient co-processor utilization in database query processing, Information Systems, Volume 38, Issue 8, November 2013, Pages 1084-1096
- Martin Kaufmann. PhD Workshop: Storing and Processing Temporal Data in a Main Memory Column Store. VLDB 2013, Riva del Garda, Italy, August 26-30, 2013.
- Hannes Rauhe, Jonathan Dees, Kai-Uwe Sattler, Franz Färber. Multi-Level Parallel Query Excecution Framework for CPU and GPU. ADBIS 2013, Genoa, Italy, September 1-4, 2013.
- Iraklis Psaroudakis, Tobias Scheuer, Norman May, Anastasia Ailamaki. Task Scheduling for Highly Concurrent Analytical and Transactional Main-Memory Workloads. ADMS 2013, Riva del Garda, Italy, August 2013.
- Thomas Willhalm, Ismail Oukid, Ingo Müller, Franz Faerber. Vectorizing Database Column Scans with Complex Predicates. ADMS 2013, Riva del Garda, Italy, August 2013.
- David Kernert, Frank Köhler, Wolfgang Lehner. Bringing Linear Algebra Objects to Life in a Column-Oriented In-Memory Database. IMDM 2013, Riva del Garda, Italy, August 2013.
- Martin Kaufmann, Peter M. Fischer, Norman May, Andreas Tonder, Donald Kossmann. TPC-BiH: A Benchmark for Bi-Temporal Databases. TPCTC 2013, Riva del Garda, Italy, August 2013.
- Martin Kaufmann, Panagiotis Vagenas, Peter M. Fischer (Univ. of Freiburg), Donald Kossmann, Franz Färber (SAP). DEMO: Comprehensive and Interactive Temporal Query Processing with SAP HANA. VLDB 2013, Riva del Garda, Italy, August 26-30, 2013.
- Philipp Große, Wolfgang Lehner, Norman May: Advanced Analytics with the SAP HANA Database. DATA 2013.
- Jan Finis, Robert Brunel, Alfons Kemper, Thomas Neumann, Franz Faerber, Norman May. DeltaNI: An Efficient Labeling Scheme for Versioned Hierarchical Data. SIGMOD 2013, New York, USA, June 22-27, 2013.
- Michael Rudolf, Marcus Paradies, Christof Bornhövd, Wolfgang Lehner. SynopSys: Large Graph Analytics in the SAP HANA Database Through Summarization. GRADES 2013, New York, USA, June 22-27, 2013.
- Elena Vasilyeva, Maik Thiele, Christof Bornhövd, Wolfgang Lehner: Leveraging Flexible Data Management with Graph Databases. GRADES 2013, New York, USA, June 22-27, 2013.
- Jonathan Dees, Peter Sanders. Efficient Many-Core Query Execution in Main Memory Column-Stores. ICDE 2013, Brisbane, Australia, April 8-12, 2013
Martin Kaufmann, Peter M. Fischer (Univ. of Freiburg), Donald Kossmann, Norman May (SAP). DEMO: A Generic Database Benchmarking Service. ICDE 2013, Brisbane, Australia, April 8-12, 2013.
- Martin Kaufmann, Amin A. Manjili, Peter M. Fischer (Univ. of Freiburg), Donald Kossmann, Franz Färber (SAP), Norman May (SAP): Timeline Index: A Unified Data Structure for Processing Queries on Temporal Data, SIGMOD 2013, New York, USA, June 22-27, 2013.
- Martin Kaufmann, Amin A. Manjili, Stefan Hildenbrand, Donald Kossmann, Andreas Tonder (SAP). Time Travel in Column Stores. ICDE 2013, Brisbane, Australia, April 8-12, 2013
- Rudolf, M., Paradies, M., Bornhövd, C., & Lehner, W. (2013). The Graph Story of the SAP HANA Database. BTW (pp. 403–420).
- Robert Brunel, Jan Finis: Eine effiziente Indexstruktur für dynamische hierarchische Daten. BTW Workshops 2013: 267-276
2012
- Rösch, P., Dannecker, L., Hackenbroich, G., & Färber, F. (2012). A Storage Advisor for Hybrid-Store Databases. PVLDB (Vol. 5, pp. 1748–1758).
- Sikka, V., Färber, F., Lehner, W., Cha, S. K., Peh, T., & Bornhövd, C. (2012). Efficient transaction processing in SAP HANA database. SIGMOD Conference (p. 731).
- Färber, F., May, N., Lehner, W., Große, P., Müller, I., Rauhe, H., & Dees, J. (2012). The SAP HANA Database -- An Architecture Overview. IEEE Data Eng. Bull., 35(1), 28-33.
- Sebastian Breß, Felix Beier, Hannes Rauhe, Eike Schallehn, Kai-Uwe Sattler, and Gunter Saake. 2012. Automatic selection of processing units for coprocessing in databases. ADBIS'12
2011
- Färber, F., Cha, S. K., Primsch, J., Bornhövd, C., Sigg, S., & Lehner, W. (2011). SAP HANA Database - Data Management for Modern Business Applications. SIGMOD Record, 40(4), 45-51.
- Jaecksch, B., Faerber, F., Rosenthal, F., & Lehner, W. (2011). Hybrid data-flow graphs for procedural domain-specific query languages, 577-578.
- Große, P., Lehner, W., Weichert, T., & Franz, F. (2011). Bridging Two Worlds with RICE Integrating R into the SAP In-Memory Computing Engine, 4(12), 1307-1317.
2010
- Lemke, C., Sattler, K.-U., Faerber, F., & Zeier, A. (2010). Speeding up queries in column stores: a case for compression, 117-129.
- Bernhard Jaecksch, Franz Faerber, and Wolfgang Lehner. (2010). Cherry picking in database languages.
- Bernhard Jaecksch, Wolfgang Lehner, and Franz Faerber. (2010). A plan for OLAP.
- Paradies, M., Lemke, C., Plattner, H., Lehner, W., Sattler, K., Zeier, A., Krüger, J. (2010): How to Juggle Columns: An Entropy-Based Approach for Table Compression, IDEAS.
2009
- Binnig, C., Hildenbrand, S., & Färber, F. (2009). Dictionary-based order-preserving string compression for main memory column stores. SIGMOD Conference (p. 283).
- Kunkel, Julian M., Tsujita, Y., Mordvinova, O., & Ludwig, T. (2009). Tracing Internal Communication in MPI and MPI-I/O. 2009 International Conference on Parallel and Distributed Computing, Applications and Technologies (pp. 280-286).
- Legler, T. (2009). Datenzentrierte Bestimmung von Assoziationsregeln in parallelen Datenbankarchitekturen.
- Mordvinova, O., Kunkel, J. M., Baun, C., Ludwig, T., & Kunze, M. (2009). USB flash drives as an energy efficient storage alternative. 2009 10th IEEE/ACM International Conference on Grid Computing (pp. 175-182).
- Transier, F. (2009). Algorithms and Data Structures for In-Memory Text Search Engines.
- Transier, F., & Sanders, P. (2009). Out of the Box Phrase Indexing. In A. Amir, A. Turpin, & A. Moffat (Eds.), SPIRE (Vol. 5280, pp. 200-211).
- Willhalm, T., Popovici, N., Boshmaf, Y., Plattner, H., Zeier, A., & Schaffner, J. (2009). SIMD-scan: ultra fast in-memory table scan using on-chip vector processing units. PVLDB, 2(1), 385-394.
- Jäksch, B., Lembke, R., Stortz, B., Haas, S., Gerstmair, A., & Färber, F. (2009). Guided Navigation basierend auf SAP Netweaver BIA. Datenbanksysteme für Business, Technologie und Web, 596-599.
- Lemke, C., Sattler, K.-uwe, & Franz, F. (2009). Kompressionstechniken für spaltenorientierte BI-Accelerator-Lösungen. Datenbanksysteme in Business, Technologie und Web, 486-497.
- Mordvinova, O., Shepil, O., Ludwig, T., & Ross, A. (2009). A Strategy For Cost Efficient Distributed Data Storage For In-Memory OLAP. Proceedings IADIS International Conference Applied Computing, pages 109-117.
2008
- Hill, G., & Ross, A. (2008). Reducing outer joins. The VLDB Journal, 18(3), 599-610.
- Weyerhaeuser, C., Mindnich, T., Faerber, F., & Lehner, W. (2008). Exploiting Graphic Card Processor Technology to Accelerate Data Mining Queries in SAP NetWeaver BIA. 2008 IEEE International Conference on Data Mining Workshops (pp. 506-515).
- Schmidt-Volkmar, P. (2008). Betriebswirtschaftliche Analyse auf operationalen Daten (German Edition) (p. 244). Gabler Verlag.
Transier, F., & Sanders, P. (2008). Compressed Inverted Indexes for In-Memory Search Engines. ALENEX (pp. 3-12).
2007
- Sanders, P., & Transier, F. (2007). Intersection in Integer Inverted Indices.
- Legler, T. (2007). Der Einfluss der Datenverteilung auf die Performanz eines Data Warehouse. Datenbanksysteme für Business, Technologie und Web.
2006
- Bitton, D., Faerber, F., Haas, L., & Shanmugasundaram, J. (2006). One platform for mining structured and unstructured data: dream or reality?, 1261-1262.
- Geiß, J., Mordvinova, O., & Rams, M. (2006). Natürlichsprachige Suchanfragen über strukturierte Daten.
- Legler, T., Lehner, W., & Ross, A. (2006). Data mining with the SAP NetWeaver BI accelerator, 1059-1068.
“Backint for SAP HANA” Certification
Backint for SAP HANA is an API that enables 3rd party tool vendors to directly connect their backup agents to the SAP HANA database. Backups are transferred via pipe from the SAP HANA database to the 3rd party backup agent, which runs on the SAP HANA database server and then sends the backups to the 3rd party backup server.
3rd party backup tools that use the Backint API are integrated with SAP HANA's tools. You can execute the following actions directly from SAP HANA's tools:
- Backup and recovery
- Housekeeping (deleting old backups)
- Configuration of tool-specific parameters
For more information on the integration of 3rd party backup tools with SAP HANA, please refer to the Administration Guide.
Note: Installation documentation for the 3rd party backup tools is provided by the 3rd party tool vendors.
Which tools are certified? (Updated 2016-01-13)
Vendor | Backup Tool | On Intel Architecture | On POWER Architecture |
---|---|---|---|
Allen Systems | ASG-Time Navigator | Yes | No |
Commvault | Simpana, Hitachi Data Protection Suite (via Simpana Backint interface) | Yes | No |
EMC | Networker, EMC Interface for Data Domain Boost | Yes | No |
HP | Data Protector, HP StoreOnce Plug-in for SAP HANA | Yes | No |
IBM | Tivoli Storage Manager for Enterprise | Yes | No |
IBM | Spectrum Protect for Enterprise Resource Planning | No | Yes |
Libelle | BusinessShadow | Yes | No |
SEP | Sesam | Yes | No |
Symantec | NetBackup* | Yes | No |
You can find more details on the certified tools in the Application Development Partner Directory: Enter the search term “HANA-BRINT” and click on a partner name for further details.
* Note: The Symantec NetBackup tool is no longer visible in the Application Development Partner Directory, because it is still undergoing recertification. For questions about the current status of the recertification, please contact Symantec.
As a customer, what do I need to know?
Backup tools that use Backint for SAP HANA can only be installed on SAP HANA if they have been certified by SAP. You can find further details on this and on the installation of 3rd party tools on SAP HANA in general in the following SAP Notes:
- Using backup tools with Backint (login required)
- Using external software in a HANA appliance (login required)
Note: Snapshots are not part of the Backint API specification, and currently no certification is required for 3rd party tools using HANA snapshots.
Do I have to use a 3rd party backup tool to back up SAP HANA?
No, SAP HANA comes with native functionality for backup and recovery. Using 3rd party backup tools is an alternative to using the native SAP HANA functionality.
For more information on SAP HANA backup and recovery, please refer to the Administration Guide.
As a tool vendor, what do I have to do to get my backup tool certified for SAP HANA?
A detailed description of the certification process is available on the following page:Backup/recovery API for the SAP HANA database (Backint for SAP HANA (HANA-BRINT 1.1))
Recovery Technologies of SAP HANA-Part 1: System Failure Recovery
Databases protection
As we know, SAP HANA is a kind of in-memory database. How SAP HANA ensure that data consistency and correctness when system crash?
To answer this question, we should know that SAP HANA store data not only in memory but also in disk. And it is refer to a concept named database protection. It is means to prevent database from all kinds of interference and destruction, ensure the data save and reliable and recover rapidly from crash. So recovery technologies are important measures of databases protection. Transaction is a sequence of operation that can’t be split. For an example, bank transfer: account A transfer 100 dollar to account B. It is include two update operations:
- A=A-100
- B=B+100
These 2 operations cannot be split, they should either do both or never do at all. There are three kinds of state of transaction in log:
- <Start T> means transaction T has been started.
- <Commit T> means transaction T has been finished and all modifications have been written to database.
- <Abort T>means transaction T has been stop and all modifications have been undone.
Databases failure includes three types:
- Transaction failure is an internal failure of a single transaction and it will not affect other transaction.
- Media failure is hardware failure such as damage of disk, no space in disk, etc.
- System failure is soft failure such as outage, machine crash, etc. This kind of failure may result in memory data loss and affect all running transactions.
The goal of recovery of system failure is to recover system to state before failure happens.
Validation of recovery of SAP HANA system failure
The concepts mentioned above are applicable to SAP HANA database. So we can test it to validate recovery of SAP HANA system failure.At first, modify the interval of savepoint. In period of savepoint, SAP HANA system will persistent memory page to disk. It is 300s by default. We change it to 3000s.Open two SQL consoles and change the “auto commit” property to off.
Run console 1 sql command:
insert into "LOGTEST"."TEST" values(1,'谢谢大家关注HANAGeek,欢迎大家一起来学习SAP HANA知识,分享SAP HANA知识。'); |
Run console 2 sql command:
insert into "LOGTEST"."TEST" values(2,'谢谢大家关注HANAGeek,欢迎大家一起来学习SAP HANA知识,分享SAP HANA知识。');commit; |
Power off the machine of SAP HANA system. Then restart SAP HANA system and check the content of this table.We can regard console 1 and console 2 as transaction 1 and transaction 2. Because T1 executed one modification but committed it, SAP HANA rolled back to situation when T1 did not begin. Because T2 has committed before outage, SAP HANA recovered the system to the situation before outage even if system did not do savepoint operation.
Strategies of system failure
If the system failure is media failure, we need recover from copies of data at first. Then system will recover system using logs.
Transaction log
Transaction log is used to manage modifications in database system. It records all modification’s details. We do not need to persist all data when transaction is committed. Transaction log persistence is enough. When system crash, system’s last consistent state can be restore by replaying transaction logs. Hence logs must be recorded as chronological order.There are three types transaction log: undo log, redo log, undo/redo log. There are only two kinds of transaction logs in SAP HANA: undo log, redo log.There are three kinds of records in log files:
- <Start T> means transaction begin.
- <Commit, T>/ <Abort T> means transaction end.
- Update detail:
- Identification of transaction.
- Operation object.
- Value before update(undo log)/Value after update(redo log)/Value before update and value after update(undo/redo log).
Redo log
An important feature of redo log is that the log records must be written to disk before update data in to database system. The format of redo log record is <T,x,v> which T for identification of transaction, x for identification of update object and v for value after update.As shown below, operations of transaction T1: A=A-100,B=B+100. Left part of the picture is the steps of T1. Middle part of the picture is the content of redo log. Right part of the picture is initial value of A and B.
The steps of the recovery of redo log:
- Start to scan redo log from head and find all truncations which have the identifier <Commit, T>. Put them in a truncation list L.
- Scan records <T, x, v>. If T belong to L, then
- Write(X ,v) (assign new value v to X)
- Output(X) (write X to database system)
- For each T not belong to L, do write <Abort, T> to log file.
We do not need to concern about transactions without <Commit, T> because they definitely did not write data to database system. We need to redo transactions which have <Commit, T> because they may have not written to database system.The writing of redo log is synchronous with the transaction process. When SAP HANA system restart after crash, it will process redo log to recover system. To improve the efficiency of log processing, SAP HANA system will do save-point (check point). In the period of save point, system persist data which did not persist since last save-point. Hence, only the redo log since last save-point needs to be processed. The redo log before last save-point can be removed.
Undo log
SAP HANA not only persist the update data of transaction which has committed, but also may persist data which has not committed. So we need undo log which has been persisted in disk. The format of undo log record is <T, x, v> whose v represents the value before update.As shown below, the operations of transaction T1: A=A-100, B=B+100. Left part of the picture is the steps of T1. Middle part of the picture is the content of undo log.
The process of recovery:
- Start to scan redo log from head and find all truncations which don’t have the identifier <Commit, T> or <Abort, T>. Put them in a truncation list L.
- Scan records <T, x, v>. If T belong to L, then
• Write(X ,v) (assign new value v to X)• Output(X) (write X to database system)
- For each T not belong to L, do write <Abort, T> to log file.
In SAP HANA system, undo log do persistence when save-point which is different with redo log. Besides, undo log is written to the data area but not to the log area. The reason is that the system can be restore to the state of last save-point since restart from crash. If transactions after last save-point have committed, system can restore it using by redo log. If they have not committed, we do not need undo log after last save point to restore. So undo log after last save-point is useless. The advantages of this mechanism are:
- Fewer log records need to be persisted when transaction processing.
- It will slow the increase of disk.
- Database can be restored to the state of consistency from data area.
Save-point
When data base crashed, we need to scan all undo list and redo list to restore it. There are problems of this method:
- It will take a long time to scan the log.
- It will make the redo list too long, so take a long time to restore.
So SAP HANA chooses do save-point regularly:
- Do not accept new transactions.
- Write undo records to data area.
- Write modified memory pages into disk.
- Write identifier of save-point into redo log.
The process of save point is shown as below.