Boost logo

Boost :

From: Ruben Perez (rubenperez038_at_[hidden])
Date: 2023-01-21 15:57:08


Final set of questions, I hope.

1. If you write something like

aedis::request req;
std::tuple<std::optional<std::string>> res;
req.push("LPOP", "something_not_a_list"); // will cause an error
co_await conn.async_exec(req, adapt(res));

You seem to get an error code reported. The server does send an error
response with diagnostics, but I haven't found a way to access that message.
Is there any way?

2. I've modified cpp20_subscriber to add another task that sends commands
    with async_exec while reading subscription replies. If any of the commands
    issued with async_exec contain any errors (like the LPOP above), the program
    crashes with a "conn->cmds_ != 0" assertion.

3. I've seen other Redis (async) libraries implementing connection pools.
    Unless I'm mistaken, it seems likely that some of the user base will
    eventually require this feature. I see some overlap between the queuing
    system you have in place in connection and the responsibilities of
the connection
    pool (I'd usually implement this kind of queueing at the
connection pool level).
    What's your view of this?
    a. Is connection pooling planned in the future for Aedis? Or is it
considered the
        responsibility of a higher-level component?
    b. In the latter case, would that component have to make use of
the low-level
        API?

Regards,
Ruben.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk