Как Cap'n Proto обрабатывает отправку данных порядка гигабайт? - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать клиент-серверное приложение на основе RPC Cap'n Proto в Rust.Глядя на пример кода калькулятора , RPC хочет запихнуть все в один круговой вызов.Это потрясающе, но как это будет вести себя, когда данные для отправки имеют порядок гигабайт?Будет ли библиотека пытаться сохранить все это в памяти или в какой-то момент она поймет, что это слишком много?

Примечание: у меня пока нет кода для показа, но мой идеальный псевдокод клиента будет:

job = new_job(...)                        // rpc call
for f in (millions...) {
    file = job.new_file(f)                // rpc call
    for data in f.chunks(thousands...) {
        file.process_chunk(data)          // rpc call
    }
}

Как бы я структурировал свой клиентский код?Нужно ли в какой-то момент вызывать сброс (и, судя по всему, читать фиктивные данные с сервера)?

Пока что сервер кажется простым, просто обрабатывает файлы и куски по мере их поступления, ноесли там есть какие-то ошибки, я тоже весь в ушах.

...