GitHub user DaveBirdsall opened a pull request:

    https://github.com/apache/incubator-trafodion/pull/766

    [TRAFODION-2282][TRAFODION-882] New scheme to invalidate histogram cache

    This set of code changes leverages the query invalidation and security key 
invalidation infrastructure to invalidate the histogram cache. The design is as 
follows:
    
    1.  At UPDATE STATISTICS time, after statistics have been written, a new 
stats invalidation key is generated. The key contains the table UID of the 
table whose stats have been updated.
    2.  RMS propagates this key to all compilers in the cluster. Note that the 
master executors need not know, as changing histograms does not invalidate 
query plans. (Hence SscpNewIncomingConnectionStream::processSecInvReq ignores 
stats invalidation keys.)
    3.  The compiler main, when checking for invalidation keys it has not seen 
before, processes the new stats invalidation keys. It removes from the 
HistogramCache any HistogramCacheEntry that has the same table UID.
    4.  Fail safe logic to invalidate the entire histogram cache was added in 
the case that the compiler has been idle so long that it may have missed seeing 
a stats invalidation key.
    
    Older code in HistogramCache::getHistograms (optimizer/NATable.cpp) that 
used a refresh interval timing scheme to invalidate cache entries has been 
completely removed. As part of this cleanup, two CQDs are no longer needed and 
are removed. Stubbed routines in ustats/hs_read.cpp have been removed. Too, it 
was noticed that the modified time stamp was stubbed (and cannot be 
un-stubbed), and so that was removed. Note that the redefinition time stamp is 
also stubbed but it is so pervasive in so many data structures I chose to leave 
it alone for now.
    
    Several regression test expected files have been updated, as UPDATE 
STATISTICS now takes effect immediately in a session resulting in plan changes 
and related data.
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/DaveBirdsall/incubator-trafodion Trafodion2282

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-trafodion/pull/766.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #766
    
----
commit 9a3cf2e53af6d9df7c8ec03665f5da5a0ebf8ab0
Author: Dave Birdsall <dbirds...@apache.org>
Date:   2016-10-19T16:49:51Z

    [TRAFODION-2282][TRAFODION-882] New scheme to invalidate histogram cache

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to