As far as I can tell, the only potential overhead in Ignite .NET support vs. Java is the JNI layer. However, we have been testing it internally, and in distributed tests (2+ nodes) we have not seen any performance degradation due to JNI. The reason is that JNI overhead becomes largely negligible compared to the network I/O.
D. On Mon, Oct 26, 2015 at 4:26 AM, Vladimir Ozerov <[email protected]> wrote: > James, > > Yes, you described Ignite.NET architecture correctly. It provides native > .NET API and marshalling layer. All infrastructure-related work is > performed by C++/Java code. > > Vladimir. > > On Mon, Oct 26, 2015 at 12:52 PM, jamesgibbs100 <[email protected] > > wrote: > >> Vladimir, >> >> Thank you for taking the time to get back to me. >> >> Referring to : >> >> http://apache-ignite-developers.2346864.n4.nabble.com/C-and-NET-td2403.html >> >> /"These are not basic client APIs, but rather is a full-blown in-memory >> data >> fabric for .NET and C++ users. The goal is that users of these languages >> will not have to write any Java code at all in order to use any Apache >> Ignite features"/ >> >> From the above, I was expecting .NET to have a 100% native implementation, >> however, reviewing the codebase led me to understand .NET was delegating >> through JNI to a JVM for core functionality. >> >> In a trivial case, a single node launched in embedded mode, I was >> surprised >> to see the code attempted to create a JVM when I had no intention of using >> one - this was my lack of understanding of the architecture. >> >> So, my question whilst motivated by performance, is more concerned with >> confirming the above description of how the .NET client is implemented. >> >> Is the above assumption/approximation correct ? >> >> Thanks again >> James >> >> >> >> >> Vladimir Ozerov wrote >> > James, >> > >> > My last statement is a bit confusing. What I wanted to say is that >> > normally >> > both Java and .Net spend comparable time on serialization. >> > >> > On Mon, Oct 26, 2015 at 10:38 AM, Vladimir Ozerov < >> >> > vozerov@ >> >> > > >> > wrote: >> > >> >> James, >> >> >> >> Ignite is distributed application and both Java and .Net require >> >> marshalling to pass data between nodes. Therefore, in the vast majority >> >> of >> >> scenarios .Net has marshalling overhead comparable to Java version. >> >> >> >> Vladimir. >> >> >> >> On Sun, Oct 25, 2015 at 8:46 PM, James Gibbs < >> >> > jamesgibbs100@ >> >> > > >> >> wrote: >> >> >> >>> Hi there >> >>> >> >>> I'm looking to understand more about the .NET implementation for >> Ignite. >> >>> >> >>> The .NET code appears to require a JVM and C++ code to talk through >> JNI, >> >>> so I am guessing that the main work load is still performed by Java >> code >> >>> and hence .NET code suffers from marshalling overheads etc. >> >>> >> >>> Is this the case ? >> >>> >> >>> Thanks in advance >> >>> James >> >>> >> >> >> >> >> >> >> >> >> >> -- >> View this message in context: >> http://apache-ignite-users.70518.x6.nabble.com/Native-NET-tp1689p1699.html >> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >> > >
