aeron | Efficient reliable UDP unicast , UDP multicast

 by   real-logic Java Version: 1.41.3 License: Apache-2.0

kandi X-RAY | aeron Summary

kandi X-RAY | aeron Summary

aeron is a Java library typically used in Telecommunications, Media, Media, Entertainment applications. aeron has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has high support. You can download it from GitHub, Maven.

[Aeron Archive (Durable/Persistent Stream Storage)] [Aeron Cluster (Fault Tolerant Services)] [Aeron Cookbook] by Shaun Laurens.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              aeron has a highly active ecosystem.
              It has 6521 star(s) with 809 fork(s). There are 360 watchers for this library.
              There were 1 major release(s) in the last 12 months.
              There are 18 open issues and 683 have been closed. On average issues are closed in 7 days. There are 2 open pull requests and 0 closed requests.
              It has a positive sentiment in the developer community.
              The latest version of aeron is 1.41.3

            kandi-Quality Quality

              aeron has 0 bugs and 0 code smells.

            kandi-Security Security

              aeron has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              aeron code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              aeron is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              aeron releases are available to install and integrate.
              Deployable package is available in Maven.
              Build file is available. You can build the component from source.
              Installation instructions, examples and code snippets are available.
              It has 114916 lines of code, 7214 functions and 680 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed aeron and discovered the below as its top functions. This is intended to give you an instant insight into aeron implemented functionality, and help decide if they suit your requirements.
            • Creates the publication image .
            • print command
            • Append a fragment to the buffer .
            • Checks that a segment file is invalid .
            • Tries to parse an IPv6 string .
            • Handles a new leadership term .
            • Method to plan recovery log .
            • Cancels the connection .
            • Find the offset for the start of a file .
            • Prints back to stream .
            Get all kandi verified functions for this library.

            aeron Key Features

            No Key Features are available at this moment for aeron.

            aeron Examples and Code Snippets

            No Code Snippets are available at this moment for aeron.

            Community Discussions

            QUESTION

            Aeron publication side concurrency issue on singleton request buffer
            Asked 2022-Mar-15 at 09:06

            is there any best practice to handle concurrency on publish side?? assume that we have a client that wants to handle 1 Million concurrent requests, these requests must send to the Aeron server-side via publication offer. now we have a singleton expandable array buffer that overwrites and is corrupted by concurrency.

            ...

            ANSWER

            Answered 2022-Mar-14 at 19:29

            From the description of the problem, you should benefit from using https://github.com/real-logic/agrona/blob/master/agrona/src/main/java/org/agrona/concurrent/ringbuffer/ManyToOneRingBuffer.java and then implement the MessageHandler that makes use of io.aeron.ExclusivePublication#offer.

            Source https://stackoverflow.com/questions/71473118

            QUESTION

            C++ Build Windows build fatal error LNK1104 gmock.lib
            Asked 2022-Feb-22 at 14:16

            I'm trying to build Aeron on Windows with VS2022. I have all requirements stated in README.md (eg I've installed JDK etc) and have run the build script in Developer PowerShell VS2022 using the following script

            ...

            ANSWER

            Answered 2022-Feb-22 at 14:16

            Run the following command from the Aeron base directory to simplify the build:

            $ cppbuild\cppbuild

            Source https://stackoverflow.com/questions/71221870

            QUESTION

            What type of message delivery guarantees Aeron can provide?
            Asked 2021-Dec-15 at 22:28

            What message delivery guarantees Aeron give me as a messaging framework (at least once, at most once, exactly once)?

            ...

            ANSWER

            Answered 2021-Dec-15 at 22:28

            Thinking about Aeron in those terms doesn't really help your understanding as Aeron is flexible with regards to it's reliability options - especially when Archive and Cluster are also considered. The best response would be "at most once", but that hides a lot of detail.

            As it states in the README.md, Aeron is a layer 4 protocol. So the reliability options are similar to what you would get with TCP. Lost messages are redelivered as long as the remote ends are alive and heartbeating. However this general requirement can be loosened. For multi-node distribution (multicast and MDC) the flow control setting can affect reliability. For example using max strategy means that if one of the receivers reports that it is up to date the flow control window can move forward and other slower receivers may end up missing data that can not be nakked. Even using the min strategy slower receivers that are unresponsive for long enough can drop out of the flow control group and be left behind. There is also options to disable nakking from receivers so any loss will be gap-filled.

            To allow recovery in these situations is where Archive comes in as it allows messages to be stored to enable "late join" behaviour. Therefore if once the archive has acknowledged that a message is stored, then you could consider this to be "exactly once" in practical terms.

            Cluster takes this to the next level by using a quorum agreement to prevent message loss in the case of node failure.

            Source https://stackoverflow.com/questions/68703247

            QUESTION

            Can Aeron lose messages?
            Asked 2021-Nov-28 at 22:09

            If I offer a message via Publication to some channel (IPC or UDP) and this operation returns a positive value (new position) that means that data were written on disk (fsynced to /dev/shm) or not? In other words... does Aeron relies on pagecache or not? May I lose data when OS was shut down right after I had offered new data via publication and received positive value in response).

            ...

            ANSWER

            Answered 2021-Nov-28 at 22:09

            Yes it can. Returning a positive position value indicates only that the message has been written to the term buffer. The term buffer is generally stored in a memory only file system. E.g. on Linux this is /dev/shm.

            Note that fsyncing /dev/shm has no effect as it is not backed by non-volatile storage.

            Aeron Archive is the means to persistently store messages.

            Source https://stackoverflow.com/questions/68703262

            QUESTION

            Does the Aeron C Media Driver support Clustering capabilities?
            Asked 2021-Jul-12 at 08:47

            Previously I read in docs that the C Media Driver is in development and doesn't support Aeron Cluster like the Java Media Driver does.

            Is this still the case? Is it a goal for C Media Driver to be on par with Java Media Driver?

            ...

            ANSWER

            Answered 2021-Jul-12 at 08:47

            Yes, the Aeron C Media Driver does have the features to support Aeron Cluster. It also has the benefit of lower and more predictable latency when configured correctly plus access to extensions to provide transport encryption and reduced latency via ef_vi and DPDK native support.

            Source https://stackoverflow.com/questions/68341223

            QUESTION

            Is it possible to add members to Aeron Cluster w/o reconfiguring existing ones?
            Asked 2021-May-20 at 19:31

            I'm looking for a way to add new members to existing Aeron cluster without reconfiguring existing ones.

            It seems cluster members are defined statically during startup as described in the Cluster Tutorial:

            ...

            ANSWER

            Answered 2021-May-20 at 19:31

            Yes, it is possible! The context should be built like this:

            Source https://stackoverflow.com/questions/67619759

            QUESTION

            Is it possible to replay from Aeron Cluster?
            Asked 2021-May-12 at 20:14

            We would like to use Aeron as persistent queue. Is it possible to setup Aeron Cluster to provide

            • replication, and
            • possibility to replay (like Aeron Archive) for the clients?
            ...

            ANSWER

            Answered 2021-May-12 at 20:14

            Currently Aeron Cluster requires that logic to process events from Cluster's replicated log has to be implemented as a ClusteredService.

            Having Cluster run without services and providing a replay feature similar to how replay from the Archive works is a feature that is being considered.

            Source https://stackoverflow.com/questions/67421461

            QUESTION

            What is the difference between RSocket + TCP and RSocket + WebSocket?
            Asked 2021-May-05 at 18:59

            I am completely new to RSocket.

            I read the FAQ and the motiviations page (and skimmed the Protocol page) and understand that RSocket can be used on top of TCP, WebSocket and Aeron. But what I don't understand is what the differences are between using RSocket with these transports because all interaction-models can be used with each transport.

            I am personally interested in using RSocket channel to enable bi-directional communication but don't know which transport I should use. For example what are the differences between RSocket (channel) + TCP and RSocket (channel) + WebSocket?

            I couldn't find an answer anywhere, so I was hoping someone here could help me out.

            Ty in advance.

            ...

            ANSWER

            Answered 2021-Apr-30 at 08:54

            RSocket provides a common programming interface to multiple transports. You can choose the transport based on the qualities of service the transport provides. For example, if you require ease of firewall traversal then choose WebSocket, if you require low-latency and high-throughput transfer choose Aeron. All things are relative. Aeron can traverse firewalls but configuration is more specialised and WebSocket can give reasonable performance but it is not in the same category as Aeron.

            Many other factors come into play so you need to understand the underlying transports with the qualities they provide and match these up against your requirements.

            Source https://stackoverflow.com/questions/67297781

            QUESTION

            Aeron - Issues with Multicast across Switches
            Asked 2021-Apr-13 at 14:54

            I am trying to run a Basic Publisher/Subscriber pair on the same Multicast/Port. It works perfectly when the hosts are connected to the same Switch, but not if the subscriber is on a different Switch.

            Publisher

            ...

            ANSWER

            Answered 2021-Apr-13 at 14:54

            I was able to make it work with adding a ttl config option.

            Publisher

            Source https://stackoverflow.com/questions/67065549

            QUESTION

            Aeron: should Archive taggedReplicate work with C Media Driver?
            Asked 2021-Jan-21 at 05:42

            I'm getting a timeout exception on my even basic tests with taggedReplicate, while with Java MD everything is just fine.

            I tested with a stand alone MD versions 1.27.0 and 1.31.1

            ...

            ANSWER

            Answered 2021-Jan-19 at 16:40

            Yes, Archive tagged replicate does work with both the Java and C media drivers. It is possible you have something not configured correctly. This system test runs against the Java and C media drivers.

            Source https://stackoverflow.com/questions/65780369

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install aeron

            Build the project with [Gradle](http://gradle.org/) using this [build.gradle](https://github.com/real-logic/aeron/blob/master/build.gradle) file.
            [JDK 8](https://adoptopenjdk.net/index.html) or later, Java versions before 1.8.0_65 are very buggy and can cause tests to fail.
            You require the following to build the C++ API for Aeron:. Note: Aeron support is available for 64-bit Linux, OSX, and Windows. For convenience, the cppbuild script does a full clean, build, and test of all targets as a Release build.
            3.6.1 or higher of [CMake](http://www.cmake.org/)
            C++11 supported compiler for the supported platform
            C11 supported compiler for the supported platform
            Requirements to build [HdrHistogram_c](https://github.com/HdrHistogram/HdrHistogram_c).
            JDK 8 or later to compile the SBE schema definitions used by the archive client.

            Support

            On linux, the subscriber sample throws an exception.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/real-logic/aeron.git

          • CLI

            gh repo clone real-logic/aeron

          • sshUrl

            git@github.com:real-logic/aeron.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Java Libraries

            CS-Notes

            by CyC2018

            JavaGuide

            by Snailclimb

            LeetCodeAnimation

            by MisterBooo

            spring-boot

            by spring-projects

            Try Top Libraries by real-logic

            simple-binary-encoding

            by real-logicJava

            agrona

            by real-logicJava

            artio

            by real-logicJava

            benchmarks

            by real-logicJava

            aeron-cookbook-code

            by real-logicJava