microsoft/GraphEngine

How do I run a cluster on Linux(centos)

wuyanxing opened this issue · 35 comments

How do I run a cluster on Linux(centos)

I can't find any explanation or method.

I am having the same problem.
As I understood from the documentation it should be sufficient to add servers to the config file.
GE then at least sends messages between these servers but it does not run the script. The script was running successfully in embedded mode. I also used Global.CloudStorage.SaveXYZ to access memory. What can I do to set it up correctly?

This is the config I was trying to use:

<Trinity ConfigVersion="2.0">
  <Local>
    <!-- Add any configuration the client might need -->
  </Local>

    <section name="Application">
     <entry name="ConfigOutputOn">true</entry>
     <entry name="CurrentRunningMode">Distributed</entry>
    </section>

    <section name="Network">
     <entry name="ClientBufferSize">1048576</entry>
     <entry name="ClientMaxBufferSize">134217728</entry>
     <entry name="ServerSocketBufferSize">8192</entry>
     <entry name="ClientSocketBufferSize">8192</entry>
     <entry name="ServerMaxConn">512</entry>
     <entry name="ServerMaxAcceptOps">512</entry>
     <entry name="PreferedNetworkMask"/>
    </section>

    <Cluster>
        <Server Endpoint="<IPADRESS_SERVER1>:8133" />
        <Server Endpoint="<IPADRESS_SERVER2>:8133" />
    </Cluster>
</Trinity>
yatli commented

@jkliss could you attach the log for the two instances?

[ INFO    ] EchoOnConsole set to ON
[ INFO    ] Log: changing logging directory to /home/jkliss/BFS/BFSClient/bin/Debug/netcoreapp2.2/trinity-log.
[ INFO    ] Loading Graph Engine Extensions.
[ INFO    ] Scanning for TSL storage extension.
[ INFO    ] TSL storage extension loaded.
[ INFO    ] Scanning for MemoryCloud extensions.
[ INFO    ] No MemoryCloud extension found.
[ INFO    ] Scanning for startup tasks.
[ INFO    ] EventLoop: Starting.
[ INFO    ] *****************************************************
[ INFO    ] ServerCount: 2
[ INFO    ]     IPADRESS_SERVER1:8133
[ INFO    ]     IPADRESS_SERVER2:8133
[ INFO    ] ProxyCount: 0
[ INFO    ] *****************************************************

if I replace IPADRESS_SERVER1 with localhost I get the following additional lines (and it starts sending network packets but the script doesn't go on further):

[ INFO    ] LocalMemoryStorage is initialized in read-write mode
[ INFO    ] Initializing logging facility
[ INFO    ] Reading log file.
[ INFO    ] Write-ahead-log successfully loaded. Recovered 0 records.
[ INFO    ] Creating write-ahead log file /home/jkliss/BFS/BFSClient/bin/Debug/netcoreapp2.2/storage/B/write_ahead_log/primary_storage_log_20.dat

@yatli is there anything that I need to incorporate in the code to enable communication between servers or is there a function to make a server wait for another server to make them synchronize?

If you have an example on how to setup and run a distributed system on linux it would be very helpful for me and probably for others too

I'm having the same problem as @jkliss . Documentation on how to setup GraphEngine in a distributed way would be very useful.