# Removed shmem from communication
diff --git a/modules/core/src/main/java/org/apache/ignite/igfs/IgfsIpcEndpointConfiguration.java b/modules/core/src/main/java/org/apache/ignite/igfs/IgfsIpcEndpointConfiguration.java
index 0b0e9cc..7315007 100644
--- a/modules/core/src/main/java/org/apache/ignite/igfs/IgfsIpcEndpointConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/igfs/IgfsIpcEndpointConfiguration.java
@@ -27,7 +27,7 @@
*/
public class IgfsIpcEndpointConfiguration {
/** Default endpoint type is TCP. */
- public static IgfsIpcEndpointType DFLT_TYPE = TCP;
+ public static IgfsIpcEndpointType DFLT_TYPE = U.hasSharedMemory() ? SHMEM : TCP;
/** Default host. */
public static String DFLT_HOST = "127.0.0.1";
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 0719964..7804c9d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -33,6 +33,7 @@
import org.apache.ignite.internal.processors.streamer.*;
import org.apache.ignite.internal.transactions.*;
import org.apache.ignite.internal.util.io.*;
+import org.apache.ignite.internal.util.ipc.shmem.*;
import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -305,6 +306,9 @@
private static final ConcurrentMap<ClassLoader, ConcurrentMap<String, Class>> classCache =
new ConcurrentHashMap8<>();
+ /** */
+ private static volatile Boolean hasShmem;
+
/**
* Initializes enterprise check.
*/
@@ -9036,4 +9040,26 @@
if (!cond)
throw new IgniteException("Parameter failed condition check: " + condDesc);
}
+
+ /**
+ * @return Whether shared memory libraries exist.
+ */
+ public static boolean hasSharedMemory() {
+ if (hasShmem == null) {
+ if (isWindows())
+ hasShmem = false;
+ else {
+ try {
+ IpcSharedMemoryNativeLoader.load();
+
+ hasShmem = true;
+ }
+ catch (IgniteCheckedException e) {
+ hasShmem = false;
+ }
+ }
+ }
+
+ return hasShmem;
+ }
}