[
https://issues.apache.org/jira/browse/DRILL-4275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15147857#comment-15147857
]
ASF GitHub Bot commented on DRILL-4275:
---------------------------------------
Github user hnfgns commented on a diff in the pull request:
https://github.com/apache/drill/pull/374#discussion_r52950999
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/coord/ClusterCoordinator.java
---
@@ -60,16 +62,23 @@
public abstract DistributedSemaphore getSemaphore(String name, int
maximumLeases);
/**
+ * Returns a new {@link TransientStore store} instance with the given
{@link TransientStoreConfig configuration}.
+ * @param config store configuration
+ * @param <V> value type for this store
+ */
+ public abstract <V> TransientStore<V>
newTransientStore(TransientStoreConfig<V> config);
+
+ /**
* Actions to take when there are a set of new de-active drillbits.
* @param unregisteredBits
*/
- public void drillbitUnregistered(Set<DrillbitEndpoint> unregisteredBits)
{
+ protected void drillbitUnregistered(Set<DrillbitEndpoint>
unregisteredBits) {
--- End diff --
Wrong use of this method outside of subclasses could easily mess the system
up. To my understanding, this method should only be visible to implementor who
is the ultimate authority to fire listeners on topology changes, so protected
seems to make more sense here.
> Refactor e/pstore interfaces and their factories to provide a unified
> mechanism to access stores
> ------------------------------------------------------------------------------------------------
>
> Key: DRILL-4275
> URL: https://issues.apache.org/jira/browse/DRILL-4275
> Project: Apache Drill
> Issue Type: Improvement
> Components: Execution - Flow
> Reporter: Hanifi Gunes
> Assignee: Deneche A. Hakim
>
> We rely on E/PStore interfaces to persist data. Even though E/PStore stands
> for Ephemeral and Persistent stores respectively, the current design for
> EStore does not extend the interface/functionality of PStore at all, which
> hints abstraction for EStore is redundant. This issue proposes a new unified
> Store interface replacing the old E/PStore that exposes an additional method
> that report persistence level as follows:
> {code:title=Store interface}
> interface Store<V> {
> StoreMode getMode();
> V get(String key);
> ...
> }
> enum StoreMode {
> EPHEMERAL,
> PERSISTENT,
> ...
> }
> {code}
> The new design brings in less redundancy, more centralized code, ease to
> reason and maintain.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)