[
https://issues.apache.org/jira/browse/FLINK-17611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17106405#comment-17106405
]
Igal Shilman commented on FLINK-17611:
--------------------------------------
Thanks [~slinkydeveloper].
If okhttp client works out, then here is a proposal of how we can incorporate
unix domain sockets:
* You will need to add a "uds" key for the http function spec, that
represents the unix domain socket path. Here is an example snippet of an HTTP
function spec with the uds key.
{code:java}
- function:
meta:
kind: http
...
spec:
endpoint: http://foobar.com/statefun
uds: /mnt/shared/statefun.sock
states:
...
...{code}
* Add a field at
[HttpFunctionSpec.java|https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/httpfn/HttpFunctionSpec.java]
for the unix domain socket path.
* Populate this field at
[JsonModule.java|https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/jsonmodule/JsonModule.java#L255]
* And
[here|https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/httpfn/HttpFunctionProvider.java#L47]
you would be able to set a different socket factory if the
unixDomainSocketPath is present.
What remains to be figured out is, what do we do if the socket file isn't there
yet.
Regarding a contribution guide: we are using a [Flink contribution
guide|https://flink.apache.org/contributing/contribute-code.html] with some
exceptions to the code style here and there, for example we are using Google
code style 1.7, enforced with spotless (instead of check style)
Can I assign you to this ticket?
> Support unix domain sockets for sidecar communication in Stateful Functions
> ---------------------------------------------------------------------------
>
> Key: FLINK-17611
> URL: https://issues.apache.org/jira/browse/FLINK-17611
> Project: Flink
> Issue Type: New Feature
> Components: Stateful Functions
> Reporter: Francesco Guardiani
> Priority: Major
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> Hi all,
> I'm quite new to this project and I've started investigating its potential
> usage in Kubernetes.
> I've found in past that using Unix Domain Sockets across several containers
> in the same pod gives an interesting performance boost and drastically
> reduces the overhead of going through the network stack. Given that
> containers in a pod run in the same host, it's perfectly reasonable to let
> them communicate through unix domain sockets.
> If you're interested in such feature, I'm more than willing to help
> implementing that, given that I need a few pointers where to start from
--
This message was sent by Atlassian Jira
(v8.3.4#803005)