Тут есть момент один. Допустим, имеем идеальных водителей и все они ровнехонько встают в один ряд перед съездом. Допустим, съезд популярен и, скажем на километр выстраивается очередь.
1. Это очень похоже на плотную парковку
2. Можно не понять, что это хвост нужного тебе съезда
Что происходит дальше? Нарушитель порядка понимает, что ошибся за 500-300 метров до съезда и пытается встать в очередь. Для этого он практически останавливается и ждет освобождения места (допустим, что ему не будут препятствовать). Таким образом он перекрывает второй ряд.
Представим, что появляется второй нарушитель. Он едет вдоль очереди и ищет свой поворот. Видит какого-то хрена, ждущего во втором ряду места в очереди. Объезжает первого, замечает, что это его съезд и повторяет те же действия.
Если продолжить, то получится N-рядная коллизия, причем, чем больше рядов, тем раньше до водителя доходит что она относится к его съезду.
А у нарушителя положительный опыт: да, я влез, да меня долго не пускали и гудели мне, но я реально сэкономил время и меня не оштрафовали.
В этой ситуации проблемы:
— нет предупреждений о том, что поворт на съезд затруднен и нужно действовать таким-то образом
— нет последствий нарушений
Ой, да бросьте. Логика примитивна.
«Если я сейчас ничего не сделаю, то останусь ждать, а эти п****сы слева (справа) набьются на перекресток и я хрен проеду». Это мысль номер раз.
«Я пытался проехать перекресток, но из-за этих впереди не успел/не доехал/застрял. Я не виноват». Это мысль номер два.
Первая мысль побуждает, а вторая оправдывает совершенные действия.
Обратите внимание как ведут себя «застрявшие» на перекрестке – в бок им гудят, но они смотрят только вперед и едут только вперед. Мысль номер раз не дает им включить заднюю и пропустить пострадавших.
Итак, в вебе миллионы серверов с миллионами приложений, которые написаны с использованием 302. Старые клиенты, которые не знали про 303 постепенно отмирают, но приложения на серверах остаются и по-прежнему используют 302 вместо 303. И будут, потому что это вошло в образование веб-программистов и впитано с исходниками примеров из книжек.
Разработчики стандарта поступили не очень мудро. Нужно было быть ближе к народу и наделить 302 именно тем смыслом, который в него вкладывают те, кто его использует. А «старый 302» переименовать в 303-й =)
Этот способ обычно используется при заливке дампа и это относительно редкая и специфичная задача для веб-приложений. Обычно это от одного до пяти инсертов в разные таблицы.
Боюсь, что это тема для отдельной статьи. В обсуждении я как раз и спросил — как можно сравнивать эти две сильно разные базы без четкой задачи и привел пример простейшей.
Пакетами по 5-100 вставок за итерацию. Настройка была. Отмена двойной записи в innodb, файловое пространство под каждую таблицу и еще по мелочи. Не суть важно. порядок разрыва между монгодб и мускулом таким и останется. Иннодб обязан удостовериться в том, что данные реально записаны, этого требует acid. Кардинально сократить разрыв сможет только использование альтернативных стораджей типа ssd
Хм… Аналогом моего use case'a в мускуле будут две таблицы: posts(id, title, content) & comments(id, post_id, content, author). И что с чем сравнивать?
Тупо запись в comments в моем окружении (innodb) идет со скоростью 175 insert/sec. Тупо запись в mongodb в районе 10 000 insert/sec и оно понятно почему.
Исправлю в тексте
Нужно прописать кодировку при загрузке скриптов
1. Это очень похоже на плотную парковку
2. Можно не понять, что это хвост нужного тебе съезда
Что происходит дальше? Нарушитель порядка понимает, что ошибся за 500-300 метров до съезда и пытается встать в очередь. Для этого он практически останавливается и ждет освобождения места (допустим, что ему не будут препятствовать). Таким образом он перекрывает второй ряд.
Представим, что появляется второй нарушитель. Он едет вдоль очереди и ищет свой поворот. Видит какого-то хрена, ждущего во втором ряду места в очереди. Объезжает первого, замечает, что это его съезд и повторяет те же действия.
Если продолжить, то получится N-рядная коллизия, причем, чем больше рядов, тем раньше до водителя доходит что она относится к его съезду.
А у нарушителя положительный опыт: да, я влез, да меня долго не пускали и гудели мне, но я реально сэкономил время и меня не оштрафовали.
В этой ситуации проблемы:
— нет предупреждений о том, что поворт на съезд затруднен и нужно действовать таким-то образом
— нет последствий нарушений
«Если я сейчас ничего не сделаю, то останусь ждать, а эти п****сы слева (справа) набьются на перекресток и я хрен проеду». Это мысль номер раз.
«Я пытался проехать перекресток, но из-за этих впереди не успел/не доехал/застрял. Я не виноват». Это мысль номер два.
Первая мысль побуждает, а вторая оправдывает совершенные действия.
Обратите внимание как ведут себя «застрявшие» на перекрестке – в бок им гудят, но они смотрят только вперед и едут только вперед. Мысль номер раз не дает им включить заднюю и пропустить пострадавших.
ЗЫ. Исключения подтверждают правила
Итак, в вебе миллионы серверов с миллионами приложений, которые написаны с использованием 302. Старые клиенты, которые не знали про 303 постепенно отмирают, но приложения на серверах остаются и по-прежнему используют 302 вместо 303. И будут, потому что это вошло в образование веб-программистов и впитано с исходниками примеров из книжек.
Разработчики стандарта поступили не очень мудро. Нужно было быть ближе к народу и наделить 302 именно тем смыслом, который в него вкладывают те, кто его использует. А «старый 302» переименовать в 303-й =)
И все дела =)
Или mac os x. До сих пор старпёры ноют про «пространственную парадигму finder'a» из старушки mac os 9, а 10-ка набирает очки и пользователей.
Вот сравнение, которое коррелирует с моими результатами: jayant7k.blogspot.com/2009/08/document-oriented-data-stores.html
blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/
Тупо запись в comments в моем окружении (innodb) идет со скоростью 175 insert/sec. Тупо запись в mongodb в районе 10 000 insert/sec и оно понятно почему.