Pamięć flash USB do długotrwałego użytkowania (1 rok)

0

Chciałbym przechowywać dane wyjściowe z mojej aplikacji. Chciałbym zapisać dane na dysku flash USB.

Moja aplikacja będzie generować dane o wielkości około 100 bajtów co 10 sekund. Dane te zostaną zapisane w plikach. Pliki będą rozdzielane codziennie.

Moje pytanie dotyczy tego, na co powinienem zwrócić uwagę, aby używać dysku flash USB jako pamięci. Planuję używać magazynu przez około rok.

Niepokoi mnie czasami odmontowanie dysku flash USB przez system operacyjny Windows7. Co powinienem podjąć, aby zapobiec odmontowaniu i innym powiązanym problemom w przypadku długotrwałego użytkowania?

sevenOfNine
źródło
Jeśli system Windows 7 jest uruchomiony, a program utrzymuje otwarty plik na dysku flash, system Windows nie odmontuje dysku flash (nigdy nie widział komunikatu „Nie można odmontować dysku, jest zajęty” podczas próby odmontowania dysku ręcznie? ).
Werner Henze
Dziękuję za Twój komentarz. Jednak pozostawienie pliku otwartego przez dłuższy czas wydaje się niebezpieczne. Mój pierwotny plan zakładał otwieranie / zapisywanie / zamykanie pliku co 10 sekund. Jednak, zgodnie z odpowiedzią Roba, lepiej przemyśleć częstotliwość zapisywania plików.
sevenOfNine

Odpowiedzi:

1

Nigdy nie widziałem, aby system Windows 7 odmontował dysk flash, chyba że zamknę system Windows lub odłączę dysk flash. Być może myślisz o funkcji oszczędzania energii wbudowanej w dyski twarde oparte na wrzecionie, która obraca je i usypia po okresie bezczynności.

Długowieczność twoich mediów (w cyklach odczytu / zapisu) nie będzie problemem, jeśli piszesz 100B co 10s przez jeden rok, ale możesz przemyśleć swój schemat przechowywania z kilku powodów wydajnościowych, które omówię w więcej szczegółów poniżej.

Rozmiar bloku systemu plików dyktuje najmniejszy przydzielony rozmiar pliku i prawie na pewno będzie większy niż 100B. Na przykład, jeśli rozmiar bloku to 4KB, wówczas miejsce zostanie przydzielone w porcjach 4KB. Plik 100B zajmie miejsce 4KB, a plikowi 4097 KB (4KB + 1B) zostanie przydzielony 8 KB (2 bloki). To powiedziawszy, większość dysków flash powinna nadal mieć dużą pojemność na 1 rok danych w oczekiwanym tempie.

Jeśli generujesz dziesiątki lub setki (lub w twoim przypadku 8640) plików o podobnych nazwach w jednym katalogu, upewnij się, że obsługa nazw plików 8.3 jest wyłączona w rejestrze (lub upewnij się, że twoje nazwy plików mają nie więcej niż 8 znaków, a rozszerzenia nie są dłuższe niż 3 znaki). Jeśli masz kilka plików, które zaczynają się od słowa nazwa_pliku i kończą na przykład .txt , otrzymasz następujące 8.3 nazwy plików:

FILENA~1.TXT
FILENA~2.TXT
FILENA~3.TXT
...
FILEN~10.TXT
FILEN~11.TXT
...
FILE~100.TXT

...i tak dalej.

Koszt obliczenia tych nazw plików rośnie wykładniczo wraz z liczbą plików, a nawet uzyskanie listy katalogów jest znacznie spowolnione.

Ostatnim czynnikiem jest koszt losowej operacji odczytu / zapisu w pamięci flash. Jeśli kiedykolwiek skopiowałeś wiele małych plików na lub z dysku flash, wiesz, że wiele dysków flash USB ma straszną wydajność losowego odczytu / zapisu. Kopiowanie tysięcy małych plików z dysku flash po 1 roku może zająć wiele rzędów wielkości dłużej niż kopiowanie dziesiątek lub setek plików, nawet jeśli całkowity rozmiar pliku jest taki sam. Kopiowanie wszystkich danych może oznaczać różnicę między godzinami a sekundami.

Z tych powodów rozważ utworzenie nowego pliku co godzinę lub codziennie zamiast tego, utwórz dodatkowe poziomy w strukturze katalogów (np. Na godzinę) lub przechowuj dane w bazie danych.

obrabować
źródło
Dziękuję bardzo za szczegółową odpowiedź. To bardzo pomaga. Więc zamiast odmontowywać, muszę zadbać o nazwę pliku 8.3, liczbę plików i częstotliwość operacji zapisywania plików. Wezmę to pod uwagę. Z poważaniem.
sevenOfNine