hi Eric,

On Fri, Sep 6, 2019 at 5:09 PM Eric Erhardt
<eric.erha...@microsoft.com.invalid> wrote:
>
> I was looking for the high level scenarios for the Plasma In-Memory Object 
> Store. A colleague of mine suggested we could use it to pass data between a 
> C# process and a Python process.
>
> I've read the intro blog [0] on Plasma, which describes using the same data 
> set from multiple processes - which sounds like the same scenario as above.
>
> I am trying to prioritize creating C# bindings for the Plasma client. So I'd 
> like to know all the scenarios that would could be enabled with Plasma.
>
> For example:
> - could using Plasma speed up Pandas UDFs in PySpark? Because the data 
> wouldn't have to go across the socket between Java and Python, but instead 
> would be memory-mapped. We have similar functionality in .NET for Apache 
> Spark.

Memory still would need to be copied into the memory-mappable file, so
it's unclear whether this would be faster than passing the data
through a socket as it's being done now.

> - Is Plasma being used by Nvidia RAPIDS?

AFAIK it is not. It doesn't seem out of the question, though, given
that we have some level of CUDA support in Plasma now.

>
> I know Plasma today is not supported on Windows, but I think support could be 
> added since Windows supports memory mapped files (through a different API 
> than mmap) and it now supports Unix Domain Sockets [1].
>
> Also - side question about the c_glib bindings. I assume those will only ever 
> work on Windows with something like Cygwin or MSYS2, right? Would people be 
> opposed to adding pure "C" exports to the plasma library so the C# bindings 
> could use it? (similar to the JNI support today).
>

In theory you could use the GLib-based library with MSVC, the main
requirement is gobject-introspection

https://github.com/GNOME/gobject-introspection/blob/master/MSVC.README.rst

Note that GLib itself is LGPL-licensed -- since it is an optional
component in Apache Arrow, it is OK for optional components to have an
LGPL dependency (though ASF projects aren't allowed to have
mandatory/hard dependencies on LGPL). So if you do go that route just
beware the possible issues you might have down the road.

I have no objection to adding a "plasma/plasma-c.h" with C exports.

> Eric
>
> [0] 
> https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html
> [1] https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/

Reply via email to