How to make each JanusGraph Server within its Kubernetes Cluster communicate with the co-located Cassandra Server in its Kubernetes Cluster? #3648
-
I opened yesterday a thread in As far as I understand from the JanusGraph docs: https://docs.janusgraph.org/operations/deployment/ , and from this Google Group Talk: https://groups.google.com/g/janusgraph-users/c/ZOoR1vRLfvo?pli=1 , The JanusGraph Servers are standalone independent servers that do not communicate with each other, and the coordination is achieved through the underlying storage backend, which, as Cassandra, can be put into a Kubernetes Cluster. But would it be convenient to set a Kubernetes Cluster for the JanusGraph standalone independent servers as well? How to do it, and how to make each single standalone independent JanusGraph Server within its Kubernetes Cluster communicate with the co-located Cassandra Server in its Kubernetes Cluster? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
I don't quite understand your question. You want to put JanusGraph Server, Cassandra, and Solr all in separate k8s clusters, but then you want JanusGraph Server to communicate only to one Cassandra node which is somehow co-located, and the same for one Solr node? In general, I don't think that you gain much performance benefit, if any, by trying to limit JanusGraph Server to only Cassandra/Solr instances running on the same host. You will need to involve at least a second Cassandra node anyway to reach a QUORUM consistency level if you are using at least a replication factor of 3. But maybe I also understood your question wrong so please clarify if my answer doesn't really answer your question. |
Beta Was this translation helpful? Give feedback.
-
Hi Florian, What I was thinking was running JanusGraph Server, Cassandra and Solr in separate k8s clusters, so... a JanusGraph Server Cluster including the JanusGraph Servers living in three different "physical" machines, a Cassandra Cluster, and a Solr Cluster . But actually you correctly made me think that a simpler, and, since I would use in those three machines Cassandra and Solr only for JanusGraph, more effective approach would be : A) let JanusGraph connect to any of the Cassandra & Solr nodes, and let it use its own load balancing In one of these three machines I've just installed :
Could you be so kind in pointing me to the specific docs parts of JanusGraph Docs and of k8ssandra Docs which explain how to correctly deploy point A) : let JanusGraph connect to any of the Cassandra & Solr nodes, and let it use its own load balancing |
Beta Was this translation helpful? Give feedback.
-
I take advantage of the fact you are an expert of janus-docker to ask you here one more thing ( for other issues, that likely will occur, I will open new threads) I've put in a file some environment variables : janusgraph-env.txt :
Running the janusgraph docker I don't get any errors:
But it is strange that there are no errors, since solr is not even installed, as stand-alone nor as kubernetes cluster :
Does the absence of any errors mean that the whole configuration does not actually work? |
Beta Was this translation helpful? Give feedback.
I don't quite understand your question. You want to put JanusGraph Server, Cassandra, and Solr all in separate k8s clusters, but then you want JanusGraph Server to communicate only to one Cassandra node which is somehow co-located, and the same for one Solr node?
How are these services co-located in your case? Are they running in separate k8s clusters, but still on the same servers?
In general, I don't think that you gain much performance benefit, if any, by trying to limit JanusGraph Server to only Cassandra/Solr instances running on the same host. You will need to involve at least a second Cassandra node anyway to reach a QUORUM consistency level if you are using at least a replication …