Як швидко скопіювати 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, не в тому річ
файли фізично повинні лежати в одному місці, а то вийде, що один підприємство змінив, зберегти не встиг, а інший змінив і зберіг.
> Як ДУЖЕ ШВИДКО скопіювати ці файли в інше місце
> Файли фізично повинні лежати в одному місці
Якось не корелюється :(