Hi!
for hopen, we have timeout argument
h:hopen (`:remotehost:5001;1000); / 1000 msec timeout
show h “2+2”;
hclose h;
but for single-shot calls, this feature is missing:
`:remotehost:5001 “2+2”
if remote host is blocked for some reason, this will hung. Setting timeout with \T 1 does not help.
Any advises?
NB single-shot calls are the only way to do ipc in multithreaded input mode.
What’s the higher level problem you’re solving?
Multithreaded input mode has a limited number of intended use cases.
So, in 3.6 we now have quite big number of concurrent requests handled simultaneously.
It means that it’s now ok to spend some time querying remote server, for example fetch some rare values not present in current process RAM.
For example: query: return range of data (from day1 to day2) containing these columns (col1..col10). Columns 5 to 10 are of rare use and are located somewhere on remote servers.
Prior to 3.6 synchronous one-shot call was waste of resources, with 3.6 it is not.
Now I will put my server behind the load balancer and can make it handle up to 1K connections, monitoring its CPU load.
By the way, kdb is using select(), not epoll etc, why?
Regards,
Sanny