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

Mark Payne commented on NIFI-989:
---------------------------------

[~joemeszaros] - one thing to note here is that the DistributedMapCacheClient 
is an interface that exists in the services-api nar. This means that there can 
be many different implementations of the interface. I know others do exist, 
outside of apache nifi. As a result, we can't really change the API of that 
service in a non-backward-compatible way. I.e., we can't add new methods to 
that interface. At least, not until version 1.0.0.

One way to address this is to provide a new interface, 
SizableDistributedMapCacheClient that extends DistributedMapCacheClient, and 
then add the size() method there. Then any processor or extension point that 
wants to use the size() method would rely on this 
SizableDistributedMapCacheClient.

Thanks
-Mark

> Support size() operation in distributed map cache
> -------------------------------------------------
>
>                 Key: NIFI-989
>                 URL: https://issues.apache.org/jira/browse/NIFI-989
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core Framework
>            Reporter: Joe Mészáros
>            Priority: Minor
>              Labels: cache, command-line, distributed, improvement
>
> The distributed map cache server is a great tool for caching along with the 
> cache client (DistributedMapCacheClientService), but after you configure and 
> enable it, it is a black box. You are unable to get any information from the 
> cache e.g how much entries live in the cache.
> The purpose of this issue to extend the cache interface and associated 
> implementations to support the size() operation, which returns the number of 
> entries in the distributed cache. 
> It could be a first step in a direction of a more transparent cache, where 
> the user can understand, what happens with the distributed cache. I mean 
> after the size() operation, it could be really helpful to implement a stats() 
> command, which s used to query the server about statistics it
> maintains and other internal data (e.g. evictions, hit rates, ...). 
> Similar to:
>  - memcached : 
> https://docs.oracle.com/cd/E17952_01/refman-5.0-en/ha-memcached-stats-general.html
> - couchbase: http://blog.couchbase.com/monitoring-couchbase-cluster
> - redis: http://haydenjames.io/using-redis-stat-for-redis-statistics-tracking/
> I implemented a really simple command line tool, which can interact with the 
> cache server from the command line, e.g. get a cache entry and it also able 
> to get the size of the cache, which could be useful, when you would like to 
> debug cache related problems, or just get basic interaction with the cache.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to