Android на файловой системе Ext4
Телефоны, основанные на новом выпуске платформы Android (включая выходящий на следующей неделе телефон Nexus S), будут использовать для хранения данных на внутреннем Flash-накопителе файловую систему Ext4, вместо ранее используемой YAFFS.
🕛 13.12.2010, 12:19
Основная причина миграции в том, что Ext4 демонстрирует заметно более высокую производительность. Несмотря на то, что YAFFS специально создана для Flash-накопителей, данная ФС имеет однопоточную архитектуру, что не позволяет ей полностью использовать потенциал современных многоядерных CPU.В блоге разработчиков платформы Android опубликовано предупреждение с рекомендацией использования системного вызова fsync() или sync_file_range() для принудительного сброса данных на диск, так как файловая система Ext4 более активно использует отложенную запись, что может вылиться в потерю недавних изменений в случае краха. Приложения для хранения данных использующие SharedPreferences или SQLite не подвержены этой проблеме, так как в данных системах имеется свой механизм контроля сброса данных на диск. В ответ на данное сообщение Theodore Ts'o, создатель файловой системы Ext4, указал на то, что крах телефонов достаточно редкое явление (сам он ни разу не сталкивался с крахом ОС Android), так как платформа сама по себе тестируется более тщательно. Кроме краха к потере данных может привести вытаскивание аккумулятора из работающего телефона, в этой ситуации fsync() действительно может помочь.