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

Use arrow + shared memory to pass data between Go and Python #205

Open
tebeka opened this issue Feb 28, 2019 · 5 comments
Open

Use arrow + shared memory to pass data between Go and Python #205

tebeka opened this issue Feb 28, 2019 · 5 comments
Assignees

Comments

@tebeka
Copy link
Contributor

tebeka commented Feb 28, 2019

We'd like to use Arrow + shared memory to pass data between Go & Python. We assume client and server will be on the same machine.

@tebeka tebeka self-assigned this Feb 28, 2019
@tebeka
Copy link
Contributor Author

tebeka commented Feb 28, 2019

Talking to the arrow team, they confirm Go is lacking arrow IPC support.

@tebeka
Copy link
Contributor Author

tebeka commented Feb 28, 2019

I've started a small project to test this approach, it is here

@tebeka
Copy link
Contributor Author

tebeka commented Mar 17, 2019

After trying for 1 more day and going over the Go arrow bindings, I've reached the conclusion that the current state of Go arrow does not provide us what we want and will require a lot of work to get there.

IMO the faster (devleopment wise) approach will be to use the C/C++ arrow from Go. It's much more mature and since Python uses the same code we can easilty share memory, probably using the plasma store

@tebeka
Copy link
Contributor Author

tebeka commented Mar 17, 2019

The other option is to use IPC which uses flatbuffers implementation. We can encode/decode to the arrow flatbuffers representation.

@tebeka
Copy link
Contributor Author

tebeka commented Mar 17, 2019

Started minimal implemtation of using C++ arrow from Go here

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

1 participant