Cracking SAP Memory Management _Part2
Hope the first blog was useful, Lets talk memory in an SAP Perspective more precisely SAP ABAP Perspective.
In an SAP System each step is a transaction step .An SAP transaction consists of several transaction steps . Data corresponding to these transaction steps are stored in Application server memory. This is called a User Context. IT will be useful later 🙂
What is a session in SAP , Data from transaction steps executed in two different sessions are stored in two different memory areas. For a new session a new User context is also created.
Lets put it this way every session has a burden in memory .Because there are user contexts created for each session
What is SAP Roll Memory??
The initial part of the user context is local SAP roll Area of the work process. Since it is local memory each SAP Work Process can access only its own roll area. At the end of transaction step the user exits the work process so that another user can use the work process. The local roll area is copied to shared SAP Roll area as shown in the figure.
The shared roll area is either a memory area in the shared memory of the application server (SAP Roll Buffer ) or application Servers hard drive (the SAP Roll file) or a combination of both. The shared Roll area is accessible by all of an instance’s work process.
What is Roll out?
At the end of transaction step the user exits the work process so that it can be used by another work process. The process of copying the Local Roll Memory to Shared Roll Area is called Roll out.
What is Roll In?
When user is assigned to a new/different work process , the user context is copied from the shared roll Area to local Roll Area . This procedure is called Roll In.
Ztta/roll_area specifies the size of the local SAP Roll Area . It applies equally to all the work processes.
rdisp/ROLL_MAXFS defines the size of the entire SAP Shared roll area.(i.e Roll File +Roll Buffer)
I know there are a lot of terms being discussed here but it will be useful soon when we discuss about memory management and distribution. I hope the following terms are clear.
- User Context
- SAP Roll Area
- SAP Roll Buffer
If you understand the following points correctly , The next term to introduce is extended memory . I promise you there are not too many SAP terminology after this , if you understand the First Part of the blog and the above terms which is easier. I still have to read it again to get the basics right
The frequency of roll out and roll in are higher considering the transaction steps , so the less heavy the user context the better. For the same reason Mostly User Contexts are stored in Extended Memory ( I know new term again) which is shared so that Roll in and Roll out are made faster because less amount of data needs to be exchanged. This is done by storing only the address of the extended memory is stored in the local memory of the work process. (The following diagram helps to understand the concept better)
Have a good day….