-
Notifications
You must be signed in to change notification settings - Fork 329
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
How do I run a cluster on Linux(centos) #285
Comments
I can't find any explanation or method. |
I am having the same problem. 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> |
@jkliss could you attach the log for the two instances? |
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):
|
@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. |
I'm also looking for a working example of a distributed GraphEngine with multiple servers. |
@edouardpoitras Hi. Here is an example of how to configure for Graph Engine Availability Group (Cluster): This is my xml configuration on my head server (Only)
|
For the other machines in the GE Cluster you only need to specify the local machine:
|
Hey @TaviTruman, thanks for the quick reply. I've tried your configs and am still scratching my head :) To simplify things, I have three servers in the cluster (127.0.0.1:700[0-2]). I've stripped out most of the config options but the endpoint values. I run the first "head" node with the cluster config:
Great! Then I run a 2nd instance with a config that only contains the server 127.0.0.1:7001:
And then the last node:
At this point, all three instances have reported:
Is that correct? No sure how to get the MemoryCloud extension working... Also, when running a client, I re-used the first cluster config and then in the code specified: Thanks again for you help! |
@edouardpoitras Hi. Looks like you've made great progress. If you don't mind please upload your trinity.xml configure file and your GE server and Client code. I'll get back you asap. Looks like you are trying to run the Distributed hash demo code, right. |
Hey @TaviTruman, thanks again for your time. I created a new repository to create a working minimal cluster example: https://github.com/edouardpoitras/TrinityResearch It's basically the DistributedHashtable sample with a few code tweaks in the Program.cs. Nothing changed in the DistributedHashtableServer.cs or DistributedHashtable.tsl. The README.md file has the manual steps I'm trying. I want to eventually get this working with docker-compose. I've tweaked a few things since we last talked. The closest I've gotten now is to use the same config but shuffle the server endpoint definitions around so the first one chosen is different for each config. Pretty sure I'm doing something wrong. Let me know what you think/spot. |
Hi, @edouardpoitras, I will take a look at this today and get back to you shortly. |
I will upload a diagram that depicts the GE Cluster along with the trinity configuration for each server; the GE Client configuration is quite simple and typically all that you need to specify |
Hi, @edouardpoitras. I have written a new and improved version of the "Distributed Hash Table" sample, and it works well in the GE Availability Group of three servers. It is late here so I will post it for you in the morning. I have written a new set of documentation as well describing the API sets. |
Hi, @edouardpoitras. I have written a new and improved version of the "Distributed Hash Table" sample, and it works well in the GE Availability Group of three servers. It is late here so I will post it for you in the morning. |
@TaviTruman excellent! Looking forward to it 👍 |
Here are the trinity.xml config files:
|
I will create PR and submit the new demonstration. In the meantime, I will upload the VS Studio project for you here. FYI, I do have a new Discord Channel coming up in October; the channel is dedicated to all things Graph Engine, Knowledge Graphs, Ontology Driven Software Design (ODSD) using Graph Engine, and much, much more. |
Here you go! |
Amazing @TaviTruman - giving it a shot now. Thanks again! Edit: Looking over the code and configs - this is exactly what I was looking for and is making a lot of sense to me now. Just need to work out how to get v4. |
Yikes - I forgot about that - sorry! I maintain my own public repo of the Graph Engine and have a lot of updates. Let me upload the new Nuget packages for you. FYI - the GraphEngine.Client was removed from this repo, but I have been using it for a few years now. |
Let me get you everything you need and then you can have a lot of fun :-) I have also updated the code so that it saves the Local Memory Cloud and then restores or reloads it. |
Here is the Windows Ready Deployment |
Here are the Nuget Packages from my 4.x local builds. I will update my public GE Git Repo later today and can use it. |
Oh, you are using Linux, right? |
Here is the link to my repo: https://github.com/InKnowWorks/IKW-GraphEngine There is a lot of new work here - most of it you may not need. |
Success! Thank you very much @TaviTruman, I was able to get it working on Linux as per your screenshots. I really like your project structure and will convert my repo to use that as well. I'm still going to try to get a minimal version working with Docker + compose in my TrinityResearch repo as I think that could be useful for others, but the real gold here is in your comments above 👍 Hopefully this thread will save headaches for others in the future. |
FYI - I am working out the wrinkles for Azure Kubernetes Deployment. I will post it in the Discussion as soon as it is bullet-proof. |
No description provided.
The text was updated successfully, but these errors were encountered: