Hey Michael, Great thanks. I will try out near cache.
Also is it too much to ask you or John to consider adding a Topic abstraction in Geode. Since the mechanics are already there I guess it can be done relatively easily. Regards On Tue, Nov 15, 2016 at 9:27 PM, Michael Stolz <mst...@pivotal.io> wrote: > You can still have a near cache embedded into your app using the > client/server model of GemFire. Just declare the Region on the client side > to be CACHING_PROXY and it will keep a local cache that can be updated from > changes on the servers. > > -- > Mike Stolz > Principal Engineer, GemFire Product Manager > Mobile: 631-835-4771 > > On Tue, Nov 15, 2016 at 12:47 AM, Amit Pandey <amit.pandey2...@gmail.com> > wrote: > >> Also for clarification I was planning to do it for a couple of replicated >> caches. >> >> >> >> On Tue, Nov 15, 2016 at 10:58 AM, Amit Pandey <amit.pandey2...@gmail.com> >> wrote: >> >>> Thanks John and Michael. >>> >>> I can use client/server no problem. >>> >>> However my reason to use an embedded Geode was that based on my >>> experience with other memory Grids its always faster to have it embedded. >>> And I have some requirements for extremely low latency so I thought it >>> would have saved some time and given better latency than having the >>> client/server model. >>> >>> On Tue, Nov 15, 2016 at 9:15 AM, John Blum <jb...@pivotal.io> wrote: >>> >>>> @Mike - correct me if I am wrong, and I wouldn't recommend this, but... >>>> >>>> You could emulate a pub/sub system even with peers by taking advantage >>>> of a Subscription >>>> <http://geode.incubator.apache.org/docs/guide/reference/topics/cache_xml.html#subscription-attributes> >>>> [1] >>>> policy on peer *Regions* (REPLICATE or PARTITION, either or). I.e. a >>>> Region's Subscription policy controls what data is replicated between them, >>>> which in effect, could serve a similar purpose to topics and what data >>>> events a peer Region receives. Then a CacheListener registered on the >>>> Region could process events when entries (of interests expressed through >>>> the Region Subscription policy) are updated. >>>> >>>> Of course, this is a superficially limited approach and not advisable >>>> for any practical use of a Region's Subscription policy, IMO. First, you >>>> would need to pre-populate the Region with keys (for events) you are >>>> interested in. Then, you would set the Subscription interest-policy to >>>> "cache-content" where your peer would then be notified of updates from any >>>> other peer also defining the same Region and, as well, also storing the >>>> same key/value. So, as you can see, this is not a intended use of this >>>> feature, but it is doable. You can read additional information here >>>> <http://geode.incubator.apache.org/docs/guide/developing/events/configure_p2p_event_messaging.html> >>>> [2]. >>>> >>>> As @Mike points out, a better approach it to use the client/server >>>> topology >>>> <http://geode.incubator.apache.org/docs/guide/topologies_and_comm/cs_configuration/chapter_overview.html> >>>> [3] >>>> and Register Interests >>>> <http://geode.incubator.apache.org/docs/guide/developing/events/configure_client_server_event_messaging.html> >>>> [4], >>>> or better yet, use CQs >>>> <http://geode.incubator.apache.org/docs/guide/developing/continuous_querying/chapter_overview.html> >>>> [5]. >>>> >>>> Hope this helps. >>>> >>>> Cheers, >>>> John >>>> >>>> >>>> [1] http://geode.incubator.apache.org/docs/guide/reference/t >>>> opics/cache_xml.html#subscription-attributes >>>> [2] http://geode.incubator.apache.org/docs/guide/developing/ >>>> events/configure_p2p_event_messaging.html >>>> [3] http://geode.incubator.apache.org/docs/guide/topologies_ >>>> and_comm/cs_configuration/chapter_overview.html >>>> [4] http://geode.incubator.apache.org/docs/guide/developing/ >>>> events/configure_client_server_event_messaging.html >>>> [5] http://geode.incubator.apache.org/docs/guide/developing/ >>>> continuous_querying/chapter_overview.html >>>> >>>> >>>> On Mon, Nov 14, 2016 at 2:57 PM, Michael Stolz <mst...@pivotal.io> >>>> wrote: >>>> >>>>> Ok Got it. >>>>> But Peer caches can't do pub/sub unless they go to the extra trouble >>>>> of setting up a pool, whereas clients get a pool automatically. >>>>> >>>>> -- >>>>> Mike Stolz >>>>> Principal Engineer, GemFire Product Manager >>>>> Mobile: 631-835-4771 >>>>> >>>>> On Mon, Nov 14, 2016 at 3:02 PM, John Blum <jb...@pivotal.io> wrote: >>>>> >>>>>> Well, what I think Amit means (correct me if I am wrong) is the Geode >>>>>> embedded peer cache use case, meaning the application is also a peer >>>>>> cache >>>>>> in the cluster, while not the most common UC (nor maybe recommended in >>>>>> most >>>>>> UCs), it is a valid UC none-the-less. >>>>>> >>>>>> It is to have your application participate a peer in the Geode >>>>>> cluster by simply constructing a peer Cache using the CacheFactory >>>>>> <http://geode.incubator.apache.org/releases/latest/javadoc/org/apache/geode/cache/CacheFactory.html> >>>>>> [1], >>>>>> and setting the locators property have your application join existing >>>>>> cluster, something like so... >>>>>> >>>>>> Cache peerCache = new CacheFactory().set("locators", >>>>>> "<host>[<port>]").set(..)...create(); >>>>>> >>>>>> You can also do this in SDG with... >>>>>> >>>>>> <util:properties id="geodeProperties"> >>>>>> <prop key="name">MyApplication</prop> >>>>>> <prop key="mcast-port">0</prop> >>>>>> <prop key="log-level">${geode.log.level:config}</prop> >>>>>> <prop key="locators">${geode.locators.host-port:localhost[10334]}</ >>>>>> prop> >>>>>> <prop key="start-locator">${geode.locator.embedded.host-port:}</prop >>>>>> > >>>>>> </util:properties> >>>>>> >>>>>> <gfe:cache properties-ref="geodeProperties"/> >>>>>> >>>>>> The <gfe:cache> element created a "peer" cache (as opposed to the >>>>>> <gfe:client-cache> element). >>>>>> >>>>>> You are then free to create Regions used by your application as >>>>>> necessary. >>>>>> >>>>>> I have examples of both GemFire peer and client/server configurations >>>>>> here >>>>>> <https://github.com/jxblum/pivotal-gemfire-clientserver-examples> [2] >>>>>> and here >>>>>> <https://github.com/jxblum/contacts-application/tree/apache-geode> >>>>>> [3] (see configuration examples). >>>>>> >>>>>> Hope this helps. >>>>>> >>>>>> Cheers, >>>>>> John >>>>>> >>>>>> [1] http://geode.incubator.apache.org/releases/latest/javado >>>>>> c/org/apache/geode/cache/CacheFactory.html >>>>>> [2] https://github.com/jxblum/pivotal-gemfire-clientserver-examples >>>>>> [3] https://github.com/jxblum/contacts-application/tree/apache-geode >>>>>> >>>>>> >>>>>> On Mon, Nov 14, 2016 at 11:28 AM, Michael Stolz <mst...@pivotal.io> >>>>>> wrote: >>>>>> >>>>>>> Geode clients have the ability to registerInterest(key) which works >>>>>>> a lot like a topic. >>>>>>> >>>>>>> Not sure what you mean by using Geode embedded and with a cluster of >>>>>>> external processes, but what I THINK you're asking is, can you use the >>>>>>> Geode client/server model where the client is embedded into your >>>>>>> application process and the servers that are responsible for holding all >>>>>>> the data are in a separate cluster. The answer is YES, that is the most >>>>>>> common configuration for Geode usage. >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Mike Stolz >>>>>>> Principal Engineer, GemFire Product Manager >>>>>>> Mobile: 631-835-4771 >>>>>>> >>>>>>> On Sat, Nov 12, 2016 at 12:41 PM, Amit Pandey < >>>>>>> amit.pandey2...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi Guys, >>>>>>>> >>>>>>>> Is there any example of public subscribe with geode? Hazelcast and >>>>>>>> Ignite seem to have topics, is there any such thing in Geode. >>>>>>>> >>>>>>>> Also I want to use Geode embedded. Can I use it with a cluster of >>>>>>>> external processes as well. >>>>>>>> >>>>>>>> Regards >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> -John >>>>>> 503-504-8657 >>>>>> john.blum10101 (skype) >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> -John >>>> 503-504-8657 >>>> john.blum10101 (skype) >>>> >>> >>> >> >