Hello again. Sorry for the delay in responding, flu ... :(
On Nov 12, 5:18 am, Talip Ozturk <
ta...@hazelcast.com> wrote:
> > 1. Is it feasible to create an IMap for each Call within a Hazelcast
> > Cluster? We could have anywhere from 5-200 Calls.
>
> You can create as many IMap as you want. Creating 1000 maps is no big
> deal for Hazelcast.
Really? Awesome! I know that with Infinispan I tried creating a Cache
for about 100 Calls and there were literally thousands and thousands
of multicast messages being sent back and forth, and it seemed to
drag. The authors even told me that would probably be a bad idea.
I was testing with 90 IMaps on 2 machines and was seeing some
weirdness. I don't quite have the problem located yet but it does seem
that at a certain point, between 15-20 IMaps, my listener stops
firing, which I assume means that the remote put is not being
performed.
I am only doing simple puts in one of the 20 IMaps I create. When I
only create 1-15 IMaps, all is well. More than that, the listener
stops firing. Weird. Is there any way to turn on logging to see what's
going on?
>
> > 2. Let's say we have a Cluster with 2 members, A and B. Each has a
> > couple hundred-thousand entries. Along comes member C. When C joins he
> > has to get data from A and B, and both A and B need to re-hash to
> > equally distribute data. But at the same time both A and B are
> > receiving new data. When C finally has its data and the Cluster is
> > ready, how do A and B send the new data to C? Is the cluster blocked
> > at any time?
>
> Hazelcast will make sure that every member will read the right value
> for any given key at any given time, even when a new member joins or a
> member leaves. This is one of the main jobs of Hazelcast anyways. As
> of 1.7.1 there is almost no blocking even when a member joins. (there
> used to be but not anymore)
>
Amazing.
> > 3. Related to #2, is it safe on Cluster start-up to start one node
> > after the other in succession, or is it better to wait a while between
> > nodes?
>
> start any number of nodes at anytime. it doesn't matter much for Hazelcast.
>
Again, amazing.
> > 4. Anyway to know who is the oldest member?
>
> the first member at Hazelcast.getCluster().getMembers(). but you
> shouldn't rely on that. I highly recommend avoiding member specific
> things.
>
Ok.
> > 5. We need to have some data (sums mainly) updated with each request.
> > Our idea is to save this data in memory on the oldest Cluster member
> > (A) and perhaps have a backup on the second-oldest member (B). It is
> > not persisted. Our idea was to use Distributed Execution to have all
> > members send messages to A and B to update the data. But what happens
> > when A or B dies? It could be a lot of work. Would some simple
> > Hazelcast Distibuted Data Structure be a better idea?
>
> you can store your data in a distributed map for sure and don't worry
> about what will happen if a member dies or how it will redistribute.
> If you have have a backup configured (1 backup by default) then your
> data is safe as long as you have at least one member left in the
> cluster and no-more than 1 member dies at a time.
>
Yea ... we're just not sure if it's worth it to use a map. Keep in
mind these are just totals, simple numbers, and there are only 3-4 of
them. It seems like overkill to use a Map or other Distributed Object,
but I guess if we want them univesrally available and updateable,
we'll have to use one ...
Great! I knew about eviction but thought it was only used when the
cache was too small to hold the data ...
> > 7. Care to compare / contrast Hazelcast with Infinispan?
>
> i am probably the wrong person to do that comparison, at least in a
> public discussion because I am biased.. I highly recommend you to try
> it out and see it yourself. Create 10 node cluster, do a stress test.
>
Fair enough. I am sure there will soon be comparisons out there, once
the world starts using both.
> -talip
Cheers,
Bob