Kill DB query running against Exasol when killing via Background Execution Manager

Ingo Klose shared this idea 2 years ago
Not Planned

Yellowfin can kill current running reports via Background Execution Manager.

This should kill the query running against the DB, though it's not doing it for any reports running off Exasol, can we please have YF support this.


This way if a user creates a long running report, we can kill it via execution manager which will also kill the running query.

Comments (1)

photo
1

Hi Ingo,


The way the background exection manager works is, that YF kills the report.

Most JDBC drivers detect the transaction has been cancelled, and then shoot a kill command to the DB that stops the running query, so YF doesn't actually control this, it's the driver.

However since we know the command to kill the query, I've raised an enhancement so YF can do this on behalf of the JDBC driver.

The command below is what we propose to be implemented when killing via background execution manager.

Connection connection; // (= ...) 
int newInterval = 1; 
(EXAConnection)connection.setFeedbackInterval(newInterval);


However, at this point in time I cannot provide any estimate on when this can be implemented.

Please let us know if there was anything else you were after in the meantime.


Regards,

David

photo
1

Hi David,

Thanks for the information!

I was wondering if the proposal has been implemented in any of the newer versions (i.e., >7.3)

? If so, can you tell which version it is?

Thank you,

CT

photo
1

Hi Chakra,


This item has been reviewed and unfortunately do not have any immediate plans to implement this feature.This doesn't mean the item has been closed forever, just not on our current road map.

If anything changes I'll let you know. Though of course if there was anything else you were after in the meantime, please let me know.

Regards,David

photo
1

Hi David,

Thanks for the update. Please keep us posted.

As I'm going though this topic again, I got some more relevant questions that I want to ask. Please bear with me

1. We are using JDBC connection to connect source DB. With that said, if I cancel a report in YF from background execution console, would the SQL behind the report still continues to run at the DB level? Meaning, YF will just cancel the report to run but not SQL behind it,correct?

2. Would YF Background execution captures draft reports? or just the ones that are active?

3. As I open a long running report, I get to see a window that popups after 5sec which gives me options to (continue to wait, cancel, email and others..). Here, if I hit cancel after awhile, would the query continue to run at DB level ? I think it is very much identical to my first question.

4. We've set Timeout under connection pool to 600sec (10min) so our long running reports generate timeout error after reaching it capacity. Does that mean SQL behind that report gets cancelled at DB level after 10min as well?

Sorry, I had to ask these questions as I want to clearly understand the work flow so I can determine at what level restrictions will need to be applied.

Thank you in advance for your assistance.

Regards,

CT

photo
1

Hi Chakra,


To answer your questions, it's just a matter of understanding how it all works.

Yellowfin will always kill the YF process, whether simply closing the report, execution manager, reached it's timeout, or via the long running pop-up like you've seen.

Now the rest is handled by the JDBC driver.

Most JDBC drivers detect the transaction has been cancelled, and then shoot a kill command to the DB that stops the running query, so YF doesn't actually control this, it's the driver.

Though for some reason this isn't happening with the Exasol driver, unsure why it's not detecting that the report has been cancelled.So this enhancement was to essentially shoot an additional query to the driver to forcibly cancel it (not something we've had to do for other connections).

As for the background execution manager, the execution manager does not care if the report is active or not, if you're running a report, it's running..

Hope this clears it all up for you.


Regards,

David

photo
1

Hi David,

Got it!

Thanks for the clarification. Appreciate it!

Regards,

CT

photo
1

Hi David, I see you mentioned following commend to cancel the query from 'backed Execution Manager' .

Connection connection; // (= ...)  int newInterval = 1;  (EXAConnection)connection.setFeedbackInterval(newInterval);
Wondering if the same applies to 'Cancelling report' or closing the report? Also, would you be able to provide instructions on how we can get this into our systems? Meaning, how and where to put this piece of code.
I understand YF might not support but we are willing to implement it rather than waiting for next upgrade.

photo
1

Hi Chakra,


Unfortunately making code changes is not something anyone outside Yellowfin can do. In saying this, we've reviewed this item again and have come to the conclusion that an issue like this should be resolved via the Exasol driver itself, and not something we should work around.

Due to this, we do not have any immediate plans to implement this feature.This doesn't mean the item has been closed forever, just not on our current road map.

If anything changes I'll let you know. Though of course if there was anything else you were after in the meantime, please let me know.

Regards,

David

photo