What is the connection of a blob of data and a class in a class
loader? Is it a class of your own that you're using to store the data?

Solr can't change fundamental facts about class loader; if an object
of a class needs to be shared across class loaders, it has to be
loaded into a common parent. If you don't want to do that broadly,
you'll need indeed to factor out a jar for the job.

If it isn't a special class, but rather just an instance of some
boring ordinary class and your problem is sharing the _reference_,
consider JNDI.



On Wed, Nov 11, 2015 at 7:02 PM, Gus Heck <gus.h...@gmail.com> wrote:
> Yes asked by a colleague :). The chat session is now in our jira ticket :).
>
> However, my take on it is that this seems like a pretty broad brush to paint
> with to move *all* our classes up and out of the normal core loading
> process. I assume there are good reasons for segregating this stuff into
> separate class loaders to begin with. It would also be fairly burdensom to
> make a separate jar file to break out this one component...
>
> I really just want a way to stash the map in a place where other cores can
> see it (and thus I can appropriately synchronize things so that the loading
> only happens once). I'm asking because it seems like surely this must be a
> solved problem... if not, it might be easiest to just solve it by adding
> some sort of shared resources facility to CoreContainer?
>
> -Gus
>
> On Wed, Nov 11, 2015 at 6:54 PM, Shawn Heisey <apa...@elyograg.org> wrote:
>>
>> On 11/11/2015 4:11 PM, Gus Heck wrote:
>> > I have a case where a component loads up a large CSV file (2.5 million
>> > lines) to build a map. This worked ok in a case where we had a single
>> > core, but it isn't working so well with 40 cores because each core loads
>> > a new copy of the component in a new classloader and I get 40 new
>> > versions of the same class each holding it's own private static final
>> > map (one for each core). Each line is small, but a billion of anything
>> > gets kinda heavy. Is this the intended class loading behavior?
>> >
>> > Is there some where that one can cause a class to be loaded in a parent
>> > classloader above the core so that it's loaded just once? I want to load
>> > it in some way that leverages standard solr resource loading, so that
>> > I'm not hard coding or setting sysprops just to be able to find it.
>> >
>> > This is in a copy of trunk from about a month ago... so 6.x stuff is
>> > mostly available.
>>
>> This sounds like a question that I just recently answered on IRC.
>>
>> If you remove all <lib> elements from your solrconfig.xml files and
>> place all extra jars for Solr into ${solr.solr.home}/lib ... Solr will
>> load those jars before any cores are created and they will be available
>> to all cores.
>>
>> There is a minor bug with this that will be fixed in Solr 5.4.0.  It is
>> unlikely that this will affect third-party components, but be aware that
>> until 5.4, jars in that lib directory will be loaded twice by older 5.x
>> versions.
>>
>> https://issues.apache.org/jira/browse/SOLR-6188
>>
>> Thanks,
>> Shawn
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>
>
>
>
> --
> http://www.the111shift.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to