Home > Blockchain >  Ignite cluster runs within Kubernetes, but applications are outside of it
Ignite cluster runs within Kubernetes, but applications are outside of it

Time:05-11

Is there a way to connect C# Thick Client running in the Windows Machine outside of the Kubernetes with Apache Ignite Cluster nodes are present in the Kubernetes.

Below specified article says it is not possible but this article was written in 2020. We are looking for Scenario-3 from below article https://dzone.com/articles/apache-ignite-on-kubernetes-things-to-know-about I hope there might some enhancements for Scenario-3.

We dont want convert our C# Thick client to Thin Client as we are using Data Streamer to insert data in bulk and same functionality is not available with Thin Client.

CodePudding user response:

The recommendation here would be to use the thin-client. The .net thin-client does have the data streamer API.

There is no straight-forward way to connect a thick-client node from outside Kubernetes to a cluster inside it.

CodePudding user response:

To address important points from the comments section:

we are looking for Bulk data update using DataStreamer thin client supports Data Streamer with only 1 Key value pair can be updated at a time that is performance issue

IDataStreamerClient.Add adds data to an internal buffer, it does not send entries one by one over the network. There is no performance issue with calling Add in a loop. Thin and thick data streamers demonstrate similar performance.

See the API docs for more details.

We do not find the AllowOverwrite, AutoFlushFrequency parameters in IDataStreamerClient comparing to IDataStreamer

See DataStreamerClientOptions

var options = new DataStreamerClientOptions
{
    SkipStore = true,
    AllowOverwrite = true,
    AutoFlushInterval = TimeSpan.FromSeconds(5),
    PerNodeBufferSize = 1024,
    PerNodeParallelOperations = Environment.ProcessorCount 
};

using (var streamer = Client.GetDataStreamer<int, int>(cacheName, options))
{
    foreach (var x in Enumerable.Range(1, 300))
    {
        streamer.Add(x, -x);
    }
}
  • Related