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

Using shared memory for sending data form library to daemon #189

Closed
Manojcv55 opened this issue Nov 13, 2019 · 13 comments
Closed

Using shared memory for sending data form library to daemon #189

Manojcv55 opened this issue Nov 13, 2019 · 13 comments

Comments

@Manojcv55
Copy link

No description provided.

@Manojcv55 Manojcv55 changed the title Using shared memory for send data form library to daemon Using shared memory for sending data form library to daemon Nov 13, 2019
@ssugiura
Copy link
Collaborator

@Manojcv55 Could you add explanation to this issue raised? Especially I need to understand your use case. Moreover, please take a look at #90.

@mvaradaraj
Copy link

Hi @ssugiura
Currently we are using integrity OS. Where file operations are costlier. So we trying to find alternative IPC mechanism (shared memory) instead of creating pipe.
is there a way for using shared memory as IPC mechanism (sending payload and header)?

@votrungchi
Copy link
Contributor

@mvaradaraj Currently, DLT does not support shared memory as IPC for sending payload and header (only for payload is supported). Refer to #90 for more information.
BTW, Will the UNIX_SOCKET as IPC improve in your use case? Could you please give it a try? compile with -DDLT_IPC=UNIX_SOCKET.

@ssugiura
Copy link
Collaborator

@Manojcv55 @mvaradaraj As reported by @votrungchi , currently we don't support shared memory as IPC and we don't have any plan to extend the feature.
Also, could you check if @votrungchi 's suggestion would work?

@ssugiura
Copy link
Collaborator

ssugiura commented Jan 8, 2020

@Manojcv55 @mvaradaraj Any update from your side?

@Manojcv55
Copy link
Author

@ssugiura Yes @votrungchi suggestions worked , but when applications using dlt comes first and then dlt-daaemon comes there is missing of logs . Could you please suggest anything on this issue

@ssugiura
Copy link
Collaborator

@Manojcv55 Sorry for my late response. Could you give me the reproduction steps? Ideally, it should work, as library and daemon has their own internal buffer to store the logs when daemon/client is not available. If it reaches to the maximum size of each buffer, then it will rotate to overwrite old log messages.

@Manojcv55
Copy link
Author

@ssugiura how many sockets will create if i use socket dlt version ?

@ssugiura
Copy link
Collaborator

ssugiura commented Mar 2, 2020

@Manojcv55 It will create one socket per DLT user.
With FIFO daemon will create two pipes for logging and controlling:
image
On the other hand there is only one socket for unix socket:
image

@Manojcv55
Copy link
Author

Manojcv55 commented Mar 6, 2020 via email

@ssugiura
Copy link
Collaborator

@ssugiura I've never seen that issue. Does dlt-daemon internal log tells you anything? Sharing us the log itself would be very helpful.

@ssugiura
Copy link
Collaborator

@Manojcv55 Any update on this? Having dlt-daemon internal logs will help us to proceed.

@ssugiura
Copy link
Collaborator

ssugiura commented Jul 6, 2020

Closing the issue since there's no update for long time. @Manojcv55 @mvaradaraj Please reopen this issue if the issue is not solved and you need any help from us. As written in previous comment, dlt-daemon internal logs would help us to understand the behavior. Thank you!

@ssugiura ssugiura closed this as completed Jul 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants