Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aeron Source/Sink #26281

Open
5 tasks
chbatey opened this issue Jan 25, 2019 · 0 comments
Open
5 tasks

Aeron Source/Sink #26281

chbatey opened this issue Jan 25, 2019 · 0 comments
Labels
discuss-design Design discussion would be good

Comments

@chbatey
Copy link
Member

chbatey commented Jan 25, 2019

Depending on the the threading model of an application using Aeron directly can be challenging.
Artery contains a very nice utility, TaskRunner, to handle the offering/polling on a single thead for many subscriptions / publications that we can expose for users (via a Source/Sink, not directly) wanting to use Aeron without changing the threading model of their application.

The internal implementation pools ByteBuffers but the public offered API could be typed to ByteString. The use case being for IPC/Inter service communication that is more efficient than most but users wanting maximum efficiency should stick to using Aeron directly.

An inital version could offer a new module that has:

  • AeronSink
  • AeronSource
  • Internal TaskRunner extension that is used by all user source/sinks and Artery if enabled.
  • Internal MediaDriver extesnion that could be come public that is shared with user source/sinks and Artery
  • Internal Aeron extension to manage only a single connection to the MediaDriver

I think we should do this before 2.6 as the configuration for the MediaDriver and TaskRunner would need to move to a namespace such as akka.aeron that the akka.remote.artery references. Or the extensions could load a configuration location and maintain one TaskRunner/MediaDriver per configuration location like we did for the Couchbase connection.

@chbatey chbatey added the discuss Tickets that need some discussion before proceeding. Not decided if it's a good idea. label Jan 25, 2019
@chbatey chbatey self-assigned this Jan 25, 2019
@patriknw patriknw added discuss-design Design discussion would be good and removed discuss Tickets that need some discussion before proceeding. Not decided if it's a good idea. labels Jun 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss-design Design discussion would be good
Projects
None yet
Development

No branches or pull requests

2 participants