2016-01-28 3 views
1

Может ли кто-нибудь объяснить, что подразумевается под смывом на диск в следующем контексте? Если я пишу данные в журнал в файловой системе, разве это не означает, что я помещаю его на диск? В какой момент/вы должны будете выгрузить файл на диск?Что значит «сбрасывать на диск»?

Это предлагает дизайн, который очень прост: вместо того, чтобы поддерживать как можно больше встроенной памяти и полностью очищать файловую систему от паники, когда мы заканчиваем пространство, мы инвертируем это. Все данные сразу же записываются в постоянный журнал файловой системы, не обязательно очищаясь на диске. По сути, это означает, что он передается в pagecache ядра.

(from https://kafka.apache.org/documentation.html#design).

+0

thats то, что я называю kafkaesque объяснение –

ответ

2

Все данные немедленно записываются в постоянный журнал файловой системы без необходимости очистки на диске. По сути, это означает, что он передается в pagecache ядра.

Что это означает, что Кафка руки данные прочь ядро ​​с write() - системными вызовами в какой момент времени это видимым для других процессов, но может или не может фактически быть отражено на диск и выжить перезагрузки - но не заставляет ядро ​​бросать его на диск с помощью вызовов fsync() или аналогичных (что подходит для ОС под рукой). Если оптимизация для пропускной способности и не требуется гарантировать, что контент может быть восстановлен, это может быть подходящее решение: fsync() и его родственники могут быть дорогостоящими вызовами (хотя, выполняя длинные непрерывные записи, которые не требуют поиска, kafka минимизирует расходы на его диск IO).