Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 19:00

    vyazelenko on master

    [Java] Add timer to the collect… (compare)

  • 16:07

    vyazelenko on master

    [Java] Extend a test with multi… (compare)

  • 14:47
    mjpt777 commented #1325
  • 14:46
    mjpt777 review_request_removed #1325
  • 14:34
    WorkingChen opened #1349
  • 09:07

    vyazelenko on master

    [Java] Add a new test that ensu… (compare)

  • 08:57

    mjpt777 on master

    [Java] Don't filter service ses… (compare)

  • 08:08
    mikeb01 commented on bd12cd7
  • 08:08

    mikeb01 on master

    [Java] Use more efficient lastI… (compare)

  • 07:45
    vyazelenko commented on bd12cd7
  • 04:26

    mikeb01 on master

    [Java] Add utility method to Ch… (compare)

  • Aug 18 18:57

    tmontgomery on master

    [Java]: Update name resolver ca… (compare)

  • Aug 18 13:53

    mjpt777 on master

    [Java] Adjust adapters for comm… (compare)

  • Aug 18 12:53

    vyazelenko on master

    [Java] Extend test to ensure th… (compare)

  • Aug 18 09:56

    vyazelenko on master

    [Java] Do not enqueue old servi… (compare)

  • Aug 18 09:40
    jrsala-auguration closed #1348
  • Aug 18 09:40
    jrsala-auguration commented #1348
  • Aug 18 09:27

    vyazelenko on master

    [Java] Fix unused import. (compare)

  • Aug 18 09:27

    vyazelenko on master

    [Java] Add a test that verifies… (compare)

  • Aug 18 06:30

    mjpt777 on master

    [Java] Clock tick should be 1ms… [Java] More javadoc for Cluster… (compare)

Ivan Zemlyanskiy
@QIvan
hi! Happy New year, guys!
if you recall I asked some time ago about restarting archive and ports issue, when with java md everything worked fine, but with C md didn't (you said because C md is a way faster than Java one and that's cause of the problem)
Could you help to clarify this scenario: I create an aeron instance (with Aeron.connect()) and add a subscription for an endpoint let's say 10.1.1.1:1234, I work with it for some time, then I close the subscription, close the aeron instance and repeat everything once again. A question: what should I do, and should I, before I start everything over?
thank you in advance
Todd L. Montgomery
@tmontgomery
@QIvan you will want to wait until the counter associated with the channel has get removed.
Ivan Zemlyanskiy
@QIvan
but if I closed the aeron where can I get the CounterReader from?
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