Насколько я помню, все конейнеры С++ STL являются thread safe при чтении, но не при записи, так что для одновременного write доступа придется лочить. Насколько изза этого может упасть производительность - сказать трудно, бо запись будет идти постоянно.Леонид Ильич Брежнев wrote:А что наука (computer science) говорит про скорость записи в такие вот hash tables при многопоточной обработке? Ну т.е. процедуру << (поискать) ? нашел, увеличить счетчик : не нашел, создать >> делать из нескольких threads? Насколько скорость обработки упадет при увеличении количества threads в пределах разумного, скажем не более 20.
Яндекс Лабс в Palo Alto набирает С++ developers
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Ну, полно альтернатив, как: http://msdn.microsoft.com/en-us/library/hh750089.aspxBoriskin wrote: Насколько я помню, все конейнеры С++ STL являются thread safe при чтении, но не при записи, так что для одновременного write доступа придется лочить. Насколько изза этого может упасть производительность - сказать трудно, бо запись будет идти постоянно.
И у Intel, и у Apple подобное есть.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Те же яйца, вид сбоку, бо внутри доступ все равно лочится. Или там применяется некий принципиально иной лучший способ гарантировать синхронизацию и целостность данных? 

Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Пытаются лочить коллекцию более гранулярно. В примитивном случае с хэш-мапом это ещё как работает. Даже частично с бинарно-деревным мапом.Boriskin wrote:Те же яйца, вид сбоку, бо внутри доступ все равно лочится. Или там применяется некий принципиально иной лучший способ гарантировать синхронизацию и целостность данных?
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Я никогда не писал, что лочить надо все. Речь шла о локе отдельного рекорде при апдейте.Medium-rare wrote:Пытаются лочить коллекцию более гранулярно. В примитивном случае с хэш-мапом это ещё как работает.Boriskin wrote:Те же яйца, вид сбоку, бо внутри доступ все равно лочится. Или там применяется некий принципиально иной лучший способ гарантировать синхронизацию и целостность данных?
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Одного рекорда может быть недостаточно, может быть рейс кондишн когда вы в бакет хештаблицы вставляете например новый элемент.Леонид Ильич Брежнев wrote:Я никогда не писал, что лочить надо все. Речь шла о локе отдельного рекорде при апдейте.Medium-rare wrote:Пытаются лочить коллекцию более гранулярно. В примитивном случае с хэш-мапом это ещё как работает.Boriskin wrote:Те же яйца, вид сбоку, бо внутри доступ все равно лочится. Или там применяется некий принципиально иной лучший способ гарантировать синхронизацию и целостность данных?
In vino Veritas!
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Партия об этом тоже подумала.crypto5 wrote:Одного рекорда может быть недостаточно, может быть рейс кондишн когда вы в бакет хештаблицы вставляете например новый элемент.


-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Значит есть шанс что мы с Партией на одной странице - нужно лочить не запись а бакет
In vino Veritas!
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Это решение подходит только для хадупа?Ljolja wrote:дорогое решение, даже если в процессе сортировки повторения убирать и счетчик увеличивать. имхо лучше сначала кластеризовать по некот. признаку подобия. потом отсортировать только кластер с наименьшей дисперсией, если там в итоге окажется < 10 запросов, отсортировать следуюший. Так же подход будет хорош, если соответствие 2-х (одинаковых) запросов не 100%crypto5 wrote: А алгоритмически - посортировать, пройтись по сортированному списку, посчитать каунты, потом еще раз пройтись и найти десять самых больших каунтов, потом еще раз пройтись, и найти запросы для этих каунтов.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Нет, ну т.е. да лочить нужно бакет. Мне концептуально интересно. Я совершенно не уверен, что предложенный мною алгоритм будет сильно оптимальным, и даст какую-то существенную выгоду по сравнению с обработкой этого в один сред на 20 машинах (и созданием 20 почти одинаковых hash tables, там) и потом склейкой.crypto5 wrote:Значит есть шанс что мы с Партией на одной странице - нужно лочить не запись а бакет
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Яндекс Лабс в Palo Alto набирает С++ developers
На хадуп оно отлично ложится, но думаю и на ноутбуке можно за разумное время посчитать.Сабина wrote:Это решение подходит только для хадупа?Ljolja wrote:дорогое решение, даже если в процессе сортировки повторения убирать и счетчик увеличивать. имхо лучше сначала кластеризовать по некот. признаку подобия. потом отсортировать только кластер с наименьшей дисперсией, если там в итоге окажется < 10 запросов, отсортировать следуюший. Так же подход будет хорош, если соответствие 2-х (одинаковых) запросов не 100%crypto5 wrote: А алгоритмически - посортировать, пройтись по сортированному списку, посчитать каунты, потом еще раз пройтись и найти десять самых больших каунтов, потом еще раз пройтись, и найти запросы для этих каунтов.
Ну т.е. под хадуп там некоторые изменения целесообразно сделать. Собственно первая часть - посчитать каунты - это классический map reduce - первый пример во всех книжках - word count
In vino Veritas!
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Причем парсить их надо сразу в базу данных и потом на оракловском rac-е в PL/SQL аналитическими функциями кранчитьroadman wrote: Как уже Berlaga намекнул, Yandex хотел увидеть какой-нибудь разумный вариант down sampling-га. И как Дорогой Леонид Ильич заметил, можно обрабатывать log файлы параллельно, поскольку вставка в хранилище в памяти будет значительно быстрее, чем чтение файлов, особенно если файлы где-нибудь на сети (HDFS).

https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Oracle RAC вам ничего не даст. RAC - это бесперебойность сервиса в первую очередь, производительность новые узлы там не сильно-таки поднимают.Сабина wrote:Причем парсить их надо сразу в базу данных и потом на оракловском rac-е в PL/SQL аналитическими функциями кранчить
PS. Или сдается мне, что это был сарказм? (с) почти "Человек с бульвара Капуцинов"
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Это был сарказм о мощи распаралеливания, конечно всерьез не предлагала. Плюс видела своими глазами rac на 80 CPU который кранчил internet traffic в реальном времени и потом отлаженными аналитическими кверями считал распределение запросов, быстренько так знаете лиmynameiszb wrote:Oracle RAC вам ничего не даст. RAC - это бесперебойность сервиса в первую очередь, производительность новые узлы там не сильно-таки поднимают.Сабина wrote:Причем парсить их надо сразу в базу данных и потом на оракловском rac-е в PL/SQL аналитическими функциями кранчить
PS. Или сдается мне, что это был сарказм? (с) почти "Человек с бульвара Капуцинов"

https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 1665
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: Яндекс Лабс в Palo Alto набирает С++ developers
Мы еще в 2003 в ip-телефонии балансер трафика гоняли с агрегатными функциями. И без кластера все бегало, не смотря на прорву транзакций и хитрую таблицу весов с ценами на разные регионы.Сабина wrote:Плюс видела своими глазами rac на 80 CPU который кранчил internet traffic в реальном времени и потом отлаженными аналитическими кверями считал распределение запросов, быстренько так знаете ли
Так же видел, как народ клепал кучу потоков с коммитами в каждом и аккуратно загибал гору железа в позу "зю". Потому как на джаве писать научились, а базам их никто научить не успел
