172 похожих чатов

Называется rustbreak есть даже пример для апи на Rocket, правда 3х

летней давности. лол.
https://github.com/TheNeikos/rustbreak/blob/master/examples/server/src/main.rs
@iccsf что скажешь?

11 ответов

18 просмотров

Ну это как раз in-memory штука, которая делает как раз то, что я описывал. И проблемы у неё те же самые существуют, которые я описывал: там в save RwLock лочится на чтение, так что пока все данные не будут сериализованы, ты базу менять не можешь, только читать. А ещё там RwLock и мутекс из std, а не из parking_lot, так что писатели могут голодать на твоей базе, если неаккуратно будешь пользоваться.

Вадим-Пилот Автор вопроса
Эрик
screenshot Ну это как раз in-memory штука, которая делает как...

"проблема" тут значит, что вообще не будет работать, или будет но иногда медленно? меня второе в принципе устраивает

Вадим Пилот
"проблема" тут значит, что вообще не будет работат...

Запись зависать будет примерно как stop-the-world GC, каждый раз когда ты вызываешь save.

Вадим Пилот
что значит голодать

https://docs.rs/parking_lot/0.11.1/parking_lot/type.RwLock.html Читай тут.

Вадим-Пилот Автор вопроса
Эрик
https://docs.rs/parking_lot/0.11.1/parking_lot/typ...

а если у них апи одинаковое/почти одинаковое, но работа лучше, то почему бы просто не взять и не заменить в том крейте стандартный RwLock на этот?

Вадим-Пилот Автор вопроса
Эрик
screenshot Ну это как раз in-memory штука, которая делает как...

честно, не понимаю в чём проблема (глупенький) в том, что чтобы что-то сериализовать это надо сначала прочитать? (.read()) ну да, при этом блокируются запросы на .write() но их же меньше, подождут

Вадим-Пилот Автор вопроса
Эрик
Запись зависать будет примерно как stop-the-world ...

а с частичной загрузкой-выгрузкой время и ресурсы на сериализацию можно "размазать" по времени(?)

Вадим Пилот
а с частичной загрузкой-выгрузкой время и ресурсы ...

Нет, ты же все данные лочишь. Чтобы stop-the-world не случалось, надо использовать всякие специальные CoW структуры, а это уже относительно сложно.

Вадим Пилот
честно, не понимаю в чём проблема (глупенький) в т...

Ну, если твои юзеры могут подождать, то ладно. А ещё не забудь, что длительность лока линейно зависит от хранимого объёма. Какой-нибудь 1Mb у тебя мгновенно сериализуется, а вот гигабайты данных уже не очень мгновенно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта