Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rpc_addr | http_addr c++ #350

Open
emaxerrno opened this issue Apr 1, 2019 · 6 comments
Open

rpc_addr | http_addr c++ #350

emaxerrno opened this issue Apr 1, 2019 · 6 comments

Comments

@emaxerrno
Copy link
Collaborator

the rpc_server should have 2 seastar::ipv4_addr structs, one for http and one for rpc.

There should be no implicit addr 's in codebase. i.e.: :::0

@emaxerrno
Copy link
Collaborator Author

ugh. this would be a breaking change :'(

@dotnwat
Copy link
Contributor

dotnwat commented Apr 17, 2019

replace http_port and rpc_port in server_args with ipv4_addrs?

@emaxerrno
Copy link
Collaborator Author

yeah something like this

namespace smf {
enum class rpc_server_bitflags : uint32_t { disable_http_server = 1 };

struct rpc_server_args {

  seastar::ipv4_addr http;
  seastar::ipv4_addr rpc;

  /// \brief see enum rpc_server_flags
  uint32_t bitflags = 0;

  /// \ brief The default timeout PER connection body. After we parse the
  /// header of the connection we need to make sure that we at some point
  /// receive some bytes or expire the connection.
  ///
  typename seastar::timer<>::duration recv_timeout = std::chrono::minutes(1);
  /// \brief 4GB usually. After this limit, each connection to this
  /// server-core will block until there are enough bytes free in memory to
  /// continue
  ///
  uint64_t memory_avail_per_core = uint64_t(1) << 31 /*2GB per core*/;

  // i.e.: /proc/sys/net/ipv4/tcp_keepalive_time
  int32_t keepalive_idle_secs = 5;
  // i.e: /proc/sys/net/ipv4/tcp_keepalive_intvl
  int32_t keepalive_interval_secs = 75;
  // i.e: /proc/sys/net/ipv4/tcp_keepalive_probes
  int32_t keepalive_prob_count = 9;
  bool nodelay = true;
  bool enable_keepalive = true;
};

@emaxerrno
Copy link
Collaborator Author

this will also solve the problem that @nacl was suggesting w/ idl secs & keep alive.

just about threading those through and through.

@emaxerrno
Copy link
Collaborator Author

#118 - i think was this.

@emaxerrno
Copy link
Collaborator Author

err this: #335

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants