Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 12 15:49
    tmontgomery updated the wiki
  • Aug 12 14:57

    tmontgomery on master

    [Java]: change duration of drai… (compare)

  • Aug 12 11:00

    mjpt777 on master

    [Java] Ensure logServicedSessio… (compare)

  • Aug 12 10:46

    mjpt777 on master

    [Java] Error message. (compare)

  • Aug 12 10:29

    mjpt777 on master

    [Java] Formatting. (compare)

  • Aug 12 10:03

    mjpt777 on master

    [Java] Formatting. (compare)

  • Aug 12 09:00

    mjpt777 on master

    [C++] Increase default message … (compare)

  • Aug 12 08:49

    mjpt777 on master

    [Java] Increase default message… (compare)

  • Aug 12 01:32

    mikeb01 on master

    [Java] Add separate method for … (compare)

  • Aug 12 01:17

    tmontgomery on master

    [Java]: clarify in javadoc the … (compare)

  • Aug 11 23:53
    mikeb01 commented on d44a215
  • Aug 11 22:31

    tmontgomery on master

    [Java]: added End of Stream bit… (compare)

  • Aug 11 10:32

    mjpt777 on master

    [Java] Error message formatting. (compare)

  • Aug 11 10:29

    mjpt777 on master

    [Java] Set better example in sa… (compare)

  • Aug 10 16:26

    tmontgomery on master

    [Java]: when removing a session… (compare)

  • Aug 10 13:50

    mjpt777 on master

    [Java] Simplify raw samples. (compare)

  • Aug 10 09:39

    mjpt777 on master

    [Java] Tidy up and close select… (compare)

  • Aug 10 07:59
    Bzil commented #262
  • Aug 09 23:34

    mikeb01 on master

    [Java] Add configuration for ra… (compare)

  • Aug 09 15:00

    mjpt777 on master

    README.md (compare)

Ivan Zemlyanskiy
@QIvan
I mean, I tried to do it with aeron.countersReader(), but I got a segFault =)
Martin Thompson
@mjpt777
@QIvan Same way AeronStat does it.
Ivan Zemlyanskiy
@QIvan
ahhh... you're right, now I feel stupid =)
thank you!
zaradai
@zaradai

Q, Possible bug?
aeron_driver_receiver.c
aeron_driver_receiver_on_add_publication_image

if ensure capacity fails, the error is logged but then continues to inc the array ptr which will surely fail. Should the capacity check be separated and skip the images array update?

Lorenzo Nicora
@nicusX

Hi everybody! Apologies for the newbie question. I am trying to run some of the samples in AWS, between separate EC2 instances, same subnet.
Ping/Pong works perfectly, but I cannot make BasicPublisher/BasicSubscriber talk each other, even via simple unicast UDP.

Publisher (10.0.101.101):

java -cp ./aeron-all-1.32.0-SNAPSHOT.jar \
     -Daeron.sample.embeddedMediaDriver=true \
     -Daeron.sample.channel="aeron:udp?endpoint=10.0.101.101:9000" \
     io.aeron.samples.BasicPublisher

Subscriber (10.0.101.201):

java -cp ./aeron-all-1.32.0-SNAPSHOT.jar \
   -Daeron.sample.embeddedMediaDriver=true \
   -Daeron.sample.channel="aeron:udp?endpoint=10.0.101.101:9000" \
   io.aeron.samples.BasicSubscriber

The subscriber always fails to connect:

io.aeron.exceptions.ChannelEndpointException: ERROR - AeronException : ERROR - channel error - Cannot assign requested address (at java.base/sun.nio.ch.Net.bind0(Native Method)): aeron:udp?endpoint=10.0.101.101:9000

Security Groups, NACL and routing seems to be ok. The two instances can ping each other and can send UDP on port 9000 with netcat. I also tried specifying the interface explicitly and nothing changes (instances have a single network interface, anyhow).

I am sure I am missing something stupid.

Todd L. Montgomery
@tmontgomery
subscriber should use 10.0.101.201. You are using the publisher IP (10.0.101.101). So, use 10.0.101.201 for both if that IP is the subscriber IP
Lorenzo Nicora
@nicusX
Many thanks @tmontgomery
I must say this was not obvious at all, looking at all samples and the wiki. Everything uses localhost that does make not obvious whether it's the publisher or the recipient
Todd L. Montgomery
@tmontgomery
just FYI
Lorenzo Nicora
@nicusX
Thanks. I read that.
Re-reading "The socket address to which publications will send messages and from which subscriptions will receive messages" now I understand the subtlety. But it wasn't massively obvious.
(I don't want to criticise. Please, just get this as a newbie feedback)
Todd L. Montgomery
@tmontgomery
thanks! If you have any suggestions on where that info should be, feel free to let us know
i.e. where would you have expected it, etc.
Lorenzo Nicora
@nicusX
The endpoint paragraph on the wiki is fine. Clarifying the "socket address" is the subscriber (recipient) machine would have helped
Martin Thompson
@mjpt777
@nicusX I've just added that.
Lorenzo Nicora
@nicusX
Cool
Martin Thompson
@mjpt777
@zaradai Thanks, I've pushed a fix.
Mendel Monteiro-Beckerman
@MendelMonteiro
Hi, has there ever been any interest in being able to set QoS traffic classes on the sockets created by Aeron?
Todd L. Montgomery
@tmontgomery
@MendelMonteiro nothing that anyone has been willing to sponsor development on. But if interested in sponsoring it, we could look into it.
Mendel Monteiro-Beckerman
@MendelMonteiro
@tmontgomery thanks for the reply. I'll get in touch if sponsorship is an option.
William
@ilove7412369_twitter
i look at the stats:
sessionId=-1385188173 streamId=1001 channel=aeron:ipc?term-length=268435456 : pub-pos (sampled):251:1694624000 pub-lmt:251:1694623552
is that when it publish reach the pub-lmt, it will take tons of time for the archive to create new memory mapped file and zero them out causing such 10 s?
any ways to avoid?
William
@ilove7412369_twitter
sorry problem solved
Ivan Zemlyanskiy
@QIvan
hi! a quick question if you don't mind:
should in theory the taggedReplicate work with C Media Driver?
I'm getting a timeout exception on my even basic tests, while with Java MD everything is just fine.
thanks.
Martin Thompson
@mjpt777
This room is not being used to answer Aeron questions. Questions can go to our support channels or Stackoverflow which we may eventually get round to.
This room is being reserved for discussions with public contributors.
Martin Thompson
@mjpt777
We are considering shutting down this room. For now we will keep it open but will no longer be giving out free support.
Ivan Zemlyanskiy
@QIvan
oh, cool! glad to read it! It would be awesome if Aeron tag would become more popular on SO
Martin Thompson
@mjpt777
@QIvan Please stop posting here if it is not related to contributions.
Ivan Zemlyanskiy
@QIvan
ok, sorry. Speaking about contributions, a little feedback about reading with Aeron:
why do we need this errorHandler in TermReader https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/java/io/aeron/logbuffer/TermReader.java#L82 ?
I found it very inconveniet, because when I read with my own FH and I throw an exception, I want to use my own try-catch block around a poll, not the global errorHandler which I provided for Aeron and excpect handle aeron related exceptions.
Martin Thompson
@mjpt777
@QIvan This is really a question and not a contribution. I'll allow grace just this once. Look at the following: https://github.com/real-logic/aeron/blob/master/aeron-client/src/main/java/io/aeron/Aeron.java#L1124
William
@ilove7412369_twitter
Aeron archive replay seems quite slow when remote replicate from say Tokyo to SG. Is it not a right use of that? Any way should be better way to do for a higher throughput?
Martin Thompson
@mjpt777
@ilove7412369_twitter As previous stated we will not be offering free consultancy in the room any longer. This room is reserved for public contributor discussions. If you need support we have a commercial offering.
rinkigoyal
@rinkigoyal

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 ?

Martin Thompson
@mjpt777
@rinkigoyal We do not offer free support in this room. It is for contributor discussions.
Ghost
@ghost~5fab2f45d73408ce4ff3c0e0
Is there a way for getting the sequence number of a message with Aeron? So if throughout the day I send 1 million messages can I know that I am dealing with say message #42 versus message #2010?
Martin Thompson
@mjpt777
@pieceofchum I'm getting bored of saying we are not offering support in this room. This is for contributor conversations.
Ghost
@ghost~5fab2f45d73408ce4ff3c0e0
Ok sorry I see that in my emails now no worries.
Eduard Silantyev
@eliquinox
Todd L. Montgomery
@tmontgomery
sweet!
hisitepu
@hisitepu
some type in aeron_stat.c, getopt processing -p but in case capturing 'd'. Thanks
i mean typo, not type
Martin Thompson
@mjpt777
@hisitepu If you are pointing out an issue then please raise one with a detailed example or test to illustrate.
bartlaw
@bartlaw

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.

Martin Thompson
@mjpt777
@bartlaw This channel is for contributor conversations. We can provide commercial support to where needed.
Jeffrey Mazar
@jmazar
how does the 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
Michael Barker
@mikeb01
Hi @jmazar we've changed the role of this room to be specific to public contributor discussions. For support-like queries the best place is: https://stackoverflow.com/questions/tagged/aeron
dantaras
@dantaras

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.

Michael Barker
@mikeb01
@dantaras This is handled within the TermAppender (TermAppender.h:164). If you are writing a client for another language, I would recommend looking at the C++ wrapper over the C API. There is quite a lot of complexity in the API and writers of clients for different languages have found it difficult to keep up with feature changes. Hence we've created the C API implementation to enable the development of APIs in other languages more quickly.