Return-Path: X-Original-To: apmail-lucene-solr-commits-archive@minotaur.apache.org Delivered-To: apmail-lucene-solr-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 07154D8FA for ; Thu, 3 Jan 2013 20:53:10 +0000 (UTC) Received: (qmail 8798 invoked by uid 500); 3 Jan 2013 20:53:09 -0000 Delivered-To: apmail-lucene-solr-commits-archive@lucene.apache.org Received: (qmail 8775 invoked by uid 500); 3 Jan 2013 20:53:09 -0000 Mailing-List: contact solr-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: solr-dev@lucene.apache.org Delivered-To: mailing list solr-commits@lucene.apache.org Received: (qmail 8768 invoked by uid 99); 3 Jan 2013 20:53:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jan 2013 20:53:09 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.131] (HELO eos.apache.org) (140.211.11.131) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Jan 2013 20:53:07 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id DCFEEB9D; Thu, 3 Jan 2013 20:52:45 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Apache Wiki To: Apache Wiki Date: Thu, 03 Jan 2013 20:52:45 -0000 Message-ID: <20130103205245.29919.90791@eos.apache.org> Subject: =?utf-8?q?=5BSolr_Wiki=5D_Trivial_Update_of_=22LotsOfCores=22_by_ErickEri?= =?utf-8?q?ckson?= Auto-Submitted: auto-generated X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Solr Wiki" for chan= ge notification. The "LotsOfCores" page has been changed by ErickErickson: http://wiki.apache.org/solr/LotsOfCores?action=3Ddiff&rev1=3D19&rev2=3D20 Comment: Changed "swabbable" to "transient" = There are two new attributes of a tag (defaults in bold) and one n= ew attribute for * has a two new attributes: - * swappableCacheSize=3D[NNN]. If this limit is crossed, old cores marke= d 'swappable=3D"true"' are removed to make room on an LRU basis. = + * transientCacheSize=3D[NNN]. If this limit is crossed, old cores marke= d 'transient=3D"true"' are removed to make room on an LRU basis. = - * If this is absent, the default is Integer.MAX_VALUE, an unbounded ca= che. ''Only'' cores with "swappable=3Dtrue" are put in this cache, so speci= fying this attribute without having any cores marked as "swappable" has no = effect, just wastes a LinkedHashMap of the specified size= which will never be used. + * If this is absent, the default is Integer.MAX_VALUE, an unbounded ca= che. ''Only'' cores with "transient=3Dtrue" are put in this cache, so speci= fying this attribute without having any cores marked as "transient" has no = effect, just wastes a LinkedHashMap of the specified size= which will never be used. - * Having this size be less than the number of cores marked 'swappable= =3D"true"' AND 'loadOnStartup=3D"true"' ''should'' work, but it's wasteful = since a bunch of cores will be loaded on startup then immediately unloaded = after the cache fills up. + * Having this size be less than the number of cores marked 'transient= =3D"true"' AND 'loadOnStartup=3D"true"' ''should'' work, but it's wasteful = since a bunch of cores will be loaded on startup then immediately unloaded = after the cache fills up. - * NOTE: when solr.xml is read, the information for all swappable cores= (i.e. the CoreDescriptor) is put in a separate list. So having more swappa= ble cores than the size of the cache will be handled correctly. The "list o= f cores" is unbounded. + * NOTE: when solr.xml is read, the information for all transient cores= (i.e. the CoreDescriptor) is put in a separate list. So having more transi= ent cores than the size of the cache will be handled correctly. The "list o= f cores" is unbounded. - * coreDescriptorProvider=3D.= (more later, this isn't done yet). This will be a pluggable component that= provides a CoreDescriptor on demand. Solr core handling will ask this comp= onent (if present) for a CoreDescriptor for any core name it doesn't recogn= ize. If the component returns a CoreDescriptor, it will be added to the app= ropriate internal list based on the values of the loadOnStartup and swappab= le member variables. The code will ''probably'' load the core no matter wha= t the loadOnStartup parameter specifies on the theory that there is an imme= diate request to be satisfied. TBD. = + * coreDescriptorProvider=3D.= (more later, this isn't done yet). This will be a pluggable component that= provides a CoreDescriptor on demand. Solr core handling will ask this comp= onent (if present) for a CoreDescriptor for any core name it doesn't recogn= ize. If the component returns a CoreDescriptor, it will be added to the app= ropriate internal list based on the values of the loadOnStartup and transie= nt member variables. The code will ''probably'' load the core no matter wha= t the loadOnStartup parameter specifies on the theory that there is an imme= diate request to be satisfied. TBD. = * has two new attributes: * loadOnStartup=3D["'''true'''"|"false"]. Whether the core should be co= mpletely loaded upon startup. - * swappable=3D["true"|"'''false'''"]. Whether the core is allowed to be= swapped out or not. + * transient=3D["true"|"'''false'''"]. Whether the core is allowed to be= swapped out or not. = So the idea is that there's really no reason to tie in "lazy loading" wit= h whether the core can be swapped out or not, so by splitting up the two op= tions we give the user control over how these are handled. Use cases below: - * loadOnStartup=3Dtrue swappable=3Dfalse: Current case. Spend all the ti= me necessary to fully load the cores on startup. + * loadOnStartup=3Dtrue transient=3Dfalse: Current case. Spend all the ti= me necessary to fully load the cores on startup. - * loadOnStartup=3Dtrue swappable=3Dtrue: There are some cores you want = loaded when the server first starts up, but that you'll allow to be swapped= out. It's wasteful to specify more cores like this than your swappableCach= eSize value. - * loadOnStartup=3Dfalse swappable=3Dfalse: Probably the least useful com= bination, but it naturally falls out of the code. You'd specify this combin= ation if, for some reason, starting Solr up quickly was more important than= the inconvenience of having to wait randomly for cores to be loaded when a= request was made. + * loadOnStartup=3Dtrue transient=3Dtrue: There are some cores you want = loaded when the server first starts up, but that you'll allow to be swapped= out. It's wasteful to specify more cores like this than your transientCach= eSize value. + * loadOnStartup=3Dfalse transient=3Dfalse: Probably the least useful com= bination, but it naturally falls out of the code. You'd specify this combin= ation if, for some reason, starting Solr up quickly was more important than= the inconvenience of having to wait randomly for cores to be loaded when a= request was made. - * loadOnStartup=3Dfalse swappable=3Dtrue: This is really the use-case. T= here are a large number of cores in your system that are short-duration use= . You want Solr to load them as necessary, but unload them when the cache g= ets full on an LRU basis. + * loadOnStartup=3Dfalse transient=3Dtrue: This is really the use-case. T= here are a large number of cores in your system that are short-duration use= . You want Solr to load them as necessary, but unload them when the cache g= ets full on an LRU basis. = = The following configuration applies to the patch given in [[https://issue= s.apache.org/jira/browse/SOLR-1293|SOLR-1293]]. @@ -66, +66 @@ - + }}}