Перейти к содержанию

    

Отказоустойчивая ФС, направьте, пожалуйста, в нужном направлении

3 hours ago, jcxz said:

Скорость больше будет зависеть от объёма отданного под кеш места в ОЗУ МК.

В свое время тестировал  5-ть разных embedded FAT FS, все деградируют по скорости открытия в несколько  раз уже при 100 файлах.  Кэш не спасает. 

Кстати нашел у Segger-а данные по производительности записи на SPI NOR - 62.8 Kbyte/s  на ST STM32F103 72 MHz  с ST M25P64
У Micrium-а - 55 62.8 Kbyte/s на ST M25P64 72 MHz c ST M25P64
Включение опции журналирования уменьшает скорость записи еще в 3! раза. 
Похоже выбор для логов  SPI NOR - худшее что можно было придумать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, AlexandrY сказал:

В свое время тестировал  5-ть разных embedded FAT FS, все деградируют по скорости открытия в несколько  раз уже при 100 файлах.  Кэш не спасает. 

Кстати нашел у Segger-а данные по производительности записи на SPI NOR - 62.8 Kbyte/s  на ST STM32F103 72 MHz  с ST M25P64
У Micrium-а - 55 62.8 Kbyte/s на ST M25P64 72 MHz c ST M25P64

Если уж говорить именно о скорости открытия файлов, то здесь важна не скорость записи, а скорее скорость чтения. И если не спасает кеш, то может спасает его размер?  :wink:

И странно как-то слышать о деградации в разы, если полное кеширование чтения должно давать прирост скорости однозначно в разы. И поиск некоего имени файла просто в памяти или в памяти с предварительным чтением с SD - тоже разница в разы должна быть. Так как после первого открытия файла, скорей всего вся запись директории (в которой он находится), окажется в кеше и последующие открытия файлов (из той же директории), вообще не должны генерировать обращений к носителю, а только к памяти кеша.

10 часов назад, AlexandrY сказал:

Похоже выбор для логов  SPI NOR - худшее что можно было придумать. 

Как я уже говорил: выбор любой ФС для логов - худшее решение, которое можно придумать. Только кольцо секторов. И никаких проблем с неравномерным износом, скоростью и т.п. Вообще не понимаю смысла обсуждения какой-то ФС для хранения логов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 minutes ago, jcxz said:

Как я уже говорил: выбор любой ФС для логов - худшее решение, которое можно придумать. Только кольцо секторов. И никаких проблем с неравномерным износом, скоростью и т.п. Вообще не понимаю смысла обсуждения какой-то ФС для хранения логов.

Сейчас работы над тем прибором приостановлены, и мы неспешно просматриваем все предложенные варианты. Ваш алгоритм показал своему начальнику, он его заинтересовал. Возможно, остановимся на нём. По-крайней мере для меня это выгодно, ведь к вам я могу почти всегда обратиться))))))))))))))))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, jcxz сказал:

Как я уже говорил: выбор любой ФС для логов - худшее решение, которое можно придумать. Только кольцо секторов. И никаких проблем с неравномерным износом, скоростью и т.п. Вообще не понимаю смысла обсуждения какой-то ФС для хранения логов.

Поддерживаю.

FAT имеет смысл для хранения других файлов и удобства чтения тех же логов на компе. Для логов удобно создать заранее файл нужного размера, желательно непрерывным куском, и потом работать с ним самостоятельно уже как с кольцевым буфером.

Так получается что файловая система есть когда она нужна, а когда не нужна она не мешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, SSerge сказал:

Для логов удобно создать заранее файл нужного размера, желательно непрерывным куском, и потом работать с ним самостоятельно уже как с кольцевым буфером.

Если ФС нужна для чего-то ещё кроме, то да - можно сделать так. А можно просто отрезать под раздел с ФС только часть объёма SD-карты, а на остальном объёме хранить другие структуры хранения (кольца логов, журналов и т.п.).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, jcxz said:

Если уж говорить именно о скорости открытия файлов, то здесь важна не скорость записи, а скорее скорость чтения. И если не спасает кеш, то может спасает его размер?  :wink:

Как я уже говорил: выбор любой ФС для логов - худшее решение, которое можно придумать. Только кольцо секторов. И никаких проблем с неравномерным износом, скоростью и т.п. Вообще не понимаю смысла обсуждения какой-то ФС для хранения логов.

Эт вы рассказывайте Micrium-у, может они рассмотрят и одобрят ваш "алгоритм".  :biggrin:
Зачем вообще этот велосипед с циклическими буферами тут многократно пересказывать? 
В mbed штатно идут классы блочных дивайсов на любой вкус для тех кому реально не нужна файловая система.  

И кольцо не лучшая структура для быстрого поиска, куда быстрее работает дерево, а самые быстрые - это  FS на RAM-е
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, AlexandrY сказал:

И кольцо не лучшая структура для быстрого поиска, куда быстрее работает дерево. 

А зачем поиск в логе? Поиск там нужен один раз только - при старте (поиск начала кольца). Потом только запись. А кольцо хорошо равномерностью износа флеша и простотой реализации, а не какой-то скоростью непонятно чего.

Если хотите рассказать о какой-то лучшей альтернативе, то описывайте алгоритм. И в чём его преимущества. Пустопорожнее цитирование каких-то громких названий или ссылок куда-то я думаю тут никому неинтересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, jcxz said:

А зачем поиск в логе? Поиск там нужен один раз только - при старте (поиск начала кольца). Потом только запись. А кольцо хорошо равномерностью износа флеша и простотой реализации, а не какой-то скоростью непонятно чего.

Если хотите рассказать о какой-то лучшей альтернативе, то описывайте алгоритм. И в чём его преимущества. Пустопорожнее цитирование каких-то громких названий или ссылок куда-то я думаю тут никому неинтересно.

Кому не интересно проходит мимо, а раз вы все еще здесь, то...
Формат форума не позволяет здесь описывать алгоритмы с достаточной ясностью. Пора бы уже понять. Я ваши "алгоритмы" тут даже до конца не читаю. 
Алгоритмы как минимум должны содержать иллюстрации, а лучше быть в виде тестовых проектов. 
Можем перейти на площадку для статей и там померяться.
Т.е. здесь мы реально можем только ссылками обмениваться и мнениями. 


Потом вы какие-то очень примитивные приложения себе представляете.
Мои логи скажем от GPS трекера содержали тысячи KML файлов. Дивайс поддерживал FTP сервер с доступом ко всем логам. 
А еще SNMP сервер, и майлы, и SMS. На все тоже велись логи. Не считая прикладных логов от оборудования.
С некоторой точки скорострельность файловой системы становится узким местом.  А вы мне про какое-то кольцо.
Идите в mbed и найдете там десятки колец и деревьев если нужно, но это не отменяет необходимость в быстрых файловых системах.    
  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, AlexandrY сказал:

Потом вы какие-то очень примитивные приложения себе представляете.
Мои логи скажем от GPS трекера содержали тысячи KML файлов. Дивайс поддерживал FTP сервер с доступом ко всем логам.   

И опять громкие фразы "тысячи файлов" и куча других страшных слов... и никакой конкретики. И так всегда... Каждый тут может сам сделать вывод и оценить что чего стоит. :wink:

И какая разница: FTP-сервер или ещё какой-то сервер будет читать эти логи - какая связь между ним и способом хранения логов? И причём тут опять же какая-то примитивность или непримитивность приложений? Как это относится к способу хранения логов? И если уж говорить о скорострельности доступа, то без ФС будет однозначно быстрее чем с ней. По определению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, jcxz said:

И причём тут опять же какая-то примитивность или непримитивность приложений? Как это относится к способу хранения логов?

Напрямую. Если у вас мало задач, то вам и невдомек как они влияют друг на друга через файловую систему. Это постигается на опыте. 

Файловая система - это база данных. Т.е. хранение файлов предполагает  наличие у них имен, путей и прочих атрибутов вроде даты, типа и т.д.  
Если сделаете в своем кольце имена у файлов и пути и чтоб открывалось и закрывалось с десяток одновременно в разных задачах, то с удивлением увидите что получилось подобие littlefs.   

Не надо только разводить полемику по поводу логи это уже или не логи и зачем такие логи.  
И что это за понятие такое - способ хранения. Тут не способ, а целый набор технологий от избыточного кодирования, до красно-черных деревьев.
Конкретики на целую книгу можно набрать.  Если нету сил изучать, то я тут при чем?   
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, AlexandrY сказал:

Если сделаете в своем кольце имена у файлов и пути и чтоб открывалось и закрывалось с десяток одновременно в разных задачах, то с удивлением увидите что получилось подобие littlefs.   

Не надо только разводить полемику по поводу логи это уже или не логи и зачем такие логи.

процитирую известного деятеля: Если бы у бабушки был ххх, то она была бы дедушкой, а не бабушкой. Надеюсь поняли  :wink:

Ладно - Вы видимо живёте в каком-то своём мире, Ваше право....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 11/27/2018 at 4:56 PM, jcxz said:

процитирую известного деятеля: Если бы у бабушки был ххх, то она была бы дедушкой, а не бабушкой. Надеюсь поняли  :wink:

Ладно - Вы видимо живёте в каком-то своём мире, Ваше право....

Что, сами поставили SPI Flash и не осилили FS для нее? :biggrin:
Есть такие кому "не интересно", обломавшись на примитивных структурах данных (это ж трудоемко ) ищут серебряную пулю и чтоб все им разжевали.  

Рекомендую в следующий раз применять HyperFlash NOR и RAM
Этот интерфейс, кстати, поддерживает семейство i.MX RT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти