tmontgomery on master
1.16.0 released. post release bump (compare)
tmontgomery on 1.16.0
tmontgomery on master
[Java]: remove commented out co… Merge remote-tracking branch 'o… (compare)
tmontgomery on master
[C]: Cleanup and remove comment… (compare)
tmontgomery on master
[Java]: align with C driver on:… (compare)
tmontgomery on master
[C]: align Java and C driver on… (compare)
mjpt777 on master
Tidy up after merge of PR #259. (compare)
mjpt777 on master
single lookup implementation of… (compare)
tmontgomery on master
[C]: add round robin when sendi… (compare)
mikeb01 on master
[Java] Allow publishing of aero… (compare)
I am trying to identify source stream Id from image unavailable && unavailable events.
Say we have 3 services running in 3 separate JVM && all of communicates via IPC channel.
Service one subscribes on streamId - 101
Service two subscribes on streamId - 102
Service three subscribes on streamId - 103
Service two creates publication for stream 101 && publish few messages
Service three creates publication for stream 101 && publish few messages
Service one receives two image available events with two different session Id. Is there any way to determine whether service two or service three has become available ?
Now service two is stopped && service one receives image unavailable , Is there any way to determine whether service two or service three has become un
available ?
Seems that cluster egress messages are lost when FOLLOWER business logic is faster than LEADER.
By slowing down LEADER in BasicAuctionClusteredService.onSessionMessage() with
if (role == Cluster.Role.LEADER) {
Thread.sleep(1000);
}
we get LEADER business logic to lag behind FOLLOWER. When LEADER goes down egress messages which were produced by FOLLOWER but not yet by LEADER are lost.
Maybe I'm talking nonsense but when CLIENT switches to new LEADER shouldn't it remember his egress position and ask for retransmission when gap is detected.
MaxMulticastFlowControlSupplier
decide what the "fastest" consumer is? Lets say I have 5 consumers and consumer 1 is the "fastest" but starts falling behind and then #2 is further along. Will that be reflected in the flow control or is it possible for a consumer which was the fastest to hang for some reason and then slow down the other 4? if that makes sense
Hi guys! Not sure if this is the right place to post, let me know if not. I'm working on a Julia version of an Aeron client using the C++ client as a model and had a question about the position limit mechanism.
In the offer
methods in https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/cpp/Publication.h position is checked against a limit (eg: https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/cpp/Publication.h#L358) and if smaller publishing can continue. Shouldn't that check take into account how much data there is to be published? If, for example, the position limit is higher by one than the current position and we want to publish 100 bytes, then we will be allowed to publish, go over the limit and in extreme cases we might overwrite data which subscribers haven't read.
Thanks for the response, Michael!
What is the link between position limit here https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/cpp/Publication.h#L344 and term length here https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/cpp/concurrent/logbuffer/TermAppender.h#L158? I was under the impression that position limit can be different and could limit publication within the same term.
I will have a look at the C API as well. Does the shared memory driver API change often?
Hi @ronenhamias, the focus of this channel is community contribution discussion. Support questions should come through a commercial contract or via stackoverflow.
We have a cluster benchmark here: https://github.com/real-logic/benchmarks/blob/master/benchmarks-aeron/src/test/java/uk/co/real_logic/benchmarks/aeron/remote/ClusterTest.java.