[ https://issues.apache.org/jira/browse/DRILL-4275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15147907#comment-15147907 ]
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_r52954122 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java --- @@ -146,38 +155,37 @@ public QProfiles(List<ProfileInfo> runningQueries, List<ProfileInfo> finishedQue @Path("/profiles.json") @Produces(MediaType.APPLICATION_JSON) public QProfiles getProfilesJSON() { - PStore<QueryProfile> completed = null; - PStore<QueryInfo> running = null; - try { - completed = provider().getStore(QueryManager.QUERY_PROFILE); - running = provider().getStore(QueryManager.RUNNING_QUERY_INFO); - } catch (IOException e) { - logger.debug("Failed to get profiles from persistent or ephemeral store."); - return new QProfiles(new ArrayList<ProfileInfo>(), new ArrayList<ProfileInfo>()); - } - - List<ProfileInfo> runningQueries = Lists.newArrayList(); - - for (Map.Entry<String, QueryInfo> entry : running) { - QueryInfo profile = entry.getValue(); - if (principal.canManageProfileOf(profile.getUser())) { - runningQueries.add(new ProfileInfo(entry.getKey(), profile.getStart(), profile.getForeman().getAddress(), - profile.getQuery(), profile.getState().name(), profile.getUser())); + try ( + final PersistentStore<QueryProfile> completed = getProvider().getStore(QueryManager.QUERY_PROFILE); + final TransientStore<QueryInfo> running = getCoordinator().newTransientStore(QueryManager.RUNNING_QUERY_INFO); --- End diff -- nope instances are now cached. I will rename the method to reflect that change. > 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)