Right, you're artificially forcing this loading/unloading, which is a
good thing to stress!

Every time the code accesses a core, the last access time should be
updated. So somehow either you're accessing more than two cores in a
round-robin fashion or you're somehow having other requests come in
between the calls you make that _do_ access the core.

Either way, every time you access a core it goes to the head of the
list. This is the "get" command

I don't know what to say overall without analyzing your code, but you
should be OK.

Erick

On Thu, Mar 30, 2017 at 9:25 AM, Shashank Pedamallu
<spedama...@vmware.com> wrote:
> Hi,
>
> Thanks Erik and Shawn for so much info!
>
> 1) Yes, I have deliberately put transientCacheSize as very small(2) in my dev 
> laptop for testing how Solr handles the switch and how it affects my backup 
> process.
> 2) Yes, I'm not using Solr Cloud. Each individual Solr core is independent 
> and we are not using Solr’s ability to backup or replicate to another Solr 
> Core.
>
> 3) Could you please expand a little more about “that the job being done by 
> their custom component is not updating the 'last access' info for the core”. 
> If Solr is using LRU, like you mentioned, I should be safe except for my 
> experimental trial of transientCacheSize=2.
>
> Thanks,
> Shashank
>
>
>
>
>
> On 3/30/17, 6:32 AM, "Shawn Heisey" <apa...@elyograg.org> wrote:
>
>>On 3/29/2017 8:09 PM, Erick Erickson wrote:
>>> bq: My guess is that it is decided by the load time, because this is
>>> the option that would have the best performance.
>>>
>>> Not at all. The theory here is that this is to support the pattern
>>> where some transient cores are used all the time and some cores are
>>> only used for a while then go quiet. E.g. searching an organization's
>>> documents. A large organization might have users searching all day. A
>>> small organization may search the docs once a week.
>>
>>Thank you for all the info about LotsOfCores internals!
>>
>>If it orders the LRU structure by access time, I think that Shashank
>>must have a transientCacheSize value that's WAY too small, or perhaps
>>that the job being done by their custom component is not updating the
>>"last access" info for the core.  Increasing the transientCacheSize
>>might help, but a better option is modifying the custom component so
>>that it occasionally makes a request that updates the last access info.
>>It seems likely that such a request can be
>>
>>> This does work with SolrCloud (I'm not assuming you're using
>>> SolrCloud, just sayin'), but note that the machine being replicated
>>> _to_ (that, BTW, doesn't even have to be part of the collection) won't
>>> be able to serve queries while the replication is going on. I'm
>>> thinking something like use a dummy Solr instance to issue the
>>> fetchindex to _then_ move the result to your Cloud storage.
>>
>>I thought that LotsOfCores didn't coexist with Cloud very well.
>>
>>If you DO run SolrCloud, one option that you have for a "sort-of backup"
>>is the Cross-Datacenter-Replication capability.  With this, you set up
>>two complete SolrCloud installs, and one of them will mirror the other.
>>
>>The replication handler has built-in backup capability.
>>
>>One option for backups that I happen to like quite a bit is this, which
>>works on most non-Windows operating systems and doesn't require any
>>custom components:  Set up a shell script, run by cron, that makes a
>>hardlink backup of the data directory, then copies from that directory
>>to a location on another server or on a network share.
>>
>>The hardlink will happen instantly for any size index and produce a
>>directory with a snapshot view of the index that will remain valid no
>>matter what happens to the source directory.  Once the script makes a
>>copy (the slow part) it can delete the directory containing the hardlinks.
>>
>>Thanks,
>>Shawn
>>

Reply via email to