[ 
https://issues.apache.org/jira/browse/DERBY-4936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kristian Waagan updated DERBY-4936:
-----------------------------------

    Attachment: derby-4936-1b-core_istat_daemon.diff

First, I added logic to shutdown on too many consecutive errors (too many set 
to 50) in 1a (different from DERBY-4771).

Attaching patch 1b, with the following changes from revision a:

A    
java/engine/org/apache/derby/impl/services/daemon/IndexStatisticsDaemonImpl.java

o Rewrote/added some comments.
o Removed "utilization rate" and just printed the time spent working and the 
age of the daemon.
o Require log stream to be non-null (IllegalArgumentException)
o Rewrote retry-logic in generateStatistics.
o Folded method updateAllIndexesStats into generateStatistics (because I had to 
move invalidateStatements)
o Changed order of actions in writeUpdatedStats. It will no do:
   - setHeapRowEstimate
   - invalidateStatements
   - dropStats
   - addStats
o Made writeUpdatedStat return also for background task if numRows == zero.
o Fancier retry logic in invalidateStatements.
o Moved some code related to lcc/tx initialization
o Call ContextManager.cleanupOnError for fatal errors,  and some changes to the 
error handling flow.
o Destroy tx when stopping (if idle).
o Added debug method extratIstatInfo(StandardException), which will print to 
lines of the stack for known errors. It will print the last line of code 
invoked in the daemon together with the next class/method called. This allows 
us to better understand why/where an expected error was thrown without logging 
the full stack.
o I kept STORAGE_AUTO_INDEX_STATS_DEBUG_ABSDIFF_THRESHOLD,  but set the default 
to zero. Makes it easy to work around problems caused by disabling the check 
(i.e., set it to a non-zero value).

I will commit this patch now.

> Add core istat daemon
> ---------------------
>
>                 Key: DERBY-4936
>                 URL: https://issues.apache.org/jira/browse/DERBY-4936
>             Project: Derby
>          Issue Type: Sub-task
>          Components: SQL, Store
>    Affects Versions: 10.8.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>         Attachments: derby-4936-1a-core_istat_daemon.diff, 
> derby-4936-1a-core_istat_daemon.stat, derby-4936-1b-core_istat_daemon.diff
>
>
> Tracks the task of adding the core daemon code, which will be responsible to 
> do the heavy lifting for the istat feature.
> Note that the code will be left disabled, enabling it will be done under a 
> separate Jira.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to