|
ДропБокс, синхронизируя файлы, передает только измененные блоки или весь файл? | ☑ | ||
---|---|---|---|---|
0
Феофан
20.03.14
✎
10:31
|
Вопрос такой..
|
|||
29
dmpl
20.03.14
✎
11:11
|
(24) Э-э-э... зачем всего? Только того, с чем работаешь в последнее время. Все остальное довольно быстро устареет, если работать с разных девайсов...
|
|||
30
m-serg74
20.03.14
✎
11:12
|
(29) а если ты офф лайн так сказать будешь менять что то?
|
|||
31
dmpl
20.03.14
✎
11:15
|
(30) Фиг тебе, а не оффлайн. Ведь прежде чем менять локальный файл - надо убедиться, что это последняя версия.
|
|||
32
m-serg74
20.03.14
✎
11:16
|
т.е. если я не подключен, я не поменяю все что захочу локально?
|
|||
33
m-serg74
20.03.14
✎
11:17
|
или как понять фиг мне?
|
|||
34
Chai Nic
20.03.14
✎
11:19
|
WebDAV штука неплохая в своей идее, но реализации убоги без исключений..
|
|||
35
m-serg74
20.03.14
✎
11:20
|
не совершенства в этом мире :)
|
|||
36
dmpl
20.03.14
✎
11:21
|
(32) Даже если ты сможешь поменять - то не факт что потом не возникнет коллизий при синхронизации. Так что не стоит этого делать, если не уверен в 100% одинаковости файла локально и на сервере.
|
|||
37
m-serg74
20.03.14
✎
11:24
|
(36) ))) очень удобная система)))
|
|||
38
m-serg74
20.03.14
✎
11:24
|
(36) и нахрена геммориться с хэшами, когда других более важных проблем куча
|
|||
39
ShoGUN
20.03.14
✎
11:24
|
(37) "Не нравится - не ешь."(с)
|
|||
40
m-serg74
20.03.14
✎
11:24
|
(39) спс, я и не ем
|
|||
41
ShoGUN
20.03.14
✎
11:26
|
Ветка отдает мракобесием. И практику уже привёл, и теорию, ан нет - "корабли без парусов - это нелепость".
|
|||
42
m-serg74
20.03.14
✎
11:28
|
(41) ответь на (18), если не затруднит
|
|||
43
ShoGUN
20.03.14
✎
11:29
|
(42) diff не делается, математика для файла с измененным размером в (19). И кроме того - есть ПРАКТИКА в (9) - проверь сам.
|
|||
44
dmpl
20.03.14
✎
11:29
|
(37) Дык а как ты хотел? Как еще можно обеспечить целостность файла при многопользовательской работе? Тем более что далеко не все программисты открывают файл с правильным режимом разделения доступа...
|
|||
45
ShoGUN
20.03.14
✎
11:32
|
(44) Вообще-то конфликты нормально разрешаются, если будут конфликтующие версии файла - сохранятся обе.
|
|||
46
m-serg74
20.03.14
✎
11:33
|
(43) насчет практики
отправка через квип файла размером несколько килобайт занимает от полуминуты до нескольких минут, вопрос - что за фигня? многократная передача одного и того же просто время потянуть? |
|||
47
ShoGUN
20.03.14
✎
11:34
|
(46) Я понятия не имею, что у вас там в квипе, и при чем он тут.
|
|||
48
dmpl
20.03.14
✎
11:34
|
(45) Дык а какая будет открываться при доступе к файлу?
|
|||
49
m-serg74
20.03.14
✎
11:34
|
(43) насчет "diff не делается":
а как же твое же (15) понимать? |
|||
50
m-serg74
20.03.14
✎
11:36
|
(48) так глубоко лучше не зарываться, думается, прислушиваясь к твоему же (36) "Так что не стоит этого делать, если не уверен в 100% одинаковости файла локально и на сервере"
|
|||
51
ShoGUN
20.03.14
✎
11:36
|
(49) >а как же твое же (15) понимать?
Как гипотезу при недостатке информации. Гипотеза не подтвердилась гуглением. |
|||
52
m-serg74
20.03.14
✎
11:36
|
(47) к тому что ваша практика не показатель
|
|||
53
m-serg74
20.03.14
✎
11:37
|
(51) т.е. только сегодня узнал про CRC? благодаря гуглу?
|
|||
54
ShoGUN
20.03.14
✎
11:39
|
(48) Одна из двух, какая именно - спроси у дропбокса. Вторая
(53) Мля... Про CRC я узнал лет 15 назад. Вопрос - когда ты про него узнал. И главное - почему ты путаешь проверку целостности и хэширование потока. |
|||
55
m-serg74
20.03.14
✎
11:40
|
(54) "Вопрос - когда ты про него узнал", примерно так же как и ты
|
|||
56
ShoGUN
20.03.14
✎
11:41
|
>Одна из двух, какая именно - спроси у дропбокса. Вторая
*Вторая хранится в папке cо словом Conflicts в названии. Сталкивался пару раз. Неудобство в том, что объединять приходилось руками. |
|||
57
ShoGUN
20.03.14
✎
11:42
|
(55) Ну так может прочитаешь и подумаешь, чем Кольцевое хэширование отличается от CRC.
|
|||
58
m-serg74
20.03.14
✎
11:44
|
(57) CRC - это общее выражение, а не принцип выделения его, суть в том что ни один ХЭШ не в состоянии гарантировать стопроцентную целостность или восстановление потерянных моментов
|
|||
59
ildary
20.03.14
✎
11:45
|
(8) разбиение на чанки работало до тех, пока систему обмена Dropbox-а не похакали и им пришлось вводить жёсткое шифрование, которое поломало обмен с дроблением на куски. Правда это было уже давно и они могли придумать как и шифрование сделать и чанки сравнивать.
|
|||
60
ShoGUN
20.03.14
✎
11:45
|
(58) Видимо дураки авторы rsync-а этого не знают, господин теоретик.
|
|||
61
m-serg74
20.03.14
✎
11:46
|
(60) видимо знают
|
|||
62
ShoGUN
20.03.14
✎
11:48
|
(59) Оно до сих пор работает. Не работает дедупликация - т.е. совпадающие блоки ищутся только в том же файле сейчас, а не во всех файлах.
(61) Знают, и всё равно сделали систему синхронизации на хэшах? |
|||
63
m-serg74
20.03.14
✎
11:50
|
(62) а есть другие варианты?
|
|||
64
ShoGUN
20.03.14
✎
11:51
|
(64) Вы еврей?
|
|||
65
m-serg74
20.03.14
✎
11:51
|
походу да :)
|
|||
66
ShoGUN
20.03.14
✎
11:51
|
*(64)->(63)
|
|||
67
m-serg74
20.03.14
✎
11:52
|
(66) а почему как еврей так сразу на Вы перешел? :)
|
|||
68
ShoGUN
20.03.14
✎
11:56
|
(67) Точно еврей. Альтернатива - тащить весь файл, но почему-то этого не делают.
|
|||
69
Jump
20.03.14
✎
11:59
|
(0)Только блоки.
Это собственно его основная фишка, отличающая его от многих других облачных сервисов синхронизации. |
|||
70
m-serg74
20.03.14
✎
12:00
|
(68) я просто не пойму нафига с таким пафосом открывать Америку про контрольные суммы? наверное даже ребенок знает что любой пакет в сети(и не только) считается принятым только тогда когда контр. сумма на приемной стороне совпадет
а файл кусками его передавать или весь уходить будет все равно пакетами, так нет же пытаешься тыкнуть в вики - вон почитай - есть же... знаю что есть... давно знаю |
|||
71
ShoGUN
20.03.14
✎
12:01
|
(70) Проверка целостности(идентичности) блока/файла и проверка "что и где именно изменилось" - разные задачи, если что.
|
|||
72
Jump
20.03.14
✎
12:05
|
(25)-"Сравнение по Хэш может иметь коллизии. Я бы не стал доверять системе выполняющей сравнение файлов по хэш суммам."
Все делается просто. Во первых возможность коллизий различается в разных системах хэширования. Для начала используется максимально быстрая система хэширования богатая на коллизии. Если она показывает идентичность, можно сделать хэш в другой системе, и сравнить эти хэши, это практически сведет к нулю возможность коллизии. Ну и окончательно - когда блок загружен можно уже побайтно сравнить и окончательно увериться в отсутствии коллизий. |
|||
73
m-serg74
20.03.14
✎
12:09
|
(71) в чем же разница? объясни
проверить пакет/кусок файла/весь файл, на мой взгляд разницы нету |
|||
74
m-serg74
20.03.14
✎
12:11
|
(72) "Ну и окончательно - когда блок загружен можно уже побайтно сравнить и окончательно увериться в отсутствии коллизий."
сведет на ноль всю пользу предыдущих проверок |
|||
75
ShoGUN
20.03.14
✎
12:13
|
(73) Пример различия приведен в (13). Задача нахождения места изменения - сложнее, чем задача нахождения факта изменения. Средства - похожие(но не идентичные), но для нахождения факта можно посчитать md5, а для всех блоков md5 считать - опупеешь.
|
|||
76
Jump
20.03.14
✎
12:13
|
(58)Хэш собственно и не должен что то гарантировать, и тем более восстанавливать.
Хэш служит лишь для быстрого сравнения - если хэши разные, то данные однозначно разные. Если хэш совпал, значит либо файлы одинаковые либо коллизия. Проводится дополнительная проверка чтобы исключить коллизию. |
|||
77
m-serg74
20.03.14
✎
12:15
|
(76) "Проводится дополнительная проверка чтобы исключить коллизию."
как именно? польза только одна - хэш совпал - считается что все правильно передано или что объекты равны |
|||
78
Jump
20.03.14
✎
12:15
|
(74)С чего бы это?
Суть системы обеспечить минимальный трафик между хостами. Суть проверки - не допустить передачи того блока который уже есть на другом хосте. Двойная передача одного блока случается только в случае коллизии. Но поскольку это случается крайне редко, то система свою задачу выполняет. |
|||
79
m-serg74
20.03.14
✎
12:17
|
(78) ты сам написал - первый контроль прошел проводим еще один, опять прошел, сравниваем весь переданный блок побайтно, прочитай внимательно всё в своем (72)
|
|||
80
ShoGUN
20.03.14
✎
12:18
|
(77) facepalm.jpg
Берешь две разные функции, считаешь два разных хэша. Вероятность коллизии для двух посчитанных хэшей равна произведению вероятностей. |
|||
81
m-serg74
20.03.14
✎
12:19
|
(80) прочитай тоже внимательно всё в (72) Jump -а
|
|||
82
ShoGUN
20.03.14
✎
12:19
|
Чувствую, сейчас докатимся до дискуссии "Уникален ли GUID? Я очень боюсь, что у меня два совпадут!".
|
|||
83
Jump
20.03.14
✎
12:20
|
(77)Смотри - на хосте А есть блок нужно проверить стоит ли его передавать на хост Б.
Считаем хэш этого блока - если его хэша нет в БД хоста Б то однозачно передаем этот блок. Если хэш нашелся в БД хоста Б то тут ситуация сложнее - либо это коллизия, либо такой файл есть, проверяем его более сложной хэш функцией на обоих хостах и по результату делаем вывод. |
|||
84
Jump
20.03.14
✎
12:21
|
(81)Ну насчет побайтного сравнения я лоханулся. Это немножко не из той оперы.
А в остальном все верно. |
|||
85
m-serg74
20.03.14
✎
12:22
|
(84) тады ква :)
|
|||
86
ShoGUN
20.03.14
✎
12:23
|
(83) Это не исключает ошибку, лишь минимизирует её. Штука в том, что такой надёжности достаточно для повседневного применения. С тем же(если не большим) порядком малости может накрыться локальный носитель или умереть сам хозяин информации :)
|
|||
87
Jump
20.03.14
✎
12:23
|
Побайтное сравнение применяется не в дропбоксе и аналогах, а в дедупликации, когда файлы на одном диске и передавать никуда не надо.
Там да, при совпадении хэша на всякий пожарный проводится побайтное сравнение. |
|||
88
m-serg74
20.03.14
✎
12:23
|
(82) я не понял зачем было открывать Америко/Вики про хэши? про них знают даже дети
|
|||
89
m-serg74
20.03.14
✎
12:24
|
(87) а смысл?
получается: не совпал - передаем всё совпал всё равно передаем всё что бы убедиться так что ли? смысл проверки тогда |
|||
90
ShoGUN
20.03.14
✎
12:24
|
(88) Я привёл ссылку конкретно на кольцевой хэш. Я забыл о его существовании, и нагуглил именно то, что он применяется в дропбоксе.
|
|||
91
oleg_km
20.03.14
✎
12:25
|
(88) Заело что ли?
|
|||
92
Jump
20.03.14
✎
12:25
|
(86)Да минимизирует. Но там такие порядки, что не стоит даже заморачиваться. Т.е есть вероятность что луна на голову свалится, и она ненулевая.
|
|||
93
m-serg74
20.03.14
✎
12:26
|
(91) как и оппонента
|
|||
94
Jump
20.03.14
✎
12:27
|
(89)
Не совпал - передаем. Совпал - хэшируем другим алгоритмом, более сложным и долгим, но имеющий на много порядков меньшую возможность образования коллизий, и передаем ХЭШи а не файлы для сравнения. |
|||
95
ShoGUN
20.03.14
✎
12:27
|
(89) Нет, если совпал 1,2..n раз - не передаём блок вообще. Чем больше n - тем больше надёжность.
|
|||
96
m-serg74
20.03.14
✎
12:28
|
(95) что нет? читай в (87)
"Там да, при совпадении хэша на всякий пожарный проводится побайтное сравнение." что есть "побайтное сравнение"? |
|||
97
ShoGUN
20.03.14
✎
12:28
|
(96) Тебя заело? Jump уже сказал, что лоханулся с побайтным сравнением.
|
|||
98
m-serg74
20.03.14
✎
12:29
|
(97) в (84) написал лоханулся, а (87) опять тоже самое
|
|||
99
Lama12
20.03.14
✎
12:29
|
(94) (95) В принципе, да. Подобная схема сведет вероятность коллизий практически к нулю.
|
|||
100
ShoGUN
20.03.14
✎
12:30
|
(98) Ты прав в том, что емли мы априори хэшам не доверяем - то считать - смысла нет, всё равно потом побайтно сравнивать.
|
|||
101
m-serg74
20.03.14
✎
12:32
|
(100) так и я про тоже. есть проверенные алгоритмы, и нет смысла проверять ими. а при совпадении проверять сложнее, сложнее и в конце концов сравнивать побитно, типа "не может быть что всё правильно"
только если не совпало |
|||
102
ShoGUN
20.03.14
✎
12:36
|
(101) Вообще не доверять проверке целостности - нонсенс :) Она же везде. Ты же не закладываешься на то, что тебе корректные TCP-пакеты с мусором попадут, или с диска мусор считается, хотя контрольная сумма совпадёт.
|
|||
103
m-serg74
20.03.14
✎
12:36
|
(102) я где то отрицал это?
|
|||
104
Jump
20.03.14
✎
12:37
|
(98)Прочитай внимательнее (87)там не тоже самое :)
я там лишь объяснил почему лоханулся. В дропбоксе побайтное сравнение исключено, т.к файлы в разных местах. В дедупликации локальной оно применяется т.к файлы в одном месте и проще сравнить побайтно, чем считать сложный хэш. |
|||
105
ShoGUN
20.03.14
✎
12:38
|
(103) В (57) например. Коллизии, коллизии, кругом одни коллизии.
|
|||
106
ShoGUN
20.03.14
✎
12:39
|
Тьфу, в (58).
|
|||
107
m-serg74
20.03.14
✎
12:39
|
(104) не буду биться об заклад но думаю кнтроллер винта в конце пакета передает контр. сумму, так что даже если сравнивать два файла на одном винте все равно будет использоваться принцип "проверили КС, не совпало проверяем точнее"
|
|||
108
m-serg74
20.03.14
✎
12:41
|
(106) в (58) дословно сказано 100% гарантии нету.. и не больше, там я не говорил что не доверяю КСам
|
|||
109
ShoGUN
20.03.14
✎
12:42
|
(108) 100% гарантии сохранности чего бы то ни было нет ни в каком случае.
|
|||
110
ShoGUN
20.03.14
✎
12:43
|
+(109) И хэши тут качественно ничем не выделяются.
|
|||
111
m-serg74
20.03.14
✎
12:43
|
(109) так на что (106) тогда указывает? :)
|
|||
112
Jump
20.03.14
✎
12:44
|
(107)Примерно так оно и есть.
|
|||
113
ShoGUN
20.03.14
✎
12:44
|
(111) На то, что ты подчеркнул отсутствие 100% гарантий как качественную особенность хэшей.
|
|||
114
Jump
20.03.14
✎
12:45
|
(113),(111) Хорош спорить о том, кто, где, что не так сказал.
С сабжем вроде разобрались? |
|||
115
m-serg74
20.03.14
✎
12:46
|
(113) ты с этим поспоришь, а говоря что нет 100%, я не имел ввиду что я не доверяю... мне и 70% хватит
|
|||
116
m-serg74
20.03.14
✎
12:47
|
(114) с сабжем только после декомпиляции и анализа продукта :)
а мы пока про возможность того что это так и есть в ДБ:) |
|||
117
ShoGUN
20.03.14
✎
12:47
|
(114) Мне и разбираться не надо было, я и так знал про частичную синхронизацию и регулярно ей пользуюсь :)
|
|||
118
m-serg74
20.03.14
✎
12:49
|
(117) а вот команда ДБ пишет почему то для "опытных пользователей" что "Перед передачей файла мы сравниваем его последнюю и предыдущую версии", тут вроде ничего про хэши нету... или я не вижу
|
|||
119
Jump
20.03.14
✎
12:50
|
(116)Ну декомпиляция не обязательна.
Можно просто провести тестирование на специально измененных файлах. Я этим кстати баловался. Как в случае с дропбоксом, так и в случае с дедупликацией от майкрософта. |
|||
120
Jump
20.03.14
✎
12:51
|
(118)Ну ты не совсем правильно их понял.
В дропбоксе помимо всего прочего есть еще и хранение версий. Т.е можно откатиться к версии файла которая была вчера, или неделю назад. |
|||
121
ShoGUN
20.03.14
✎
12:53
|
(118) Во-первых, тут ничего нет и про средства сравнения. Вообще. И как оно делается - сравнением хэшей, или по-другому - не указано. Или "сравниваем" это именно "сравниваем побитово"? А во-вторых, там написано "для опытных пользователей" а не "для программистов и хакеров".
|
|||
122
ShoGUN
20.03.14
✎
12:55
|
+(121) А две версии - это клиентская и серверная.
|
|||
123
ShoGUN
20.03.14
✎
12:56
|
(120) Имеет место, но к сабжу не имеет прямого отношения.
|
|||
124
m-serg74
20.03.14
✎
12:58
|
(121) не спорю:) ибо думается "для опытных пользователей" = "могут установить винду":)
|
|||
125
m-serg74
20.03.14
✎
13:00
|
(117) а вот так было бы грамотно сказано из (117):
"используется частичная синхронизация" |
|||
126
m-serg74
20.03.14
✎
13:00
|
(125) к (121)
|
|||
127
Jump
20.03.14
✎
14:58
|
(13)Кстати да. Хитрый вопрос.
Но тем не менее поймет. |
|||
128
le_
20.03.14
✎
16:25
|
Вот тут есть вроде неплохая статья о dropbox.
http://habrahabr.ru/post/163189/ Файлы бьются на блоки, и да, передаются измененные блоки. Только некоторые файлы могут содержать всего один блок. И при изменении они будут передаваться полностью. Такие файлы скорее всего будут иметь размер до 4 мб. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |