A remotely read pull remains in the local cache for a duration of expireTimeout.
Pushes are applied locally while the parameter is cached.
The per partition single queue-and-thread, combined with the server, provides a guarantee that all previous local pushes are applied to a pull, if it is locally cached.
On local tests, the performance is comparable to ConcurrentParameterWorker.
There is a bug and workaround in this code:
We are observing some lost messages when contexts are immediately closed after the task completes in the example. It appears messages buffered in NCS are not being flushed before context close, but this has to be investigated further. The current workaround in the example is to not close contexts immediately, but this must be resolved before we move to elastically removing contexts.
(This should not be a Worker problem. The ContextStopHandler waits for messages to be flushed from the Worker queue.)
Closes #154.
This creates a Partitioned PS Worker.
On local tests, the performance is comparable to ConcurrentParameterWorker.
There is a bug and workaround in this code:
We are observing some lost messages when contexts are immediately closed after the task completes in the example. It appears messages buffered in NCS are not being flushed before context close, but this has to be investigated further. The current workaround in the example is to not close contexts immediately, but this must be resolved before we move to elastically removing contexts.
(This should not be a Worker problem. The
ContextStopHandler
waits for messages to be flushed from the Worker queue.)