mjpt777 on master
[Java] Log join position mismat… (compare)
mjpt777 on master
[Java] Fix handling of next ter… (compare)
mjpt777 on master
[Java] Simplify fragment assemb… (compare)
mjpt777 on master
[Java] Inline variable. (compare)
mjpt777 on master
[Java] Consistent scope. (compare)
mjpt777 on master
Update README.md (compare)
mjpt777 on master
[Java] Handle fragment assemble… (compare)
mjpt777 on master
Javadoc. (#260) (compare)
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)
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?