on 04-04-2012 12:23 AM
Let's suppose that I have a Java application that requires reasonable amounts of data (let's say, like a high-end BW OLAP client), but is VERY voracious in processing power, to the point that it is not executable on a production server. Could I use HANA's vast memory to run this application with decent response times ? Or is HANA's geared only to database performance ?
Francois, there are 2 main use cases for HANA / IMDB, the first one is when you query massive database. The other is when you query database in series. The situation is that you query database and the result is used to query database further. Now individually the queries could take few seconds in traditional database, but if you had 100 steps that you cannot run in parallel, the savings cumulatively would be quite significant.
I guess the answer would have to relate to your specific case and design.
You have to ask what exactly is causing you the performance bottleneck. Is it CPU, is it Memory outage. (A simple check could tell you that) and why?
You may e.g. get away with loading large arrays within Java, which is all you can do with a IMDB in your case, but programmers could find it difficult to program something that is fail-safe for power outages.
So, I think the best answer to your question is 'it depends' on your specific case.
PS: I would also like to add to the above by mentioning that within IMDB, calculations are pushed to the database and so your Java would only handle very limited amount of calculation logic. Since HANA is newer technology, I would presume, it is much better geared towards handling calculations of performance intensive applications.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Anand, thanks for your answer, which clarified my thinbking. Now I see it as a case of: 1) make a massive query, load this data in arrays, and handle the processing logic in the application vs 2)move the processing logic to the IMDB.
But I was not even sure if HANA could allow 1). From the answers I got, it seems that yes, the memory can be used for application purposes as well...
Hi Francois,
For sure you can fire a massive SQL statement and get the resultset in arrays or similar structures in Java App server, but that will make your application server large enough to hold the data volume and process the same.
I am sure you wish they implement a JVM in the Database like Oracle does :-), which can handle the Java coding / EJBs etc. But as of now, you'll have to settle with the DB Stored procedures to implement your business logic in HANA.
So it completely depends on where you want to put your investment for Infrastructure and development effort. 🙂
Ravi
I am sure you wish they implement a JVM in the Database like Oracle does :-), which can handle the Java coding / EJBs etc. But as of now, you'll have to settle with the DB Stored procedures to implement your business logic in HANA.
Actually we are already working on something like this. It isn't Java based, but we are building a light weight application server directly into HANA called HANA Application Services (sometimes referred to as XS or XS Engine). It allows a thin layer of application logic directly in HANA. Its ideally suited for creating REST services or support UI event logic - things that wouldn't be easily possible in SQLScript.
In fact, in HANA 1.0 SPS3 you can already see the process for this portion of HANA:
Currently only SAP internal teams are allowed to develop in this layer, but in the future we will open this up for customers and partners as well.
Excellent, thks Thomas. When you say non-Java based, I understand that it will not execute Java, correct ? And will XS be able to execute "normal" ABAP programs ? I am thinking of the case of one customer, who does a complex BOM explosion + costing, it takes hours one a "normal" server to run, but it is more a question of algorithmic/CPU consumption than of DB access: could he simply port this ABAP application to HANA-XS ?(supposing that he previously prepares the datastructures, of course) .
Hi Krishna,
My personal opinion is the performance will be improved. In the current state, the information models provide less control over information processing. Mostly it would be in the form of stored procedures and functions which act completely on the database objects. The built-in function library and processing capabilities are also limited to the database features.
When I mentioned about the JVM in Oracle, during those days, it brought in a lot of change in the Application logic design and application client side validation logic, which is now expected in the HANA XS or XS-Engine.
Depending on the implementation of the XS-Engine and integration points with the UI interfaces, I hope to see a change in the Information model designs too.
Regards,
Ravi
Great discussion guys:
It always helps to distinguish HANA with other options to boost performance or in other words to see where HANA can add value in solving bad performance.
My thoughts: HANA's performance secret / power lies within the 1- Columnar table architecture with high compression ratios, 2 - MPP (massive parralell processing) enabled hardware with multi core CPU and 3 - flexible modelling options available using freelance SQL within calculation view, procedures, etc..
Regards,
Rama
Francois:
Addressing your main question: Yes, we can use SAP HANA with any application that requires a performance enhancing database and is capable of accessing an ODBC or JDBC complaint database connection.
Note: HANA is not certified for use outside the SAP HANA studio and SAP BW applications. So, usage will be at own risk.
Regards,
Rama
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
The MPP (Massive Parallel Processing) power of HANA coupled with In Memory architecture can definitely be used for processing.
You need to ensure that the business logic implementation is then passed to the database rather than to the Java application server or front end. This will enable you to utilize the power of HANA.
Regards,
Ravi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
HANA can be connect to the non-SAP system also. So, you can connect the system to HANA and you can see the capabitiies of HANA.
yes, HANA will provide you the result with the good response.
Regards,Neha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.