Мобильная платформа Android начинает использование файловой системы Ext4

Телефоны, основанные на новом выпуске платформы Android (включая выходящий на следующей неделе телефон Nexus S), будут использовать для хранения данных на внутреннем Flash-накопителе файловую систему Ext4, вместо ранее используемой YAFFS. Основная причина миграции в том, что Ext4 демонстрирует заметно более высокую производительность. Несмотря на то, что YAFFS специально создана для Flash-накопителей, данная ФС имеет однопоточную архитектуру, что не позволяет ей полностью использовать потенциал современных многоядерных CPU.

В блоге разработчиков платформы Android опубликовано предупреждение с рекомендацией использования системного вызова fsync() или sync_file_range() для принудительного сброса данных на диск, так как файловая система Ext4 более активно использует отложенную запись, что может вылиться в потерю недавних изменений в случае краха. Приложения для хранения данных использующие SharedPreferences или SQLite не подвержены этой проблеме, так как в данных системах имеется свой механизм контроля сброса данных на диск. В ответ на данное сообщение Theodore Ts'o, создатель файловой системы Ext4, указал на то, что крах телефонов достаточно редкое явление (сам он ни разу не сталкивался с крахом ОС Android), так как платформа сама по себе тестируется более тщательно. Кроме краха к потере данных может привести вытаскивание аккумулятора из работающего телефона, в этой ситуации fsync() действительно может помочь.

Полный текст статьи читайте на OpenNet