Size: a a a

2021 March 18

С

Слава in rust_offtopic
Constantine Drozdov
Тот, который занимает всю свободную оперативу и в который драйвер пишет
источник

CD

Constantine Drozdov in rust_offtopic
ну ты еще хуже сделал
источник

С

Слава in rust_offtopic
Constantine Drozdov
Тот, который занимает всю свободную оперативу и в который драйвер пишет
https://www.scylladb.com/2016/02/09/qualifying-filesystems/
И вдогонку:

"Seems simple, right? But there’s a catch. Linux AIO support is fairly limited: you cannot use buffered I/O; instead you must instruct the disk to perform direct memory access (DMA) (this happens to be just fine for Scylla, which prefers to do its own caching anyway). In addition, you must use a filesystem that has good support for AIO. Today, and for the foreseeable future, this means XFS."
источник

CD

Constantine Drozdov in rust_offtopic
представь, что на момент CreateFileA у системы в оперативке уже лежит этот файл, полностью прочитанный - как она его тебе отдаст?
источник

С

Слава in rust_offtopic
Constantine Drozdov
ну ты еще хуже сделал
Я чую здесь запах линуксовых приколов. Но не везде именно линукс
источник

С

Слава in rust_offtopic
Constantine Drozdov
представь, что на момент CreateFileA у системы в оперативке уже лежит этот файл, полностью прочитанный - как она его тебе отдаст?
Щито поделать, десу.
источник

С

Слава in rust_offtopic
Если тебе не нужен буфер/кэш файловой системы, то значит, не пользуйся им, но поддерживай его сам.
источник

CD

Constantine Drozdov in rust_offtopic
Слава
Щито поделать, десу.
Ну ты можешь достать свои реализации и сопоставить с реализациями чтений через mmap на горячем буфере, полиномиальные хеши mod 2^64 там считай файла.
источник

CD

Constantine Drozdov in rust_offtopic
Слава
Если тебе не нужен буфер/кэш файловой системы, то значит, не пользуйся им, но поддерживай его сам.
Мне нужен mmap, который не будет блокироваться
источник

С

Слава in rust_offtopic
Constantine Drozdov
Мне нужен mmap, который не будет блокироваться
Для этого нужно иметь некую возможность сказать системе "подготовь такую-то область для mmap" и затем ждать ответа. Так?
источник

С

Слава in rust_offtopic
Потому что иначе mmap - это просто работа скажем с массивом, на который у тебя есть указатель
источник

CD

Constantine Drozdov in rust_offtopic
Слава
Для этого нужно иметь некую возможность сказать системе "подготовь такую-то область для mmap" и затем ждать ответа. Так?
Да, примерно
источник

С

Слава in rust_offtopic
Но чтение из какого-то участка массива может занять неожиданно долгое время, непредсказуемо долгое
источник

С

Слава in rust_offtopic
А то и вовсе быть неудачным, если файл в этом месте повреждён.
источник

CD

Constantine Drozdov in rust_offtopic
Emmanuel Goldstein
Идея для крейта: если у нас есть хеш-таблица, которая создаётся в компайл-тайме (например, маппинг из названия эмодзи в char), то мы можем статически проверить отсутствие коллизий в хеше, подкрутить сид, если коллизии появляются, и в рантайме в памяти не хранить сами ключи вообще, а только хеши.
gperf придумал?
источник

EG

Emmanuel Goldstein in rust_offtopic
Constantine Drozdov
gperf придумал?
Типа, только завернуть в процмакрос.
источник

CD

Constantine Drozdov in rust_offtopic
Emmanuel Goldstein
Типа, только завернуть в процмакрос.
не очень понятно, зачем дрочить компилятор, если можно это сделать отдельным генератором
источник

EG

Emmanuel Goldstein in rust_offtopic
Constantine Drozdov
не очень понятно, зачем дрочить компилятор, если можно это сделать отдельным генератором
Чтобы было эргономично использовать.
источник

EG

Emmanuel Goldstein in rust_offtopic
Хотя на тех масштабах, на которых это имеет смысл, мб уже всё равно это в отдельный файл выносить.
источник

EG

Emmanuel Goldstein in rust_offtopic
Энивей, gperf не генерирует Rust.
источник