Forum: Building APIs & Wire Protocol

Post: Timeouts

Feb 14, 2013

My scenario:
I'm having a client using the Wire protocol to call a stored procedure in VoltDB.

My conflicting requirements:
* I cannot wait indefinitely for VoltDB to respond (a few seconds, tops)
* I cannot have the procedure being called twice (as in a retry scenario)

My understanding is that if I add a timeout on the tcp layer, and it expires, there is no way to know whether the procedure was actually called or not. Is this correct?

How do you suggest I solve this?

Thank you
Feb 14, 2013

This is usually solved by structuring your application and procedures so that the procedures are idempotent and can be retried.

The right way to do that is application specific, and we should drill down on why you can't call the procedure multiple times.

Feb 14, 2013
Thank you!