Як швидко скопіювати 500 маленьких файлів

Як швидко скопіювати 500 маленьких файлів

Є 500-600 файлів по 5-6 Кбайт кожен. Як ДУЖЕ ШВИДКО скопіювати ці файли в інше місце? PS: Місце - в мережі. і займає ця процедура 5-10 сек. треба менше.

А скільки часу займає їх заархівувати?

це треба робити програмно + постійно (раз в дві-три хвилини). на жаль, в БД вже занадто багато даних, щоб міняти структуру і вводити іншу методику сихронізацію - цим я займаюся в новій версії. а поки - тільки так.

> [2] lessard # XA0; (06.09.06 10:59)

А в чому проблеми з програмною архівацією?

2evvcom
пропозиції методики? стандартних засобів, вибачте, не навчений - rar архівувати зараза не хоче, zip-компонентами користуватися я не вмію. Ще варіанти?


> 4] lessard # XA0; (06.09.06 11:09)
> 2evvcom
> Пропозиції методики? стандартних засобів, вибачте, не
> Навчений - rar архівувати зараза не хоче, zip-компонентами
> Користуватися я не вмію. Ще варіанти?

що означає "не хоче"?


> Що означає "не хоче"?

Похідна від не вмію


> І займає ця процедура 5-10 сек. треба менше

А що вінчестери вже миттєво дані знаходять і віддають?
> lessard # XA0; (06.09.06 11:09) [4]
> Стандартних засобів, вибачте, не навчений

Ти забув додати, що самі ви не місцеві.

> Rar архівувати зараза не хоче

Що, так і говорить "не хочу"?

PS. І для кого ж конференцію "Початківцям" створили?


> lessard # XA0; (06.09.06 11:14) [11]

Став питання в правильній конференції і тоді до тебе будуть ставитися по правилу "Прохання до учасників бути взаємоввічливими, професіоналам окрема прохання - бути поблажливими."

> [7] lessard # XA0; (06.09.06 11:13)

А. Ось чому не хоче! Так тобі ж по-російськи пише Рар "Зареєструйтеся!" Або ти думаєш тобі зараз тут почнуть пояснювати, як треба Рар зламати?

Опиши завдання.
Тепер виходить, що потрібно тягнути з мережевого диска, а не штовхати в мережу, а це принципово інше.


> lessard

BlockRead, BlockWrite начебто найшвидші. Але це ще від мережі залежить

Завдання: readfrom LAN -> writeto LOCAL -> обробка / зміна / -> writeto LAN -> readfrom LAN. і так далі.


> Blockread / blockwrite НЕ превнеслі особливого прискорення

А який розмір блоку?

10, 20 і 50 кбайт в залежності від формату файлу

А я б спробував по 4 кб або кратно.

скільки часу займає скопіювати це локально?

локально - 10-12 секунд, якщо користуватися віндового методами
а я і кажу що кратно файли там є сйечас від 4 до 200 кбайт, так великі швидше копіюються.


> Завдання: readfrom LAN -> writeto LOCAL -> обробка / зміна /
> -> writeto LAN -> readfrom LAN. і так далі.

мені здається тут так і напрошується помістити твою прогу на ту машину де файліки лежать.

Як варіант, можна написати мережевий сервіс, який буде купу дрібних файлів одним потоком віддавати.
Заощадити на службових операціях з каталогом по мережі.


> Є 500-600 файлів по 5-6 Кбайт кожен

Приблизно 3 гіга інформації 5-10 секунд помоему непоганий результат


> lessard # XA0; (06.09.06 12:13) [22]


> Так великі швидше копіюються

Ну про це в будь-якій книжці по комп'ютерам в розділі про роботу дисків написано. Голівках не потрібно постійно шукати на всьому диску потрібне місце, та ще на таблицю дбав / файлів скакати.

StriderMan, клієнт-бд стоїть біля 50 чоловік в залі. не котить. в новій версії зроблю TCP-обмін. думаю буде краще.

Skyle, распаралеліть в сенсі? А зробити файл. була така ідея, навіть пробував ZLib, та не склалося. Є ще варінт?


> Голівці не потрібно

Це не в той степ.
Самий гальмівний гвинт на порядки швидше найшвидшої мережі.

Чи варто розглядати як варіант TCP-транспорт такого типу:

> Connect 192.168.0.1 3928
+OK Login, please
> User root
+OK Enter password
> Pass password
+OK Logged in, welcome

> Query dblist.dxf id 1
+OK Transferring started.
sdQ3H50E9HDSKJ3LJBRTELRFB23 [RIJEWOFZKLERGBN <-- типа ReadStream

> Write dblist.dxf id 1
+OK Enter data for write.
sdjkhljkw345whlferptf23jkr5hlfzelfgdgjdflg23rlsjrdljfkd
+OK Save success

У сенсі, чи буде це швидше?

Skyle, мережа не вийде. Як я тобі буду обробляти запити від купи користувачів?

Тоді ще варіант:
ставиш всюди NTFS, на тій машині, з якої дані треба забирати все збираєш в один багато-файл, потім цей файл копіюєш, на своїй машині читаєш прямо з потоків, також копіюєш назад, читаєш :)


> [34] lessard # XA0; (06.09.06 12:30)
> Skyle, мережа не вийде. Як я тобі буду обробляти запити
> Від купи користувачів?

А цю обробку на машині користувача зробити ніяк не можна?
Для обробки теж потрібні дані такого ж рівня терміновості?

гігабітний LAN прокачує за секунду 128 мегабайт. далеко не всякий гвинт на таке здатний.

Skyle, не в тому річ
файли фізично повинні лежати в одному місці, а то вийде, що один підприємство змінив, зберегти не встиг, а інший змінив і зберіг.


> Як ДУЖЕ ШВИДКО скопіювати ці файли в інше місце


> Файли фізично повинні лежати в одному місці

Якось не корелюється :(