Бафиксы — это понятно. Но какой такой новый функционал новые версии Windows предоставляют, ради которого стоило бы поменять систему? В Win7 основным улучшением было принципиальное изменение подхода к безопасности системы. Но это, в первую очередь, всего лишь доказывает, что XP была дырявой. Так что же нам в первую очередь обещает Win8? Поддержку планшетов? На десктопах это не нужно. Отсюда и эти метания по поводу убирания/возвращения кнопки пуск и других типовых элементов.
Уточнение: сейчас блокировка не на коллекцию, а на базу. Т.е. пока у вас идет запись в одну коллекцию у вас запись в другую коллекцию в этой же базе — блокирована.
На практике тот же PostgreSQL на многих задачах показывает лучшую производительность, чем монга.
У Винжа в «Глубина в небе» (приквел «Пламени над бездной») была остылка на софт из нашего времени, но, на сколько я помню, там была речь не про Windows, а про что-то из Unix. Кажется там было что-то от сокетов, могу ошибаться. И еще там была самая высокооплачиваемая профессия «программист-археолог» )
Это лишь ваше мнение, что чему-то там далеко до правильного. Я так не считаю.
Описанная схема более-менее хорошо работает, когда все соединения равноценным между собой и, например, пользователь просто качает большие файлы. Но как-только появляется какая-либо ассиметрия, то начинаются проблемы.
Поясню на примерах.
Пусть у нас выстален общий лимит 100k.
Кейс 1:
Пользователь качает два файла, по одному соденинению каждый. Лимит скорости на соединение получается 50k. 50k*2=100k.
Всё ОК.
Кейс 2:
Помимо двух скачивания двух файлов пользователь начинает активно ходить по сайту. Пусть бразуер пользователя использует 6 соединений для параллельного скачивания контента: страницы, JS-скрипты, CSS-файлы, прочее. Реальная скорость по этим соединениям может быть невысокой, но не из-за лимита, а из-за того, что сервер не так быстро отвечает либо браузер делает запросы не один за другим, а с паузами (в частности потому, что должен выполнять JS последовательно). А еще есть keep alive, который соединение держит, но скорость передачи по нему может быть 0. Допустим по этим 6 соединениям реальная средняя скорость — 5k. 2+6=8 соединений всего, 100k/8=12.5k лимит скорости, выставляемый обсуждаемым модулем. 2 соединения качают файлы, так что они будут утилизировать этот лимит полностью, а вот остальные соединения — нет. Итого получаем, что общий реальный лимит на соединения от пользователя получился 2*12.5 + 6*5 = 55k, хотя в конфиге вы выставили лимит 100k.
Вот поэтому есть большие сомнения по поводу «правильности» данного подхода.
Эээ, вы хоть до конца читали-то мой комментарий? )
В любом случае, ограничению скорости по этой формуле очень далеко до «правильного». Скорее всего в nginx ограничения не делали как раз по той причине, что правильно сделать ограничение по сумме не так-то просто (особенно с учетом того, что придется выбирать, какому из соединений пользователя резать скорость в текущий момент).
Правильно ли я понимаю, что если вы выставили суммарный лимит на скорость 100k и, по доброте душевной, разрешили делать до 100 соедиений, то у вас по каждому соединению будет жесткий лимит 1k. Соответственно если пользователь будет использовать всего одно соединение, то он всё равно будет качать на скорости лишь 1к, а не 100к. Или же ls->conn — это _текущее_ количество соединений?
«Всякая селедка — рыба, но не всякая рыба — селедка» (дуэт капитана Врунгеля и капитана Очевидность)
Вы же выше делаете заявление вида «селедка — не рыба, иначе бы её назвали рыбой, а не селедкой». Именно к этому вашему заявлению и возникли петензии у forgotten (и не только).
А какая разница? Кредит то по этой аналогии уже одобрен.
Если это мой счет или уже одобренный кредит — тогда аналогия с банком неуместна, так как нет конкуренции за разделяемый ресурс.
Какая акция, Вы что? Где Вы на бирже скидки видели?
А по-вашему на чем зарабатывают HTF-трейдеры? Именно на «распродажах» (только наоборот), когда большие ордера закрываются и есть возможность урвать свой кусок на том, что кто-то другой сейчас массово покупает (или продает).
Есть предложение (полка магазина с товаром), на которой висит ценник с фиксированной ценой и покупатель хочет купить товар по этой цене.
Окей, вот на этом самом примере: вы идете купить купить стиральную машину, HTF-трейдер видит, куда вы идете, обгоняет вас, срывает ценник, тащит стиралку к кассе и тут же предлагает вам её купить у него, но на 10% дороже.
Там, где построена четкая очередь не бывает давки. А вот когда очереди нет и принцип получения блага не определен — будет давка из желающих это благо получить.
Согласен. Все верно. И в описываемой мной модели давки не будет. Но не потому, что всех будет судить ГСЧ, а потому как пропадет искусственная давка, создаваемая HTF-трейдерами.
А чем плох вариант, кто первый встал, того и тапки?
Спекуляция-с.
Скажите, Вам бы понравилось, если бы банк решал, выдать Вам запрошенную сумму или нет с использованием ГСЧ?
Речь идет о выдаче денег с моего счета (то, что и так принадлежит мне) или кредита (ресурс банка)?
Или пришли Вы в магазин к открытию, чтобы успеть что-нибудь купить, а ГСЧ показывает, что Вам ничего не достанется при полных полках магазина?
Что за глупости вы пишете. Более подходящий пример: магазин проводит акцию со скидками близкими к 100%, имеется толпа желающих купить. Вместо того, чтобы устраивать давку — право покупки разыгрывается между всеми, кто хочет его купить.
Да и как я писал выше, ГСЧ — это один из вариантов решения ситуации с явной конкуренцией за ресурс. Есть другие.
вас немедленно порвут на куски и втопчут остатки в грязь
Конечно! Но ровно по одной причине: в текущей модели бирж такой поступок наносит брокеру/маркету прямой урон (как минимум потенциально). В схеме со слотами — все броекры в рамках слота не имеют приоритета по очередности и сама очередность тут не имеет смысла. Не думаю, что броекрам будет важно, обработают их первыми или последними, если от порядка не будет зависеть хоть что либо.
Например все кнупные площадки законодательно переводятся на описанную мной модель. Синхронизируют тайм слоты между собой. У большого ордера окно в 5 секунд, чтобы придти на все площадки. До того как это окно не закончится — никто кроме самих бирж не знает про этот ордер. С завершением слота биржи приступают к обработке заявок обрабатывают каждая свою часть ордера и по завершению слота обработки публикуют результаты. У HFT просто нет возможности вклиниться в процесс, так как всё свершилось еще до того, как это стало публично.
Разумеется этот вариант предполагает, что сами по себе биржи являются «честными» и не используют информацию о проводимых на них сделках для торговли на других биржах.
В случае HFT человек не участвует вообще — невозможно проконсультироваться у человека и при этом иметь время реакции меньше 1 мс. HTF алгоритм зарабатывает на том, что другие участники биржи по сравнению с ним намного медленее.
Если я Вас правильно понял, в Вашем примере я продам 100 по цене 102 и по 250 по ценам 101 и 100.
Нет, мой пример деления относился исключительно к ситуации с одинаковой ценой запроса.
Все 600 уйдут тому, кто запросил 2000 по цене 100.
К тому же, я не понял, как подробное описание этого алгоритма отменяет мою фразу о том, что сейчас на рынке и так все выставленные заявки ранжируются по цене и могут быть сведены не полностью?
Никак не отменяет. Я где-то утверждал, что сейчас на рынке не так?
В гипотетическом примере выше автор одновременно знает знак частицы уже в момент отправки и при этом умеет поменять знак частицы измерением. Естественно, что это не согласуется с известными нам законами физики.
На практике тот же PostgreSQL на многих задачах показывает лучшую производительность, чем монга.
Поясню на примерах.
Пусть у нас выстален общий лимит 100k.
Кейс 1:
Пользователь качает два файла, по одному соденинению каждый. Лимит скорости на соединение получается 50k. 50k*2=100k.
Всё ОК.
Кейс 2:
Помимо двух скачивания двух файлов пользователь начинает активно ходить по сайту. Пусть бразуер пользователя использует 6 соединений для параллельного скачивания контента: страницы, JS-скрипты, CSS-файлы, прочее. Реальная скорость по этим соединениям может быть невысокой, но не из-за лимита, а из-за того, что сервер не так быстро отвечает либо браузер делает запросы не один за другим, а с паузами (в частности потому, что должен выполнять JS последовательно). А еще есть keep alive, который соединение держит, но скорость передачи по нему может быть 0. Допустим по этим 6 соединениям реальная средняя скорость — 5k. 2+6=8 соединений всего, 100k/8=12.5k лимит скорости, выставляемый обсуждаемым модулем. 2 соединения качают файлы, так что они будут утилизировать этот лимит полностью, а вот остальные соединения — нет. Итого получаем, что общий реальный лимит на соединения от пользователя получился 2*12.5 + 6*5 = 55k, хотя в конфиге вы выставили лимит 100k.
Вот поэтому есть большие сомнения по поводу «правильности» данного подхода.
В любом случае, ограничению скорости по этой формуле очень далеко до «правильного». Скорее всего в nginx ограничения не делали как раз по той причине, что правильно сделать ограничение по сумме не так-то просто (особенно с учетом того, что придется выбирать, какому из соединений пользователя резать скорость в текущий момент).
Вы же выше делаете заявление вида «селедка — не рыба, иначе бы её назвали рыбой, а не селедкой». Именно к этому вашему заявлению и возникли петензии у forgotten (и не только).
А по-вашему на чем зарабатывают HTF-трейдеры? Именно на «распродажах» (только наоборот), когда большие ордера закрываются и есть возможность урвать свой кусок на том, что кто-то другой сейчас массово покупает (или продает).
Окей, вот на этом самом примере: вы идете купить купить стиральную машину, HTF-трейдер видит, куда вы идете, обгоняет вас, срывает ценник, тащит стиралку к кассе и тут же предлагает вам её купить у него, но на 10% дороже.
Согласен. Все верно. И в описываемой мной модели давки не будет. Но не потому, что всех будет судить ГСЧ, а потому как пропадет искусственная давка, создаваемая HTF-трейдерами.
Речь идет о выдаче денег с моего счета (то, что и так принадлежит мне) или кредита (ресурс банка)?
Что за глупости вы пишете. Более подходящий пример: магазин проводит акцию со скидками близкими к 100%, имеется толпа желающих купить. Вместо того, чтобы устраивать давку — право покупки разыгрывается между всеми, кто хочет его купить.
Да и как я писал выше, ГСЧ — это один из вариантов решения ситуации с явной конкуренцией за ресурс. Есть другие.
Разумеется этот вариант предполагает, что сами по себе биржи являются «честными» и не используют информацию о проводимых на них сделках для торговли на других биржах.
Тоже нет. Точнее — не обязательно.
Я склонен считать, что это в большей степени следствие инерции сетевого эффекта.
Я хочу чтобы конкретно размер пинга перестал предоставлять возможность спекуляции.
Должно быть:
100 уйдет тому, кто покупает по 102 и 500 уйдет тому, кто покупает по 101.
(Спутал продажу с покупкой, сортировка в другую сторону)
Нет, мой пример деления относился исключительно к ситуации с одинаковой ценой запроса.
Все 600 уйдут тому, кто запросил 2000 по цене 100.
Никак не отменяет. Я где-то утверждал, что сейчас на рынке не так?