Skip to Content

ServerGroup enhancements for Scheduling in 4.2SP03

Index

  1. Introduction
    • ServerGroup Exclusivity (with examples)
    • ServerGroup assignment at UserGroup (with examples)
    • ServerGroup assignment at Folder (with examples) – New from 4.2 SP04
  2. Algorithm

Introduction

One of the integral part of SAP Business Objects BI Platform is Servers. Servers are heavy lifters as they process various requests from user and other background operations. Processing request also involves checks regarding security, user access etc. With above complex processing the response time for all the requests needs to be as fast as possible. Nobody likes to see the waiting icon for long.

Current behavior:

In SAP Business Objects BI Platform, there is a feature called Scheduling. Administrators or End users can schedule various content to inform them about changes. And these changes can be received at user defined frequency and desired format as well.

For ex., CEO wants to receive a copy of sales report everyday morning at 8:00AM.

Below screenshot explains how the above example can be achieved:

As of today, administrators or end users can only start a schedule with desired setting. One of the setting is to ensure that this request if processed by specific ServerGroup. But, there is no way to prevent other operation from using the servers part of this ServerGroup, hence increases the load on the server.

Definitions:

  • “Only use server in the selected group” – means use only this Server Group and cannot use Common Pool Servers –> we shall call this Required
  • “Give preference to servers in the selected group” – means use this Server Group and if needed Common Pool Servers also –> we shall call this Preferred
  • “Use the first available server” – means servers part of CommonPool, which are not assigned to any ServerGroup,

The problem we face:

Ex, if a document has been scheduled every day for CEO of the company, ideally the request should be processed immediately without much wait time.

In order to achieve this quick response time, the server queue should not be piled up with requests.

Solution:

Exclusive ServerGroup is the answer to the aforementioned problem.

When a ServerGroup is created as “Exclusive ServerGroup”, then the servers part of this group cannot be assigned to other ServerGroup (Exclusive or Non Exclusive) and Servers added to Exclusive ServerGroup will be excluded from the common pool.

This will enable us to create ServerGroups that are isolated from the general load of the BI system.

With the introduction of “Exclusive ServerGroup”, the definition of Common Pool changes.

Now, Administrator can create an Exclusive server group, say “SG1” and add a JobServer “JS1”. When you try adding Servers to any other ServerGroup (Exclusive or Non-Exclusive) it will not list Server “JS1” since it is already added to Exclusive ServerGroup“SG1”.

Hence Administrator can be sure that only CEO is getting dedicated access to the JobServer “JS1”.

Common Pool – contains those servers that are not part of “Exclusive ServerGroup”. Hence servers part of “Exclusive ServerGroup” will be freed from the general load of the system.

Flow chart for Adding Servers to Exclusive ServerGroup

 


Example 1 (BEFORE Exclusive ServerGroup was introduced)

  • SAP Business Objects BI Platform has 2 JobServers “JS1”, “JS2” à This is part of Common Pool
  • Create a ServerGroup “SG1” (Non-Exclusive)
  • Add “JS1” to “SG1”
  • Let’s assume “JS1” and “JS2” already have some jobs running
  • Now user “U1” tried to schedule document “D1” and using Scheduling ServerGroup option selects “SG1” as “Only use server in the selected group”

Output

“JS1” is already loaded with some jobs and hence the turnaround time for processing the schedule by user “U1” will take more time. Also in future more jobs will be assigned to “JS1”, as it also part of Common Pool.
Example 2 (AFTER Exclusive ServerGroup was introduced)

  • SAP Business Objects BI Platform has 2 JobServers “JS1”, “JS2” –> Let’s call this as Common Pool
  • Create a ServerGroup “SG1” –> mark it as Exclusive

  • Add “JS1” to “SG1”
  • Let’s assume “JS1” and “JS2” already have some jobs running
  • Now user “U1” tried to schedule document “D1” and using Scheduling ServerGroup option selects “SG1” as “Only use server in the selected group”

Output

“JS1” is already loaded with some jobs, which needs to be processed. But now since “JS1” is part of Exclusive ServerGroup, it will get requests from only those workflows for which “SG1” has been assigned.

Hence “JS1” has been freed from general system load.

With this we can now refer ServerGroup’s as Exclusive ServerGroup or Non-Exclusive ServerGroup, based on the creation type.

ServerGroup assignment at UserGroup

ServerGroup Assignment

Earlier to BI4.2 SP03, ServerGroup can be assigned only at Document. From BI4.2 SP03, it can be assigned at document and UserGroup.

Note: Search Order is Document > UserGroup

Behavior Prior to BI4.2 SP03

Currently users can set ServerGroup at document level. If set, then servers from this SG will be used for scheduling else it will go to servers in the common pool

Also there are 2 options while setting SG i.e. Required and Preferred. One document/Schedule can be associated with only one ServerGroup.

Behavior from BI4.2 SP03

Now from BI4.2 SP03, the ServerGroup setting is available at UserGroup level along with assignment at document. Same Required, Preferred options are available at UserGroup

Now from SP03, whenever we schedule a document now, it will first check for ServerGroup setting at Document level then at UserGroup.

 

Difference between ServerGroup assignment at UserGroup and document

At document there could be only one ServerGroup which could be assigned and it can be either Required or Preferred, However User can belong to one or more UserGroups and hence can result in many ServerGroups assigned to any given User.

Since the result can be more than one SG, hence it will be a combination of Required and Preferred.

Rule is:

  • Required + Required = Required, so no Common Pool Servers
  • Required + Preferred = Required, so no Common Pool Servers
  • Preferred + Preferred = Preferred, access to Common Pool Servers

Let’s take some examples (follows the steps mentioned in the above algorithm):

Example 1,

Input:
if you have a ServerGroup “SG1” set at document “D”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • ServerGroup “SG1” is set

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

Example 1A,

Input:

  • Schedule document “D”
  • ServerGroup assigned at document “D” is SG1
  • User “U” belongs to UserGroup “UG1”
  • ServerGroup “SG2” set at UserGroup “UG1”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • SG1 is set at document
  • Once it has found server group at document level ie “SG1”, it will not check for ServerGroup at UserGroup

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

Example 2,

Input:

  • Schedule document “D”
  • User “U” belongs to UserGroup “UG1”
  • ServerGroup “SG1” set at UserGroup “UG1”
  • No ServerGroup assigned at document “D”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at UserGroup level
  • ServerGroup “SG1” is set

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN also use CommonPool servers

Example 3,

Input:

  • Schedule document “D”
  • User “U” belongs to UserGroup “UG1”, “UG2”
  • ServerGroup “SG1” set at UserGroup “UG1”, Similarly “SG2” set at “UG2”
  • “SG1” is set as Required
  • “SG2” is set as Required
  • No ServerGroup assigned at document “D”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at UserGroup level
  • ServerGroup “SG1”,”SG2” is set

Output:
ServerGroup “SG1”, “SG2”

Both “SG1”, “SG2” are set as required, CommonPool servers CANNOT be used. Hence servers from “SG1′ and “SG2” only will used

Example 4,

Input:

  • Schedule document “D”
  • User “U” belongs to UserGroup “UG1”, “UG2”
  • ServerGroup “SG1” set at UserGroup “UG1”, Similarly “SG2” set at “UG2”
  • “SG1” is set as Required
  • “SG2” is set as Preferred
  • No ServerGroup assigned at document “D”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at UserGroup level
  • ServerGroup “SG1”,”SG2” is set

Output:
ServerGroup “SG1”, “SG2”

“SG1” is required and “SG2” is preferred, CommonPool servers CANNOT be used. Hence servers from “SG1′ and “SG2” only will used

Example 5,

Input:

  • Schedule document “D”
  • User “U” belongs to UserGroup “UG1”, “UG2”
  • ServerGroup “SG1” set at UserGroup “UG1”, Similarly “SG2” set at “UG2”
  • “SG1” is set as Preferred
  • “SG2” is set as Preferred
  • No ServerGroup assigned at document “D”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at UserGroup level
  • ServerGroup “SG1”,”SG2” is set

Output:
ServerGroup “SG1”, “SG2”

Both “SG1”, “SG2” are set as preferred, CommonPool servers CAN be used, along with servers from “SG1′ and “SG2”.

Example 6,

Input:

  • Schedule document “D”
  • User “U” belongs to UserGroup “UG1”, “UG2”
  • But “UG1” and “UG2” don’t have any ServerGroup set
  • “UG1” belong to UserGroup “UG3”, Similarly “UG2” belong to “UG4”
  • ServerGroup “SG3” set at UserGroup “UG3”
  • “SG3” is set as Required

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at UserGroup level
  • No setting at “UG1”, “UG2”
  • Retrieve parent UserGroups of “UG1”, UG2”
  • Check to see if there is any ServerGroup setting at UserGroup level “UG3”, “UG4”
  • ServerGroup “SG3” is set

Basically, the minute we find at least one ServerGroup at any of UserGroup levels, then don’t check the next level of UserGroups for ServerGroups

Output:
ServerGroup “SG3”

Both “SG3” set as required, CommonPool servers CANNOT be used. Hence servers from “SG3” only will be used.

ServerGroup assignment at Folder

Behavior Prior to BI4.2 SP04

Currently users can set ServerGroup at document and UserGroup level. If set, then servers from this SG will be used for scheduling else it will go to servers in the common pool

Behavior from BI4.2 SP04

Now from BI4.2 SP04, the ServerGroup setting is available at Folder level along with assignment at Document and UserGroup. Same Required, Preferred options are available at UserGroup

Now from SP04, whenever we schedule a document now, it will first check for ServerGroup setting in below mentioned preferences:

  1. Document
  2. Folder
  3. UserGroup

 

Example Folder hierarchy

 

Every document or folder can have only one parent folder. Hence the resultant will have only one ServerGroup which will be selected as Required or Preferred.

 

Let’s take some examples (follows the steps mentioned in the above algorithm):

Example 1,

Input:

  • Schedule document “D”
  • ServerGroup assigned at document “D” is SG1
  • Document “D” belong to Folder “F”
  • ServerGroup “SG2” set at Folder “F”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • SG1 is set at document
  • Once it has found server group at document level ie “SG1”, it will not check for ServerGroup at Folder

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

Example 2,

Input:

  • Document “D” belong to Folder “F”
  • ServerGroup “SG1” set at folder “F”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at Folder level “F”
  • ServerGroup “SG1” is set

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

 

Example 3,

Input:

  • Document “D” belong to Folder “F1”
  • Folder “F1” belong to Folder “F2”
  • ServerGroup “SG1” set at folder “F2”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at Folder level “F1”
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at Folder level “F2”
  • ServerGroup “SG1” is set

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

 

Example 4,

Input:

  • Document “D” belong to Folder “F”
  • ServerGroup “SG1” set at folder “F”
  • User ‘u’ belongs to UserGroup “UG”
  • ServerGroup “SG2” set at UserGroup “UG1”

Algorithm:

  • Check to see if there is any ServerGroup setting at document level
  • No ServerGroup set
  • Check to see if there is any ServerGroup setting at Folder level “F”
  • ServerGroup “SG1” is set, hence it will not consider ServerGroup “SG2” set at UserGroup “UG1”

Output:
ServerGroup “SG1”

If “SG1” is set as required then we CANNOT use CommonPool servers

If “SG1” is set as preferred then we CAN use CommonPool servers

 

Conclusion

This feature will be best achieved when software and hardware setting/configuration is done right.

The software configuration should be done appropriately by Administrator.

The hardware should have good memory.

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply