services/syncbase: Export the NeighborConnectionTimeout

So that it can be used as an option to the RPC Server that is created to
host the syncbase service.

Without this change, the following could happen:

- Syncbase A and syncbase B discover each other
- Because both have internet connectivity, they have
  a connection to the proxy and an endpoint through it
- A and B invoke methods on each other through their
  proxied endpoints
- B loses internet connectivity (and correctly connects
  to A through some other means such as bluetooth)
- However, when A wants to invoke a method on B,
  it ends up trying to re-use the (defunct) proxied
  endpoint in its cache instead of the bluetooth
  connection.
As a result, changes in B would be propagated to A,
but not the reverse.

With this channel timeout being provided to the server,
A will determine (within 5 seconds) that the proxied
connection is defunct and it should try some other
endpoint instead.

RPC requests to multiple endpoints cannot be sent in
parallel in order to maintain "at most once" semantics
of an RPC invocation. It is possible that this is not
needed for the syncbase/GetDeltas use-case, but that
larger investigation is left as an excercise for the future.

MultiPart: 2/2
Change-Id: I9325162244cf86556ad2675811dce1b670dfbb48
4 files changed
tree: 7ae41c9d8b9cb72b5d4c5956e4fe9e45eaf9f3b3
  1. cmd/
  2. examples/
  3. internal/
  4. lib/
  5. runtime/
  6. services/
  7. test/
  8. .gitignore
  9. AUTHORS
  10. CONTRIBUTING.md
  11. CONTRIBUTORS
  12. envvar.go
  13. envvar_test.go
  14. LICENSE
  15. PATENTS
  16. README.md
  17. VERSION
README.md

Vanadium

This repository contains a reference implementation of the Vanadium APIs.

Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.