mirror of https://github.com/yandex/odyssey.git
odissey: do discard optimistically and only for new clients
This commit is contained in:
parent
9dff1d7a5a
commit
5b3935e95f
|
@ -484,19 +484,20 @@ int od_backend_reset(od_server_t *server)
|
|||
}
|
||||
}
|
||||
|
||||
/* send reset query */
|
||||
if (route->scheme->discard) {
|
||||
char query_reset[] = "DISCARD ALL";
|
||||
rc = od_backend_query(server, "reset", query_reset,
|
||||
sizeof(query_reset));
|
||||
if (rc == -1)
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* ready to use */
|
||||
/* ready to use (yet maybe discard is required) */
|
||||
return 1;
|
||||
drop:
|
||||
return 0;
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
int od_backend_discard(od_server_t *server)
|
||||
{
|
||||
od_instance_t *instance = server->system->instance;
|
||||
char query_discard[] = "DISCARD ALL";
|
||||
od_debug_server(&instance->log, server->id, "discard",
|
||||
"%s", query_discard);
|
||||
return od_backend_query(server, "reset", query_discard,
|
||||
sizeof(query_discard));
|
||||
}
|
||||
|
|
|
@ -15,5 +15,6 @@ int od_backend_terminate(od_server_t*);
|
|||
int od_backend_reset(od_server_t*);
|
||||
int od_backend_ready(od_server_t*, uint8_t*, int);
|
||||
int od_backend_configure(od_server_t*, so_bestartup_t*);
|
||||
int od_backend_discard(od_server_t*);
|
||||
|
||||
#endif /* OD_BACKEND_H */
|
||||
|
|
|
@ -298,6 +298,17 @@ od_frontend_main(od_client_t *client)
|
|||
"previously owned, no need to reconfigure S%" PRIu64,
|
||||
server->id);
|
||||
} else {
|
||||
/* discard last server configuration, unless
|
||||
* server has been just connected. */
|
||||
od_route_t *route = client->route;
|
||||
if (route->scheme->discard) {
|
||||
if (server->last_client_id != UINT64_MAX) {
|
||||
rc = od_backend_discard(client->server);
|
||||
if (rc == -1)
|
||||
return OD_RS_ESERVER_CONFIGURE;
|
||||
}
|
||||
}
|
||||
/* set client parameters */
|
||||
rc = od_backend_configure(client->server, &client->startup);
|
||||
if (rc == -1)
|
||||
return OD_RS_ESERVER_CONFIGURE;
|
||||
|
|
Loading…
Reference in New Issue