[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-11-04 Thread David Smiley (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16967248#comment-16967248
 ] 

David Smiley commented on SOLR-13661:
-

[~ichattopadhyaya] Just checking; is the description here pointing to that 
Google Doc still the most up-to-date one and accurate?

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945571#comment-16945571
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

We shall shortly document the steps for upgrades across minor Solr versions and 
major Solr versions. I think attempting to answer them here (as replies to your 
specific JIRA comments) will not be effective.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945564#comment-16945564
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. [~janhoy]: But I agree that, if handled carefully and labeled 
"experimental", we may introduce this in a series of 8.x point releases
I think now we're in agreement.

bq.: [~janhoy] .. and perhaps start moving features from core into packages in 
master, targeting a slim solr-core in 9.0, which is a major "feature" in itself.
That is something we can address in long term (preferably after we've moved 
over to Gradle). And surely, not in 8x.

TLDR; lets put the supporting pieces for the package manager in 8x now, and 
open up the usecase fully for 3rd party plugin/package writers. For first party 
plugins/packages, we will wait for a major release (because it affects how we 
distribute Solr) and deal with that in a different JIRA/Epic.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945484#comment-16945484
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}You seem to have very little understanding of how classloaders work. 
Putting multiple classloaders together will result in classcastexceptions which 
are impossible to debug
{quote}
Who says anything about putting class loaders together? PF4J and the POC also 
has isolated class loaders per plugin bundle to achieve isolation. But my POC 
uses a special "MultiPluginBundleClassLoader" in SolrResourceLoader, which is 
consulted after lookup in WEB-INF/lib and SOLR_HOME/lib fails, and it hunts 
through all installed plugins. It also works for looking up any resource on 
class path.

I'm thus *not* talking about mashing all class loaders together, but when a 
configSet declares that it uses e.g. {{kuromoji}} and you in 
{{managed-schema}} declare {{}} then Solr would first lookup that 
plugin class in core/global class loader, and when not found, it will look in 
the "kuromoji" package where it will be found. You still have the isolation, 
and any class loading performed by Kuromoji itself to load its dependencies are 
handled by the isolated package class loader, so it won't use an incompatible 
version of some dependency. It is just the first main plugin class lookup that 
needs to resolve packages. And then we won't need a 
{{class="kuromoji:solr.JapaneseTokenizerFactory"}} syntax in every possible 
piece of the product that load classes or resources. 

Another related question that I thought about in my POC but never got to test 
thoroughly was SPI plugins. We use SPI for most Schema plugins, so in fact as 
of SOLR-13593 you an now say {{}} or {{}} in your schema instead of referring to class names. This 
will look up the plugin through SPI. For this to work with the package system 
you would either need to bolt on a special name syntax here, e.g. 
":" or let SPI find the class by also looking in the declared 
packages.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945481#comment-16945481
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}[~noble.paul]: Rolling restarts are NEVER REQUIRED. Solr behaves very 
badly during rolling restarts, we lose shards/replicas or our overseer get 
clogged with messages and needs manual intervention.
{quote}
I understand the objective of hot update not needing restart. But in my point 
5) i was talking about *rolling upgrades* as officially documented and 
recommended in ref-guide 
([https://lucene.apache.org/solr/guide/8_1/upgrading-a-solr-cluster.html)]. I 
hear you say that you personally have bad experience with rolling restarts, but 
are you also saying that the new package design is incompatible with the 
rolling upgrade procedure?

If we still want to support rolling upgrade, I think it is crucial that we have 
a well designed and tested story for package upgrades during a rolling restart 
where some nodes are 8.x and other nodes are 9.x. In that case ZK as source of 
truth for which plugin version a collection has is simply not good enough. Each 
node must be able to choose and upgrade a package to a package version that is 
compatible with the new Solr version.

That is part of the reason I want a static/cold way of installing a package and 
resolve version, before the node is even started. And on node startup, the node 
needs to validate every package/plugin and refuse to start if an active 
package's version constraint is not satisfied. It must then be possible to 
upgrade packages on that node (which is just upgrade to 9.0) only without 
forcing the same version of a package for all other nodes (which still run Solr 
8.x).

Plugin/package authors are of course encouraged to make sure their plugins will 
not break if two versions are in use by the same cluster at the same time. This 
may be challenging for e.g. LTR that use shared data files (such as ML models). 
But I guess it will have to be handled and documented in the same way we do for 
Solr in general. E.g. "In order to upgrade to LTR v9.0 you first need to be 
running v 8.x which supports both old and new model format" or similar. Ideally 
such upgrade requirements would be possible to encode in the manifest.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945471#comment-16945471
 ] 

Noble Paul commented on SOLR-13661:
---

bq.This is what we have ResourceLoader and class loaders for. If we cannot find 
{{com.example.MyPlugin}} in main class loader, then hunt through every package 
class loader until you have a match, ...

You seem to have very little understanding of how classloaders work .

Putting multiple classloaders together will result in classcastexceptions which 
are impossible to debug. This also means we cannot reload a package independent 
of another. 

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945459#comment-16945459
 ] 

ASF subversion and git services commented on SOLR-13661:


Commit 515af6d3ecc5ea1b3754776f9ce4e39857f99734 in lucene-solr's branch 
refs/heads/jira/SOLR-13787 from Ishan Chattopadhyaya
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=515af6d ]

SOLR-13661: Reverting all half-baked stuff from SOLR-13707, SOLR-13659, 
SOLR-13565, SOLR-13650, SOLR-13710, SOLR-13721, SOLR-13637

All half baked package management and hot-classloading code reverted to allow 
for a fresh start.


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945457#comment-16945457
 ] 

Noble Paul commented on SOLR-13661:
---

bq.Can you elaborate on that? Is it simply so that a collection using packages 
cannot also use "..


No, That's not true.

If your plugin uses {{package=}} that plugin cannot use classes 
from {{}}. All other components can use {{}}

bq. But being a totally new way of distributing Solr and having huge impact on 
the whole user and wider dev community, 

This does not change the way Solr is distributed. Yes, this CAN BE used to 
change the distribution in the future and that SHOULD BE done in a major 
release. But
* You can't change the distribution AND introduce new capabilities in one go. 
Your new distribution mechanism should be built on a tried and tested feature
* You can't deny features to users who wants to have an easier way to 
install/update plugins. 

The key is to incrementally build features , test them in the wild , fix issues 
and move on. I don't think big bang releases of new features is a good idea. 
That requires enormous amount of time and resources and we mostly get it wrong 
and sometimes we end up building the wrong features and all the efforts go 
waste.

 This feature should be marked experimental so that users can try this and get 
feedback and we can improve upon it and it's made ready for Solr to rely on 
this for distribution
 

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945432#comment-16945432
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}New features can be introduced in any release, irrespective of how big a 
feature is
{quote}
Of course. But being a totally new way of distributing Solr and having huge 
impact on the whole user and wider dev community, I think it makes totally 
sense to introduce pkg mgmt in a major release as beta, and use the following 
releases to adjust and settle the APIs and solicit feedback from 3rd party 
plugin devs etc. But I agree that, if handled carefully and labeled 
"experimental", we may introduce this in a series of 8.x point releases, and 
perhaps start moving features from core into packages in master, targeting a 
slim solr-core in 9.0, which is a major "feature" in itself.
{quote}This change is not backward incompatible or it does not affect users of 
current versions 
{quote}
You mentioned that "" is incompatible with your class loader work. Can you 
elaborate on that? Is it simply so that a collection using packages cannot also 
use ""?

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945333#comment-16945333
 ] 

ASF subversion and git services commented on SOLR-13661:


Commit 515af6d3ecc5ea1b3754776f9ce4e39857f99734 in lucene-solr's branch 
refs/heads/master from Ishan Chattopadhyaya
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=515af6d ]

SOLR-13661: Reverting all half-baked stuff from SOLR-13707, SOLR-13659, 
SOLR-13565, SOLR-13650, SOLR-13710, SOLR-13721, SOLR-13637

All half baked package management and hot-classloading code reverted to allow 
for a fresh start.


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-06 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945290#comment-16945290
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. Wrt 8.3 release and the half-merged stuff, may I suggest a revert and 
un-mark this as Blocker. 
Exactly, that's the plan. Noble is working on it.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-05 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945202#comment-16945202
 ] 

Noble Paul commented on SOLR-13661:
---

bq. In my opinion the package mgmt stuff don't belong in 8.x at all,

That's not how our project works. New features can be introduced in any 
release, irrespective of how big a feature is. A feature is big or small has no 
relevance. However, backward incompatible changes are only introduced in major 
versions. This change is not backward incompatible or it does not affect users 
of current versions 

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-05 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945145#comment-16945145
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. . In my opinion the package mgmt stuff don't belong in 8.x at all, it is a 
huge feature that should target 9.0.0(-alpha)
Why do you think so?

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-05 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945137#comment-16945137
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}This shall be easier for reviewing. 
[https://github.com/apache/lucene-solr/pull/915]
{quote}
Hmm, I find this monster PR915 not easier to review, so I think it is better to 
do it per-feature and start with the fundamentals like FileStore, AnnotatedApi 
etc and get those merged separately when they are stable.

Wrt 8.3 release and the half-merged stuff, may I suggest a revert and un-mark 
this as Blocker. In my opinion the package mgmt stuff don't belong in 8.x at 
all, it is a huge feature that should target 9.0.0(-alpha).

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-02 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16942656#comment-16942656
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

I have re-raised the same PR, but re-organized the commits into reverting 
previous committed code and all new code.
This shall be easier for reviewing. 
https://github.com/apache/lucene-solr/pull/915

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-02 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16942569#comment-16942569
 ] 

Noble Paul commented on SOLR-13661:
---

As long as somebody says they are reviewing/ or planning to review I'll hold on

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-01 Thread David Wayne Smiley (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16942472#comment-16942472
 ] 

David Wayne Smiley commented on SOLR-13661:
---

Don't merge this to master.  Please be patient for peer review.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-01 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16942436#comment-16942436
 ] 

Noble Paul commented on SOLR-13661:
---

I'm code complete and I'll spend time to ensure that the tests are passing 
consistently.

Please review & I plan to merge this to master shortly

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-10-01 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941551#comment-16941551
 ] 

ASF subversion and git services commented on SOLR-13661:


Commit 8f3b7133359d95c419bee3568863867d947f6775 in lucene-solr's branch 
refs/heads/jira/SOLR-13661 from Noble Paul
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=8f3b713 ]

SOLR-13661:Changed the name of blob-store to 'filestore' . All APIs are updated 
to reflect this


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941355#comment-16941355
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

As per a discussion in 8.3 release thread, branch cutting has been delayed for 
a week.
Let us do the needful (either revert or review/merge this PR) by then.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941047#comment-16941047
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. We revert those changes. But they seem complicated enough that I don't want 
to attempt it.
The commits are here: https://issues.apache.org/jira/browse/SOLR-13710

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Blocker
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941012#comment-16941012
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. I want to be clear on one thing: The concern/frustration that Jan and I 
have on peer review is because this issue is not some ordinary JIRA issue. It's 
highly impactful to Solr. As-such, IMO peer review is required for at least the 
major ideas / high level, naming, CLI, release-plan. Getting into some small 
details, no, not needed. Thankfully the peer review is here now 

Thanks David and Jan for your help with reviews. I am glad to receive the 
reviews and the improvement that brings to our design and implementation. I 
shall update the design document with all the details that we discussed offline 
(on slack) that will make it easier to understand the workflows involved here.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941010#comment-16941010
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

We are in a difficult situation here. There are some commits concerning the 
class loader changes and new blob store that are already in master and 
branch_8x. But I am supposed to cut the 8.3 branch today. Here are the options 
we have:
# We revert those changes. But they seem complicated enough that I don't want 
to attempt it.
# We review and merge https://github.com/apache/lucene-solr/pull/910 which will 
complete the blob store and class loader work, but might take 1-2 days to 
review?
# We leave the unfinished code in the branch and disable the feature and cut 
the branch.

[~noble.paul], [~dsmiley], [~janhoy] any thoughts?

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread David Wayne Smiley (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941007#comment-16941007
 ] 

David Wayne Smiley commented on SOLR-13661:
---

The design document is pretty fantastic in its overall scope (not too much or 
too little) and structure (easy to consume).  Of course I have things inside to 
debate but it was a breath of fresh air to consume.

I want to be clear on one thing:  The concern/frustration that Jan and I have 
on peer review is because this issue is not some ordinary JIRA issue.  It's 
highly impactful to Solr.  As-such, IMO peer review is _required_ for at least 
the major ideas / high level, naming, CLI, release-plan.  Getting into some 
small details, no, not needed.  Thankfully the peer review is here now :-)

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-30 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16940750#comment-16940750
 ] 

ASF subversion and git services commented on SOLR-13661:


Commit 7779be1017c93166cf10d8debc8765e7d121037c in lucene-solr's branch 
refs/heads/jira/SOLR-13661 from Noble Paul
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=7779be1 ]

SOLR-13661: Changed the blob store to use sha256- as the blob id 
instead of just sha256


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-27 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16939153#comment-16939153
 ] 

ASF subversion and git services commented on SOLR-13661:


Commit 68232b0d746e9ade0f7019ab01db9f15e194abb8 in lucene-solr's branch 
refs/heads/jira/SOLR-13661 from Noble Paul
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=68232b0 ]

SOLR-13661: merge commit from SOLR-13722 branch


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-26 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938991#comment-16938991
 ] 

Noble Paul commented on SOLR-13661:
---

bq.Simplicity should be front seat. Don't force users to have to add 
{{package="my-pkg"}} 

 

A name is something everyone needs . A package name is an extremely important 
aspect. You cannot load reload plugins from a package we do not know the name 
of the package. Just a class name means nothing. Isolated classloaders are 
extremely important. Every sensible platform is built with isolation.

 

We can possibly later add a global feature called , {{config-package= mypkg}} . 
This would mean that every plugin will load from {{mypkg}}. There is no reason 
why it cannot be added later. But, not being able to load a plugins from 
multiple packages is a strict NO. You are just ensuring that multiple packages 
from multiple plugin writers cannot coexist.

Another issue id backward incompatibility. The new class loader design is 
different and it can break current deploymemts

This new design totally disallows per core classloaders. This can be a problem 
for users who use Solr with core level libs. So, it has to be backward 
incompatble as well


bq.Robustness during upgrades is another concern. I don't see mentioned in the 
design doc what happens during a Solr upgrade.

 

I'm not sure you have read the design properly. Robustness of design is the 
paramount feature of this design. We went out of our way to ensure that 
"update" is non-disruptive. Rolling restarts are NEVER REQUIRED. Solr behaves 
very badly during rolling restarts, we lose shards/replicas or our overseer get 
clogged with messages and needs manual intervention.
 


Overall feedback on your feedback  [~janhoy] 

I'm happy to receive and address feedback. We need to divide the following parts
 # Enhancements which can be implemented with the current design . But the 
current design is meeting the minimum viable product and does not obstruct or 
hamper implementing an enhancement
 # The current design is suboptimal or bad UX
 # Comments on "inadequate eyes" etc. We are an OSS project and we don't work 
in the same org. So collaboration is always "inadequate" .  We should always 
work towards having 100% collaboration in every single feature that we build. 
The fact that we are discussing this here means that we can have collaboration 
as long as people are interested in it. So, please refrain from giving this 
"feedback". We should keep the comments short and sweet and make them 
"actionable"

 

I'll give examples of #1 and #2
h3. using a Package.java to load plugins

This falls into #1
Is this a good suggestion? I would say it's questionable. But, I won't delve 
into that here.

But, can we implement it if required in the future? Yes, of course. Does it 
have to be discussed in this ticket? I would say it's out of the scope.

h3. Changing the blob names to hash-filename

This falls into #2

This is a usability issue. I had thought about this while building it, ab had 
raised the concern  in he design doc. It is probably something we should 
address before committing this. If you have gone through the comments you would 
have seen it. 

 
Let's keep the feedback coming. But let's not distract from the current task at 
hand. We don't have a working useful package management system today and a 
minimum viable product is what we needs now. bells and whistles can be added 
later. 

We need the wheels, steering, transmission and seats of the car to be built 
first. Yes , we can add seat belts , Air conditioning etc later.

 

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-26 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938881#comment-16938881
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. Let's understand that this is not our hobby. It's a job. We are all able to 
do this because somebody is funding the development .When somebody is funding 
the development, they will have certain requirements and all their requirements 
need to be met. I'm sure every org works like that. Salesforce, Bloomberg, 
Apple , Lucidworks and all the big contributors are building big features to 
satisfy their businesses.
I disagree with the spirit of this comment. I'd have done this work, 
irrespective of someone funding this development. For me, it is as much a hobby 
as much a job.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-26 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938870#comment-16938870
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

bq. We went through deployment lifecycles of at least 3 of my clients, went 
through state of the art package management systems like apt, dnf etc. and 
thought through all potential usecases and future of Solr as a lean core with 
all non-essential features stripped out as packages in an Apache repository), 
as well as went through your talk+code+presentation+document. Our main focus is 
ease of use and a robust plugin lifecycle management experience. Your PoC was 
lacking some major pieces that we've covered meticulously here: security, 
efficient loading (without needing to restart nodes as in your PoC), ease of 
deployment, not requiring packages to depend on PF4J (your PoC forced users to 
add PF4J as a dependency, perhaps to facilitate the loading) etc.

Also, went through some bits of the user experience of ES plugin system. 
[~jpountz], [~jim.ferenczi], [~mikemccand], would love your thoughts on this, 
based on your experience with ES.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-26 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938863#comment-16938863
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

1.
{quote}too many decisions seem to be made with too few eyes 
{quote}
Noble, Ishan, Jan, Andrzej, David. We've had at least these many "eyes". How 
many more or who else are needed?

2.
{quote}"package" concept seems to be designed for ONE use case only, customer's 
internal custom packages, with arbitrary local naming of repos and packages
{quote}
Not at all. Apache's contrib modules can easily be installed/deployed the same 
way, they can be packages themselves.
{quote}before such a feature goes mainstream, the design should also include 
converting some of our contrib modules to packages that we release as separate 
binaries in the mirrors, and enable an "apache" Repo as default.
{quote}
Converting a contrib module needn't be a precursor to releasing this feature. 
Moreover, without the Gradle work completed, I don't want to attempt to change 
the build system too much (only to do it again later).
{quote}Perhaps that would mean some name spacing or name collision resolution
{quote}
Namespacing the packages is something we thought of. We already have two pieces 
of information available in public APIs and all system boundaries/interfaces: 
"repository" and "package-name". If we need to internally namespace the 
packages, we can do so later. However, I don't think we need to do this: look 
at dnf, apt etc. systems, and there's no concept of namespaces of packages. 
That means, third parties should be careful enough not to name their packages 
same as official packages.

3. Sure.
{quote}We need a plan for how 3rd party plugin developers can publish their 
plugins on their own web site or on GitHub in a well defined way.
{quote}
I can add a document to that effect in our ref-guide. Initially, just the 
repository structure documented in the design document will be supported. 
Github support can be added subsequently.

4.
{quote}Hot/Cold deploy. I don't like systems where you, as part of the install 
need to spin up a server.
{quote}
Spinning up a cluster prior to installing the packages is not "needed". Someone 
can cold start a cluster with plugins pre-installed. Noble and I have both 
documented those steps in the design doc as a reply to your comment.

6. That's a tradeoff. I initially raised the same point, but Noble suggested 
that adding a new set of znode watchers per collection is an overhead. I'm +0 
on your suggestion.

7. We have a disagreement here. Needing the user to edit solrconfig.xml 
necessarily in order to specify which collection uses which package is bad from 
simplicity standpoint. Please keep in mind that hand editing configset is an 
expert feature.

8. No, we're not forcing regular users to do anything extra. Regular users 
should be using config APIs to register/deregister their plugins. Expert users 
are expert enough to just add an extra package name while they are hand editing 
their solrconfig.xml. I think this is a very reasonable compromise.

9. Plan is to support both: (a) jar without manifest + external manifest, (b) 
jar containing manifest.
 The first scenario should be preferred in case of multi-jar packages.

10. Sure, I like the idea of supporting multiple jars as well as a zip 
containing all the jars. It can be supported.

11. Plugin initialisation commands are not complex at all; they are typically 
just regular config API commands to register the plugins. They are necessary 
for pleasant adoption. A user just needs to install a package and specify which 
collection he needs to deploy his package to. Simple! If we go by your idea, 
then user would install the package but need to hand-edit the solrconfig.xml in 
order to add the plugins from the package to his collection.

12. I agree. We thought a lot about how to support filenames, and all the 
approaches seemed to have some deficiency. I've documented that as a comment in 
the design document. Without an additional distributed KV datastore, this seems 
hard to get right. The sha256.properties file approach will not work well, 
since every node will have its own version of the file, and also maintaining 
update consistency will be hard.
{quote}But I put a lot of careful thought into the POC which I feel is largely 
lacking here
{quote}
I assure you that we've put a lot of thought into how we designed this. Our 
main focus is ease of use and a robust plugin lifecycle management experience. 
Your PoC was lacking some major pieces that we've covered meticulously here: 
security, efficient loading (without needing to restart nodes as in your PoC), 
ease of deployment, not requiring packages to depend on PF4J (your PoC forced 
users to add PF4J as a dependency, perhaps to facilitate the loading) etc.

Just because I haven't documented each and every user story that you 

[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-26 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938830#comment-16938830
 ] 

Jan Høydahl commented on SOLR-13661:


I have just looked at some of the code and will not have time for a more 
thorough review until week after next.

Here is a list of my main concerns so far:
 # My main concern is that too many decisions seem to be made with too few 
eyes, combined with a goal of merging very soon.
 # One example of "too few eyes" is that the "package" concept seems to be 
designed for ONE use case only, customer's internal custom packages, with 
arbitrary local naming of repos and packages. I think before such a feature 
goes mainstream, the design should also include converting some of our contrib 
modules to packages that we release as separate binaries in the mirrors, and 
enable an "apache" Repo as default. That requires some more thought behind 
stable name-spacing, so that e.g. “bin/solr install ltr” will mean the same for 
all customers. Perhaps that would mean some name spacing or name collision 
resolution, so if you have a custom local repo with a package also called 
"ltr", then you get an error which can be resolved by qualifying the package 
name like e.g. "apache:ltr" or "mylocalrepo:ltr".
 # We need a plan for how 3rd party plugin developers can publish their plugins 
on their own web site or on GitHub in a well defined way. The use of 
pf4j-update lib takes care of much of this, and this is also something that can 
be added incrementally, but the design needs to allow for this. My POC has a 
RepositoryFactory class that parses the repo URL (e.g. "bin/solr plugin repo 
add myrepo [https://host.com/repo/name];) and selects the 
GitHubUpdateRepository if it is a GitHub URL, the ApacheMirrorsUpdateRepository 
if it is an apache.org address, and the default site/FS repo else. Each of 
these handle the download process and signature verification in a different way.
 # Hot/Cold deploy. I don't like systems where you, as part of the install need 
to spin up a server. We already have this with setting urlScheme in ZK for 
HTTPS. But ideally it should be possible to do a Solr install including plugins 
before you need to spin up Solr. Elasticsearch uses such a static plugin 
installer (but also don't support hot install). Having a "staging" folder where 
you can drop package ZIP files (or JARs) where the node can self-install 
packages during first startup could be one way to handle this.
 # Robustness during upgrades is another concern. I don't see mentioned in the 
design doc what happens during a Solr upgrade. We should think through the 
scenario for both minor and major version upgrade for Solr, and then I mean 
rolling upgrade. Having ZK as only master for what version of a plugin should 
be used is probably not sufficient, as during a rolling Solr upgrade, you could 
have one node on 8.3 and another node on, say, 9.0. And you could have 
packageA:1.0 installed but Solr9 requires v2.0 due to removal of some APIs or 
what not. In the cold scenario (as in POC) you'd shut down a Solr node, upgrade 
Solr, then run "bin/solr plugin upgrade outdated" before starting that node 
again, and that would make sure it has the correct plugin version. Since you 
cannot upgrade Solr while it is running, perhaps we need to hook in some 
validation on node startup that it does not have any packages that won't work 
with that Solr version, and refuse to start. And some way to have two versions 
of a package installed at the same time, and then instead of using the latest, 
the Solr node will select the newest version that is compatible. Then when that 
node is upgraded it will select the new version of the plugin automatically 
based on Version.java.
 # Package system deserves its own Znode in Zookeeper instead of abusing 
clusterProps
 # I don't like the concept of an admin needing to "deploy" a package to a 
collection using a command. Rather, the collections should require a set of 
packages (optionally with min version) and fail to start if it is not available 
in the system. If the package is available in the system, the collection should 
gain access to the package(s) it required without running a deploy command.
 # Simplicity should be front seat. Don't force users to have to add 
{{package="my-pkg"}} wherever they today can say 
{{class="com.example.MyPlugin"}}. This is what we have ResourceLoader and class 
loaders for. If we cannot find {{com.example.MyPlugin}} in main class loader, 
then hunt through every package class loader until you have a match, if no 
match then throw ClassNotFound. (I never liked the {{runtimeLib=true}} 
equivalent in the old blob store.)
 # The package design says that a manifest is not required for a package and 
that any plain jar can function as a package just by registering it manually. 
That is ok as an alternative workflow, but most packages (and all 

[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-25 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16937957#comment-16937957
 ] 

Noble Paul commented on SOLR-13661:
---

#1 & #2 can be implemented in the future and there is nothing in the current 
impl that prevents is from doing any of it. 

 

#3 is not something I'm sure about

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-25 Thread David Smiley (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16937954#comment-16937954
 ] 

David Smiley commented on SOLR-13661:
-

There are a few particular things I'm not sure I've seen here yet that I want 
to ensure _could be supported_ (i.e. without major redesign/rework).

(1) Declare plugin/package dependencies for the whole configSet, such as via 
additional options to solrconfig.xml "" tags.  While this would not work 
with hot deployment of plugins since a core reload is needed, this would at 
least support the entire range of plugin interfaces we have that work from 
within a SolrCore, and thus support all of the schema as well _without_ making 
users add new tags to all these various elements.

(2) Use the new blob store for _resources_ (data) as an alternative to the 
configSet.  The configSet lives in ZooKeeper and as-such is a poor fit for, 
say, machine learning models, language models, or any other large immutable 
files needed within a running SolrCore.  Such resource data might be versioned 
like plugins but would be considered data and not code.  Plugins could declare 
dependencies on resources, or might be declared directly by the configSet in 
some manner.  Detaching from the configSet is also good for re-use of large 
files across configs.  I could imagine a SolrResourceLoader that interprets 
special prefixes like "blob://mymodel/foo.dat" or some-such to generically plug 
into our existing resource spots.

(3) Pluggable blob store implementation and/or support for a shared file system 
across the cluster with a configurable path.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-22 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935531#comment-16935531
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

[~janhoy], [~dsmiley], [~erickerickson], please review the design.

Most of the class loader work is already done and committed as it was a 
standalone piece. The package management stuff resides in two public branches 
(SOLR-13722 and SOLR-13662) where Noble and I are collaborating.
{quote}So my criteria is that nothing we do should make "the silent majority" 
of user's lives more difficult.
{quote}
[~erickerickson], This package management piece is going to be an opt-in and an 
optional feature. It will not get in the way of any conceivable existing user 
workflow (simple or complex). For those who will choose to use it, it will be a 
charm and their lives will never be the same again!
{quote}I'm kind of sad to see this new JIRA not connecting to prior work at 
all, it should be a best practice to research prior art or at least ask on the 
list before starting a new Jira of this magnitude.
{quote}
[~janhoy] Initially, this work started with just trying to build the hot 
loading capabilities. That was independent of anything that we had in Solr, so 
Noble went ahead and committed that piece. As things progressed and I joined 
forces, the story evolved into building a complete package management system.
 In that pursuit, I did fully research your prior work. I asked you for the 
code 
https://issues.apache.org/jira/browse/SOLR-13661?focusedCommentId=16923943=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16923943,
 went over it fully. I find your sadness completely baseless. While I couldn't 
leverage your code piece directly, I borrowed the choice of your library 
(PF4J-update) and rolled it into a prototype (branch jira/solr-13662).
{quote}I also don't like off-list development followed by huge code dumps in a 
rapid pace.
{quote}
All development happens off-list; they happen in our Git repository and 
referred to from our JIRA issues. Noble and I did exactly that: all code was 
available in a public JIRA branch on our main Apache repository, right from the 
day the code was ever written. The reason why you may have missed that is 
likely because pushes to those branches did not emit a JIRA comment. As for 
speed of development, "rapid" is cool ;)
{quote}To be frank, I have a very hard time grasping the 10.000ft vision behind 
the current blob package effort, what the big picture is, how it will work our 
for users (small and large), and what about 3rd party plugin developers etc
{quote}
Fair concern; hopefully the latest document will address your concerns. The big 
picture remains the same as what you dreamed of; the eventual goal is for all 
of the extraneous features of Solr to sit as packages that users can install 
(from Apache repositories). A lite / safe Solr will be free from the optional 
features. However, this work will take time (I plan to start on the splitting 
up of Solr once the Gradle work is done). Meanwhile, the package manager will 
be immensely useful for 3rd party packages and repositories.
{quote}I was also sad to see this new Jira get filed without any investigation 
/ mention of previous efforts, and see a bunch of code fly in rapidly without 
review. Slightly angry/frustrated even.
{quote}
Cute!

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Assignee: Ishan Chattopadhyaya
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>
> Here's the design doc:
> https://docs.google.com/document/d/15b3m3i3NFDKbhkhX_BN0MgvPGZaBj34TKNF2-UNC3U8/edit?usp=sharing



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-22 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935494#comment-16935494
 ] 

Noble Paul commented on SOLR-13661:
---

{quote}lt. Sure, for those who need custom code we should provide ease-of-use, 
but not, repeat NOT if it causes "regular" users grief.
{quote}
There are 4 types of users
 # happy to use Solr OOTB
 # Use only 3rd party plugins
 # Write their own custom plugins
 # Write and publish custom plugins for others to use

This ticket is not for #1 . They can peacefully happily use Solr without 
thinking that this feature exists. 
 Is there anything in this ticket that suggests we are sacrificing the 
usability for #2 in favor of #3 ? OTOH what I was trying to say is that we 
shouldn't assume that an overwhelming majority of users belong to #2 based on a 
sample survey and we have no other data to go by and make life easy for #2, #3 
and #4

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>
> The design doc is WIP.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-22 Thread Erick Erickson (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935436#comment-16935436
 ] 

Erick Erickson commented on SOLR-13661:
---

[~noble.paul]  Well, generally we only get called into complicated situations 
;). It's always a bit weird. I'd _really_ like to see a comprehensive data set 
on how many people use Solr OOTB with nothing except maybe some configuration 
changes, IOW nothing custom at all. We're always in danger of our expectations 
being set by the clients we see, which are, IMO, not your "typical user". Solr 
"just works" and only users with complicated requirements need consultants.

So my criteria is that nothing we do should make "the silent majority" of 
user's lives more difficult. Sure, for those who need custom code we should 
provide ease-of-use, but not, repeat NOT if it causes "regular" users grief.

Here's where my age makes references like "the silent majority" obscure to you 
young whipper-snappers, especially anyone who wasn't following US politics in, 
...er... about 1970. "Before you was born dude" in Paul Simon's song...

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>
> The design doc is WIP.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-22 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935421#comment-16935421
 ] 

Noble Paul commented on SOLR-13661:
---

bq. The only poll I have seen in the Solr community on plugin usage is my own...

This survey does not really reflect the reality. Every shop I have been in had 
their own custom plugins. We should not guide our decisions based on the 
results of this survey

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>
> The design doc is WIP.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-21 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935156#comment-16935156
 ] 

Jan Høydahl commented on SOLR-13661:


Thanks for adding some high level design spec. I really like the distributed 
blob system, and how a node can bootstrap from other nodes by pulling needed 
jars. And the isolated class loaders that can just swap out a plugin with a new 
one. I also have some questions:
 # How would e.g. SolrCell / Tika contrib be defined as a package? It has some 
42 dependency jars. Guess through a blobs array?
 # If you DELETE a package a package through {{/api/cluster/packages}}, how 
will it know what blobs to delete and which to leave? Another package may have 
the exact same dependency jar with the same hash
 # Why do you need a {{package="pkg_name"}} in addition to 
{{class="my.plugin.Class}}? That sounds very invasive, since we'd need to add 
such package qualifiers to schema, security.json, solr.xml and virtually 
everywhere? I guess it is an explicit way of selecting class loader and 
obtaining isolation, but is there a smarter, less invasive way?
 # You say that the version is not used by the system. So time comes to upgrade 
Solr, how do you weed out the incompatible packages

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
> Attachments: plugin-usage.png, repos.png
>
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution
> h2. What is a package?
> A package has 2 parts 
>  * The {{jar}} binaries which may contain standard plugins (or even other 
> libraries). It does not expect anything special. Basically , any jar file can 
> be added into a package
>  * The configuration in ZK. The structure is as follows
> {code:json}
> {
>   "name": "package-name",
>   "version": "some-version-string",
>   "blob": {
> "sha256": "the-sha256-of-the-blob",
> "sig": "signature-signed-with-your-private-key",
> "name": "some-identifier"
>   }
> }
> // use the following format for your multi jar package
> {
>   "name": "package-name",
>   "version": "some-version-string",
>   "blobs": [
> {
>   "sha256": "the-sha256-of-the-blob",
>   "sig": "signature-signed-with-your-private-key",
>   "name": "some-identifier"
> }
>   ]
> }
> {code}
>  * {{*name*}} : this is identifier used to access the package
>  * {{*version*}}: This is not consumed by the system. But, it is required so 
> that the user can make out which version is being used
>  * {{*blob/sha256*}}: The sha256 of the blob. You should have uploaded this 
> blob into the new FS blob store
>  * {{*blob/sig*}} : signature. ensure that your public keys are already there 
> in {{/keys/exe}} in ZK
>  * {{blob/name}} : a friendly identifier (not required)
> Voila! this is all you need to have a package in Solr
> Every package gets its own isolated unique classloader in a Solr node. The 
> classloader is a child of the {{CoreContainer}} classloader. Basically, your 
> classes have to be either in the root classloader or in the blobs in your 
> package
> h2. What are the components of this system?
> h3. {{PackageResourceLoader}} class
> This is a standard {{SolrResourceLoader}} . It has all the blobs of a package 
> in its classpath.
> h3. {{PackageManager}} class
> This is a registry of all Package classloaders . essentially a {{Map PackageResourceLoader>}}
>  This class is responsible for listening to the state changes in ZK to the 
> packages ADD/UPDATE/DELETE operations.
>  * ADD : create a new {{PackageResourceLoader}} and add it to the registry
>  * UPDATE: create a new {{PackageResourceLoader}}, update the registry and 
> notify every listener
>  * DELETE: remove a {{PackageResourceLoader}}
> h4. The Public APIs
>  * {{GET /api/cluster/packages}} : Get a list of all registered packages
>  * {{POST /api/cluster/packages}}
> ** {{add}} command: create a new package
> ** {{add}} command: update an existing package
> ** {{delete}} command: delete an existing package
> h4. configuring your plugins to use packages
>  * in your {{solrconfig.xml}}
> {code:xml}
>  package="pkg_name">
> 
> {code}
>  * using config API
> {code:xml}
> {
> "add-requesthandler": {"name":""/my_handler", "class":"my.full.ClassName",  
> "package":"pkg_name"
>  }
> }
> {code}
> h4. Example hot loading schema from package (TBD)
> {code:java}
> 
> {code}
> h4. verifying your components
> {code:java}
> GET /solr//config//component-name?meta=true
> {code}

[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-20 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16934482#comment-16934482
 ] 

Noble Paul commented on SOLR-13661:
---

bh. Eeh, no - this is community over code.

Yes, It's community over code. That's why we are all collaborating and 
discussing this. Most of the times nobody bothers to collaborate or comment. 
You did your part in your PoC and there was not enough feedback or 
collaboration. The community thing works only if people are willing and have 
time. 
All my development is done in public and I'm happy to discuss with anyone who 
is asking questions

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-20 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16934478#comment-16934478
 ] 

Noble Paul commented on SOLR-13661:
---

{quote}No, users won't have to do anything. 
{quote}
Our users mostly write plugins and deploy their plugins. Third party plugins 
are very few. So everyone who wishes to use your solution will have to write 
extra code to comply with your package format

 

In this case, there is no change required to your existing plugin. You could 
deploy everything in 3 steps

 
 # POST your jar to /api/cluster/blob
 # create a package using a command
 # edit your solrconfig.xml to add package="package-name"

>From now on
 * he has all his custom plugins loaded from this own jar
 * he can update his plugins with just 2 commands with zero downtime
 * if there is something wrong, he can rollback to the old plugin version in 
exactly one command

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-20 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16934449#comment-16934449
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}The reason why we built hot deployment was that Solr was unstable when 
we end up restarting a 1000 node cluster
{quote}
Hot deployment was identified as a future improvement in my POC. And don't get 
me wrong, I'm very impressed by all your hot jar deployment work, it solves 
many use cases. It also makes deploy a bit more messy since Solr needs to be up 
and running as part of the deploy process itself. That is not very cool when 
writing Dockerfiles and ansible deploy scripts. Some kind of plugins could be 
fundamental to even getting the cluster started and so I'd prefer if there was 
an "offline/static" way to pull and install certain packages before needing to 
fire up the cluster. That was the *only* way to install packages in my POC, but 
perhaps we could handle both. I like the fact that a node can come up and then 
consult another node to fetch its missing plugins, after asking ZK about what 
plugins are needed. That should make for a possibility of pulling a bunch of 
plugin packages (zip/jar) into say /var/solr/plugins on a cold node, then 
declaring those somewhere in ZK and when the cluster bootstraps it will 
self-distribute those plugins across the entire cluster.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-20 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16934433#comment-16934433
 ] 

Jan Høydahl commented on SOLR-13661:


{quote}Let's understand that this is not our hobby. It's a job
{quote}
Eeh, no - this is community over code.

To be frank, I have a very hard time grasping the 10.000ft vision behind the 
current blob package effort, what the big picture is, how it will work our for 
users (small and large), and what about 3rd party plugin developers etc (which 
was my main focus for the Pf4J effort). This is a too big/important of an 
improvement for Solr to just slide in under the radar in a series commits 
without taking time to anchor the master plan and chosen design in the 
community.
{quote}Jans plugin package mechanism required users to build their custom 
packages. In this case you could deploy your existing jars without any 
modification. You don't have to do anything special
{quote}
No, users won't have to do anything. We as committers publish the packages. 3rd 
party plugin developers on GitHub publish their Solr plugins as packages. Users 
just do {{bin/solr install }}. And the packages are not custom, 
they follow the well-defined PF4J format. Which is pluggable and extensible. 
One of the supported package formats is a JAR with a few extra lines in the 
MANIFEST. Or an existing JAR with the manifest as a separate file. Or whatever 
we agree to define. But there needs to be a manifest declaring the name, 
version and dependencies, else it's not a package.

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-20 Thread Jira


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16934139#comment-16934139
 ] 

Jan Høydahl commented on SOLR-13661:


If you don't feel like reading the 16 page design spec, here's a perhaps more 
consumable 60-slide slide deck 
[https://www.slideshare.net/janhoy/solrs-missing-plugin-ecosystem] and my 
Revolution talk [https://www.youtube.com/watch?v=hZKcULlZEQQ] 

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-19 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16933849#comment-16933849
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

Thanks for your offer to help. As of right now, we're working on branches in 
SOLR-13722 and SOLR-13662. We quickly jotted down our next steps in this sheet: 
https://docs.google.com/spreadsheets/d/1qG1f-mO49lp9abh1XScufOTHpb-Sb0C6Y4WOsoJj3f4/edit?ts=5d7fb030#gid=0.
We'll incorporate that into JIRA and commits into branches and eventually 
master. Would greatly appreciate your help in reviews!

bq. I'll be landing some big commits to the branch and seeking reviews and 
feedback.
As for timelines, we're hoping to wrap up the work left to do (in that sheet) 
by next week. That work includes some massive cleanups too (mainly on the code 
I have committed to the branch).

bq. I originally did not start this as a proper package manager. the original 
idea was to just have a minimal improvement to hot load libraries
Originally, Noble worked on the plugin loading mainly focussing on the "hot 
loading" part (without needing core reload). When I joined him, I convinced him 
that we have the opportunity to turn this into a complete user story by adding 
the package management part (on the lines of apt or dnf and similar to what we 
saw in Jan's prototype).

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-19 Thread Noble Paul (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16933802#comment-16933802
 ] 

Noble Paul commented on SOLR-13661:
---

bq.did you forget (again) to resolve the issues you committed or are they 
deliberately open because they haven't landed on 8.x yet

There was scope creep. I originally did not start this as a proper package 
manager. the original idea was to just have a minimal improvement to hot load 
libraries. Eventually, I decided to do a proper coherent story around this so 
that it is done well. As you may know , it's very difficult to get buy in from 
your employer to undertake a huge task of this magnitude.

bq.There have been no code reviews yet on this committed code; right?  I looked 
and see none but I wasn't exhaustive. 

I'm glad that there are people volunteering to review code. As long as there 
are reviewers willing to collaborate, It's a good thing to have. There largely 
has been developer apathy to new features (or even other changes). As we have 
got some visibility through the talk in activate conf, we have managed to spark 
some interest. Yes, reviews are welcome and seriously appreciated. I'll be 
landing some big commits to the branch and seeking reviews and feedback.
cheers  

> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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



[jira] [Commented] (SOLR-13661) A package management system for Solr

2019-09-16 Thread Ishan Chattopadhyaya (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-13661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16930799#comment-16930799
 ] 

Ishan Chattopadhyaya commented on SOLR-13661:
-

Based on feedback from Activate conference attendees and some internal design 
discussions, here's what we plan to do:
# Support for multiple jars in the same package
# Packages should support verify operations after installation/updation
# Put package metadata (like setup commands etc.) into the blob store


> A package management system for Solr
> 
>
> Key: SOLR-13661
> URL: https://issues.apache.org/jira/browse/SOLR-13661
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Noble Paul
>Priority: Major
>  Labels: package
>
> Solr needs a unified cohesive package management system so that users can 
> deploy/redeploy plugins in a safe manner. This is an umbrella issue to 
> eventually build that solution



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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