EdColeman commented on issue #3213:
URL: https://github.com/apache/accumulo/issues/3213#issuecomment-1470001275

   My mental model for tracking loading / unloading is that this is 
implementing a cache.  This description
   > The TabletServer keeps track of the KeyExtent and last access time for 
each online onDemand tablet 
   seems to be describing LRU behavior.  
   
   Tracking the last access time can be expensive.  How often does the access 
time get updated?  If it is updated only on loading, then this seems that it 
would act more like "expireAfter", where it would be eligible for removal an a 
fixed time period.  In that case, what would prevent a tablet from being 
unloaded while a scan is in progress?  Updating on every "next()" seems like it 
could be prohibitively expensive.  The sweet spot would seem to be something 
that is tracking tablet usage  so that tablet being used in active scans would 
not be unnecessarily unloaded.  Maybe the last access is updated on init and on 
tear-down?
   
   The TableServers are going to need to gather sufficient metrics that 
unloader implementations can make determinations - while things like row / key 
knowledge will be custom, usage and access times will need to be provided.
   
   As a  "base" implementation, we could provide a time-based cleaner thread 
and as a extension, something triggered on low memory conditions?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to