[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
GitHub user HoustonPutman opened a pull request:

    https://github.com/apache/lucene-solr/pull/313

    SOLR-11924: Added a way to create collection set watchers in ZkStateReader.

   

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/HoustonPutman/lucene-solr collection-set-watchers

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucene-solr/pull/313.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #313
   
----
commit be1be01d5eb1bf0a69eda65ad60f46442c366950
Author: Houston Putman <hputman1@...>
Date:   2018-01-29T20:29:06Z

    Added a way to create collection set watchers to the ZkStateReader.

----


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
Github user dennisgove commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/313#discussion_r176611511
 
    --- Diff: solr/solrj/src/java/org/apache/solr/common/cloud/CollectionSetWatcher.java ---
    @@ -0,0 +1,41 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.solr.common.cloud;
    +
    +import java.util.Set;
    +
    +/**
    + * Callback registered with {@link ZkStateReader#registerCollectionSetWatcher(CollectionSetWatcher)}
    + * and called whenever the cluster's collection set changes.
    + */
    +public interface CollectionSetWatcher {
    +
    +  /**
    +   * Called when a collection is created, a collection is deleted or a watched collection's state changes.
    +   *
    +   * Note that, due to the way Zookeeper watchers are implemented, a single call may be
    +   * the result of several collection set changes. Also, multiple calls to this method can be made
    +   * with the same colllection set, ie. without any new updates.
    +   *
    +   * @param collections       the set of collections
    +   *
    +   * @return true if the watcher should be removed
    --- End diff --
   
    What's the case here for removing a watcher, and why is `true` the best option? I'm not totally against it, but a boolean seems an odd choice here. If boolean is used would returning `true` to continue watching be a better choice?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
In reply to this post by romseygeek
Github user dennisgove commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/313#discussion_r176611998
 
    --- Diff: solr/solrj/src/java/org/apache/solr/common/cloud/CollectionSetWatcher.java ---
    @@ -0,0 +1,41 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.solr.common.cloud;
    +
    +import java.util.Set;
    +
    +/**
    + * Callback registered with {@link ZkStateReader#registerCollectionSetWatcher(CollectionSetWatcher)}
    + * and called whenever the cluster's collection set changes.
    + */
    +public interface CollectionSetWatcher {
    --- End diff --
   
    What is a `CollectionSet`? It seems that this is watching collection states. Is `CollectionSetWatcher` the best name for this interface?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr issue #313: SOLR-11924: Added a way to create collection set wat...

romseygeek
In reply to this post by romseygeek
Github user dennisgove commented on the issue:

    https://github.com/apache/lucene-solr/pull/313
 
    Overall I think this is a good idea.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr issue #313: SOLR-11924: Added a way to create collection set wat...

romseygeek
In reply to this post by romseygeek
Github user HoustonPutman commented on the issue:

    https://github.com/apache/lucene-solr/pull/313
 
    Regarding your comments:
   
    1. I'm not sure when this would be necessary, however I tried to follow the convention used in `CollectionStateWatcher`. `LiveNodesListener` is a similar interface that doesn't return a value. Maybe it would be better to follow this convention.
    2. The use case I need this for is keeping track of all collections that a cloud contains so that we can monitor each collection. It could also be useful for pre-populating State watchers for all collections, so that they aren't created whenever the state information is needed.
   
    I also have no qualms about changing the name of this interface, as I don't like the current name very much. It might be good to change it from a `Watcher` to a `Listener` if we decide to follow the `LiveNodesListener` convention instead of the `CollectionStateWatcher` convention for removing itself from the `zkStateReader`.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
In reply to this post by romseygeek
Github user HoustonPutman commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/313#discussion_r177865872
 
    --- Diff: solr/solrj/src/java/org/apache/solr/common/cloud/CollectionSetWatcher.java ---
    @@ -0,0 +1,41 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.solr.common.cloud;
    +
    +import java.util.Set;
    +
    +/**
    + * Callback registered with {@link ZkStateReader#registerCollectionSetWatcher(CollectionSetWatcher)}
    + * and called whenever the cluster's collection set changes.
    + */
    +public interface CollectionSetWatcher {
    +
    +  /**
    +   * Called when a collection is created, a collection is deleted or a watched collection's state changes.
    +   *
    +   * Note that, due to the way Zookeeper watchers are implemented, a single call may be
    +   * the result of several collection set changes. Also, multiple calls to this method can be made
    +   * with the same colllection set, ie. without any new updates.
    +   *
    +   * @param collections       the set of collections
    +   *
    +   * @return true if the watcher should be removed
    --- End diff --
   
    This follows the convention used in `CollectionStateWatcher`.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
In reply to this post by romseygeek
Github user HoustonPutman commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/313#discussion_r177866085
 
    --- Diff: solr/solrj/src/java/org/apache/solr/common/cloud/CollectionSetWatcher.java ---
    @@ -0,0 +1,41 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.solr.common.cloud;
    +
    +import java.util.Set;
    +
    +/**
    + * Callback registered with {@link ZkStateReader#registerCollectionSetWatcher(CollectionSetWatcher)}
    + * and called whenever the cluster's collection set changes.
    + */
    +public interface CollectionSetWatcher {
    --- End diff --
   
    There is likely a better name. I named it this because it is watching for the set of collections. `CollectionsWatcher` may be a better name, or `CollectionsListener`.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr issue #313: SOLR-11924: Added a way to create collection set wat...

romseygeek
In reply to this post by romseygeek
Github user dennisgove commented on the issue:

    https://github.com/apache/lucene-solr/pull/313
 
    I think following the structure in `LiveNodesListener` makes more sense. Perhaps a name of `CloudCollectionsSetListener` or `CloudCollectionsListener`.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr issue #313: SOLR-11924: Added a way to create collection set wat...

romseygeek
In reply to this post by romseygeek
Github user HoustonPutman commented on the issue:

    https://github.com/apache/lucene-solr/pull/313
 
    Changed the structure to follow the `LiveNodesListener` convention.
   
    This includes passing the previous set of collections as well as the new list of collections in each notification.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr issue #313: SOLR-11924: Added a way to create collection set wat...

romseygeek
In reply to this post by romseygeek
Github user dennisgove commented on the issue:

    https://github.com/apache/lucene-solr/pull/313
 
    This looks good. I'm running through all tests now but I don't expect any issues to come up. Before I merge this in, would you mind rebasing off current master and collapsing this down to a single commit?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[GitHub] lucene-solr pull request #313: SOLR-11924: Added a way to create collection ...

romseygeek
In reply to this post by romseygeek
Github user asfgit closed the pull request at:

    https://github.com/apache/lucene-solr/pull/313


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]