You can translate the question and the replies:

Denodo 6 - Resource Manager

Hi there, I am testing out the resource manager for our upcoming Denodo 6 launch and ran into a few questions I was hoping you might be able to help me with. I have set both a few plans and a few rules to be applied to some plans, but maybe I am trying to test something the system can't do. The goal here is to create a resource group or user that can have priority over all other users. Example; We use Spotfire. We have a named user in our Denodo system called SVCSpotfireReader. I want that user to be the most important user running queries if others are also running queries, because that user is attached to an SLA and we don't want other peoples "Adhoc" queries affecting an SLA driven query. So the option I choose was "Set Priority of thread to execute the query" and I put 10. Then I attached a rule that says if user = ‘SVCSpotfireReader ‘ then attached to that plan. Hoping that I would get a bump in speed or some utilization when I ran a query from that user. Unfortunately I don't see any change. I have logged into multiple SQL instances and I am running the same query for multiple users. Then I introduce the query from the SVCSpotfireReader account and it still just kinda runs with all the rest and doesn't get anything special added to it. Can you please tell me if our use case is a valid option for the current workings of the "Resource Manager". If so, can you please make a suggestion on where I went wrong? Thanks!! Also one other small issue I saw. It appears if a specific user belong to one rule, other rules don't get imposed on it. Example: Just for testing I set a "query row limit" of 4250. All users entering the system only got back that amount of rows, which is good... but the SVC account, which was attached to the rule above didn't get it applied. Not sure if that is expected behavior.
user
01-06-2016 13:03:46 -0400

3 Answers

Hi! The Resource Manager plan option “Set Priority of thread to execute the query” uses the Java API to set the priority of the threads competing to be executed on the CPU. All the threads by default have 5 priority out of 10. Threads with more priority, will have more time running in the CPU. However, the priority is not a linear rule and the behavior depends on the operating system I've found **[this article](http://www.javamex.com/tutorials/threads/priority_what.shtml)** very interesting. Regarding your issue having some rules not overlaping other rules, note that the rules definition wizard is an ordered list. You can set the precedence of the rules. If you want the 'row limit rule' to be applied to the elements fulfilling the 'priority rule'. The row limit rule should be placed before in the list. You can use the arrows in on the right side of the menu to change the order.
Denodo Team
01-06-2016 22:16:21 -0400
Good Article Thanks a lot for the info. One addtl question please... in the article it talks about how Linux is slightly different to setup than windows. We run all Linux servers for Denodo. In the article it explains that you need to add " -XX:+UseThreadPriorities " into your JVM setting. In the case of Denodo, my assumption would be that i need to edit the VDBConfiguration.properties within the CONF -- VDP folder of the <Denodo Home> directory. What are your thoughts on that? Should I make this change to utilize the Thread Priority or do you think it will have unforseen consequences in the denodo platform? Thanks!!
user
02-06-2016 09:43:42 -0400
Hi! This is the list of pre-requisites to change thread priorities in a VDP server that is being executed in a linux OS. 1. Configure administration privileges for the user account starting VDP server. 2. Set the JVM property -XX:ThreadPriorityPolicy=1 to be able to change thread priorities. Hope this helps!
Denodo Team
09-06-2016 11:10:58 -0400
You must sign in to add an answer. If you do not have an account, you can register here