[ 
https://issues.apache.org/jira/browse/NIFI-4504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16304168#comment-16304168
 ] 

ASF GitHub Bot commented on NIFI-4504:
--------------------------------------

Github user ijokarumawak commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2284#discussion_r158756230
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
 ---
    @@ -174,4 +189,28 @@
          * @throws IOException if any error occurred while removing an entry
          */
         long removeByPattern(String regex) throws IOException;
    +
    +    /**
    +     * Removes entries whose keys match the specified pattern, and returns 
a map of entries that
    +     * were removed.
    +     *
    +     * @param <K> type of key
    +     * @param <V> type of value
    +     * @param regex The regular expression / pattern on which to match the 
keys to be removed
    +     * @param keyDeserializer key deserializer
    +     * @param valueDeserializer value deserializer
    +     * @return A map of key/value entries that were removed from the cache
    +     * @throws IOException if any error occurred while removing an entry
    +     */
    +    <K, V> Map<K, V> removeByPatternAndGet(String regex, Deserializer<K> 
keyDeserializer, Deserializer<V> valueDeserializer) throws IOException;
    +
    +    /**
    +     * Returns a set of all keys currently in the cache
    +     *
    +     * @param <K> type of key
    +     * @param keyDeserializer key deserializer
    +     * @return a Set of all keys currently in the cache
    +     * @throws IOException ex
    +     */
    +    <K> Set<K> keySet(Deserializer<K> keyDeserializer) throws IOException;
    --- End diff --
    
    This method doesn't look realistic. What if the cache storage contains tens 
of thousand or more keys? We should avoid loading all keys into heap.


> SimpleMapCache/PersistentMapCache: Add removeAndGet and removeByPatternAndGet
> -----------------------------------------------------------------------------
>
>                 Key: NIFI-4504
>                 URL: https://issues.apache.org/jira/browse/NIFI-4504
>             Project: Apache NiFi
>          Issue Type: Improvement
>    Affects Versions: 1.4.0
>            Reporter: Jon Kessler
>            Assignee: Michael Moser
>            Priority: Minor
>
> Typical map implementations return the value that was removed when performing 
> a remove. Because you couldn't update the existing remove methods without it 
> being a breaking change I suggest adding new versions of the remove and 
> removeByPattern methods that return the removed value(s).
> These changes should also be applied up the chain to any class that makes use 
> of these classes such as the MapCacheServer and 
> AtomicDistributedMapCacheClient.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to