Clustering is not just about sharing or copying configuration data you can set on your GUI. We also need to synchronize other data in real-time. One of the data we need to share is login session. If we don't synchronize it properly, you need to log in to each node separately in your cluster.
In the old days, we checked the login session map on the master node every time a slave node got a DNS request through a TCP connection. At the time, we expected that the maximum number of users for NxFilter would be around 3,000. However, as we got bigger sites, the system slowed down as TCP connection does blocking by its nature. So, we added some kind of cache and then changed it to use UDP sockets.
But now we are getting customers with more than 10,000 users, which is too large for the current UDP communication as we wait for the query result from the master node sometimes. To solve this, we have implemented asynchronous UDP communication. We hope this will eliminate any latency issues in sharing login sessions in the future.
In the old days, we checked the login session map on the master node every time a slave node got a DNS request through a TCP connection. At the time, we expected that the maximum number of users for NxFilter would be around 3,000. However, as we got bigger sites, the system slowed down as TCP connection does blocking by its nature. So, we added some kind of cache and then changed it to use UDP sockets.
But now we are getting customers with more than 10,000 users, which is too large for the current UDP communication as we wait for the query result from the master node sometimes. To solve this, we have implemented asynchronous UDP communication. We hope this will eliminate any latency issues in sharing login sessions in the future.
Comment