cancel
Showing results for 
Search instead for 
Did you mean: 

Using HANA capacities beside database ?

Former Member
0 Kudos

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 ?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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. 

Former Member
0 Kudos

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...

Former Member
0 Kudos

Precisely Francois. In option 1, bear in mind, you would have to create the infrastructure of fall-back and an array that mimics column store. etc etc. If you have a great programmer, maybe he can do it, but if you have budget, go for HANA.

HANA is beautiful.

former_member184768
Active Contributor
0 Kudos

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

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

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.

Former Member
0 Kudos

Thomas, great update. Thanks.

Former Member
0 Kudos

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) .

Former Member
0 Kudos

Hello Thomas,

I have a doubt.. If I am able to consume my information models, in which i was able to push down my business logic and consume the same in my java application, will it help me to increase the performance?

Or it will still be the same?

Regards,

Krishna Tangudu

former_member184768
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Hi Ravi,

Thanks for your points now am able to understand. Till now i was thinking, when we are able to consume those models in JAVA, why we are thinking about "JVM"/

Regards,

Krishna Tangudu

rama_shankar3
Active Contributor
0 Kudos

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

Answers (3)

Answers (3)

rama_shankar3
Active Contributor
0 Kudos

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

former_member184768
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Thks Ravi.

former_member182277
Contributor
0 Kudos

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