Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы

Какое же говно многопроцессность в питоне -- даже когда надо всего-то навсего распараллелить очевидную хуйню (удаление данных из кучки риак-бакетов) -- всё равно оно где-то виснет, хуёво работает, при нажатии на Ctrl+C срёт тонны стек-трейсов по 15 минут.

Рекомендовали: @autism
#ZP59O7 / @kb / 3818 дней назад

зачем люди используют питон? inb4: за зарплату
#ZP59O7/M0S / @hirthwork / 3818 дней назад
эт+оперативно // что использовал?
#ZP59O7/CI8 / @238328 / 3818 дней назад
@hirthwork тупой штоле
#ZP59O7/HBK / @ulidtko --> #ZP59O7/M0S / 3818 дней назад
@ulidtko да, не могу в питон
#ZP59O7/JNY / @hirthwork --> #ZP59O7/HBK / 3818 дней назад
Нужно было пользовать руби. http://img26.imageshack.us/img26/5161/trollfaceli.jpg
#ZP59O7/ORI / @lord / 3818 дней назад
@lord пик к
#ZP59O7/2NW / @238328 --> #ZP59O7/ORI / 3818 дней назад
@hirthwork Ну на нём тесты удобнее писать же.
#ZP59O7/YJ6 / @kb --> #ZP59O7/M0S / 3818 дней назад
@kb пишу тесты на java. ЧЯДНТ?
#ZP59O7/YS0 / @hirthwork --> #ZP59O7/YJ6 / 3818 дней назад
@238328 Ну удаляю между тестами всё из риака. Риак -- прекрасная база данных, чтоб удалить -- надо послать DELETE запрос и ждать в цикле. Естественно, при 10ти коллекциях удаление секунд 20 происходит, хотел распараллелить.
#ZP59O7/S3W / @kb --> #ZP59O7/CI8 / 3818 дней назад
@kb и что пошло не так?
#ZP59O7/KYF / @238328 --> #ZP59O7/S3W / 3818 дней назад
@hirthwork пишешь тесты
#ZP59O7/Y72 / @238328 --> #ZP59O7/YS0 / 3818 дней назад
@hirthwork Да хоть на 1С, мне-то что.
#ZP59O7/1AH / @kb --> #ZP59O7/YS0 / 3818 дней назад
@238328 питон
#ZP59O7/KO9 / @hirthwork --> #ZP59O7/KYF / 3818 дней назад
@kb почему ты не используешь 1С для написания тестов?
#ZP59O7/G0X / @hirthwork --> #ZP59O7/1AH / 3818 дней назад
@238328 Время, которое необходимо риаку, чтоб из него удалить последовательно все данные. Перед каждым тестом ждать 15 секунд (примерно) как-то хуёво.
#ZP59O7/8CA / @kb --> #ZP59O7/KYF / 3818 дней назад
@kb не, я про говно на питоне; чо там плохо
#ZP59O7/EUS / @238328 --> #ZP59O7/8CA / 3818 дней назад
@hirthwork Потому что пацаны сказали надо на джаве, буду на джаве в следующий раз.
#ZP59O7/C7Q / @kb --> #ZP59O7/G0X / 3818 дней назад
@hirthwork ненорм ему
#ZP59O7/I9E / @238328 --> #ZP59O7/KO9 / 3818 дней назад
@kb на свифт же
#ZP59O7/7Q0 / @238328 --> #ZP59O7/C7Q / 3818 дней назад
@238328 Вот хуй его знает, казалось бы, вот код: ``` def clear_riak(): buckets = [ "foo", "bar", ...] map(clear_riak_bucket, buckets) ``` Вместо этого делаю: ``` p = Pool(20) p.map(clear_riak_bucket, buckets) ``` И оно почему-то по завершению этого p.map не убивает процессы, потом иногда начинает вдруг зависать (на следующем тесте), при Ctrl+C стандартная питоновская хуйня с простынёй, от которой виснет консоль. Кароч, лень копаться в этом говне, может скоро на хаскеле вспомагательную утилиту напишу.
#ZP59O7/E6O / @kb --> #ZP59O7/EUS / 3818 дней назад
>riak >python пошол нахуй норкаман
#ZP59O7/2HG / @anonymous / 3818 дней назад
@anonymous Уау, ЛОРовские эксперты подтянулись.
#ZP59O7/RBJ / @kb --> #ZP59O7/2HG / 3818 дней назад
@238328 На свифте под андроид даже не попишешь, ты чё.
#ZP59O7/5QN / @kb --> #ZP59O7/7Q0 / 3818 дней назад
@kb пруф или попишешь // cider
#ZP59O7/VZD / @anonymous --> #ZP59O7/5QN / 3818 дней назад
@anonymous пруф или // pider
#ZP59O7/9RA / @kb --> #ZP59O7/VZD / 3818 дней назад
@kb чем тебя эрланг-то не устраивает, болезный?
#ZP59O7/11V / @anonymous --> #ZP59O7/RBJ / 3818 дней назад
@kb ну лан, ща кароч
#ZP59O7/YZW / @238328 --> #ZP59O7/E6O / 3818 дней назад
@anonymous не понял вопрос. Зачем мне эрланг?
#ZP59O7/2W4 / @kb --> #ZP59O7/11V / 3818 дней назад
@kb чтобы ещё и с ним поебаться
#ZP59O7/EQA / @hirthwork --> #ZP59O7/2W4 / 3818 дней назад
@238328 а бля, у тебя же 2 // кароч нафиг multiprocessing.pool тебе, скачай бэкпорт futures
#ZP59O7/SZB / @238328 --> #ZP59O7/YZW / 3818 дней назад
@hirthwork Видимо так. У нас эрланг есть, на нём много разного map-reduce делается в риаке, но я его собираюсь убрать, т.к. оказалось проще (а главное -- удобнее) хаскелем тупо всё выгребать и процессить. // но надо было на джаве, конечно
#ZP59O7/4LM / @kb --> #ZP59O7/EQA / 3818 дней назад
@238328 Та кароч, лучше напишу отдельную прогу "riak-flushall". Всё равно скоро буду писать riak-import/riak-export утилиты как раз.
#ZP59O7/JED / @kb --> #ZP59O7/SZB / 3818 дней назад
@kb > прогу пруф или 140 символов на баше
#ZP59O7/DPZ / @238328 --> #ZP59O7/JED / 3818 дней назад
@238328 Я по-пацански, шоб через протокол бафферс, с максимум эффективности.
#ZP59O7/Z5R / @kb --> #ZP59O7/DPZ / 3818 дней назад
@238328 пруф или 140 символов на бээнваше
#ZP59O7/YDR / @anonymous --> #ZP59O7/DPZ / 3818 дней назад
@anonymous Пишу только на cider
#ZP59O7/CRL / @kb --> #ZP59O7/YDR / 3818 дней назад
@kb по-пацански это отказаться от любого неработающего говна и написать своё с нуля
#ZP59O7/1N2 / @238328 --> #ZP59O7/Z5R / 3818 дней назад
@238328 Неработающее говно -- это я.
#ZP59O7/T21 / @kb --> #ZP59O7/1N2 / 3818 дней назад
@kb ну так перепиши, или не пацан?
#ZP59O7/FKA / @238328 --> #ZP59O7/T21 / 3818 дней назад
@238328 protobuf — говно и не нужно. мы с него пересели на json. куда более удобная штука для сериализации
#ZP59O7/XA8 / @hirthwork --> #ZP59O7/1N2 / 3818 дней назад
@hirthwork define удобная
#ZP59O7/GPW / @238328 --> #ZP59O7/XA8 / 3818 дней назад
@hirthwork json медленный и вообще //
#ZP59O7/NBJ / @238328 --> #ZP59O7/XA8 / 3818 дней назад
@238328 у тебя что-то не работает @ запускаешь tcpdump @ видишь что же пошло при сериализации не так и какие объекты у тебя по сети ходят
#ZP59O7/JLY / @hirthwork --> #ZP59O7/GPW / 3818 дней назад
@238328 define медленный
#ZP59O7/E3K / @hirthwork --> #ZP59O7/NBJ / 3818 дней назад
@hirthwork почему не xmpp?
#ZP59O7/YSI / @anonymous --> #ZP59O7/JLY / 3818 дней назад
@hirthwork Ты тролль, скажи честно? Таким как ты нужно только людей злить, ни на какие конструктивные дискуссии вы не способны, потому что ущербные и можете только троллить людей и злить их.
#ZP59O7/LPH / @kb --> #ZP59O7/XA8 / 3818 дней назад
@hirthwork требует лишних (необязательных) операций от декодера
#ZP59O7/WSU / @238328 --> #ZP59O7/E3K / 3818 дней назад
@hirthwork настрой логирование
#ZP59O7/TF3 / @238328 --> #ZP59O7/JLY / 3818 дней назад
@kb будет в том треде
#ZP59O7/4CI / @238328 --> #ZP59O7/LPH / 3818 дней назад
@kb я не тролль. честно. мы честно пересели с протобуфа на json и ни разу об этом не пожалели
#ZP59O7/MNU / @hirthwork --> #ZP59O7/LPH / 3818 дней назад
@238328 переходи уже к конкретике, не юли
#ZP59O7/UEQ / @hirthwork --> #ZP59O7/WSU / 3818 дней назад
@kb tfw говоришь "у нас", а на самом деле пилишь проект в одиночку давно
#ZP59O7/DZK / @kb --> #ZP59O7/4LM / 3818 дней назад
@hirthwork запускаеш tcpdump @ читаеш xml
#ZP59O7/SSM / @anonymous --> #ZP59O7/NCT / 3818 дней назад
@hirthwork TIL разные инструменты годятся для разных задач, кто бы мог подумать а я думал есть САМЫЙ ЛУДШИЙ НА ЗИМЛЕ
#ZP59O7/S0Y / @238328 --> #ZP59O7/MNU / 3818 дней назад
@kb don't know that feel, bro
#ZP59O7/O2M / @hirthwork --> #ZP59O7/DZK / 3818 дней назад
@anonymous у xml слишком большой оверхед по размеру при сериализации
#ZP59O7/C94 / @hirthwork --> #ZP59O7/SSM / 3818 дней назад
@238328 самого лучшего нет, но я не понимаю зачем продолжать жрать протобуф
#ZP59O7/RRM / @hirthwork --> #ZP59O7/S0Y / 3818 дней назад
@hirthwork Просто я говорю "протобуф" потому что с риаком можно общаться через хттп, а можно -- через протобуф. Чтоб удалить что-то из бакета -- нужно каждому объекту послать запрос на удаление. Потому протобуф выбирается тупо для скорости в данном случае, ну и с т.з. драйвера разницы в удобстве нету никакой, потому не очень понятно при чём здесь.
#ZP59O7/AA2 / @kb --> #ZP59O7/MNU / 3818 дней назад
@hirthwork сорь, не могу найти уважаемую блогозапись к моим аргументам
#ZP59O7/2P3 / @238328 --> #ZP59O7/UEQ / 3818 дней назад
@238328 узнал блогозапись по прописи раба Божьего
#ZP59O7/5J4 / @kb --> #ZP59O7/2P3 / 3818 дней назад
@anonymous ффу
#ZP59O7/MEQ / @238328 --> #ZP59O7/SSM / 3818 дней назад
@hirthwork не знаю, не использовал
#ZP59O7/C05 / @238328 --> #ZP59O7/RRM / 3818 дней назад
@kb > можно общаться через хттп, а можно -- через протобуф протобуф не является протоколом передачи данных, это протокол сериализации. в итоге ты всё равно вынужден открывать сокет и писать в него сериализованные данные. и кстати, да. json мы отсылаем телом HTTP POSTа. мы делаем это тысячи раз в секунду и я не понимаю почему ты считаешь что упираешься в протокол передачи данных, а не хранилище. Разница в том что снятый tcpdump с HTTP-сессиями легко читается, а в случае протобуфа тебе приходится в уме парсить протобуф, чтобы понять (и таки да, спустя полтора года я вполне себе уже научился протобуф в уме парсить)
#ZP59O7/F0X / @hirthwork --> #ZP59O7/AA2 / 3818 дней назад
@hirthwork что мешает кодировать в asn.1 через x.695?
#ZP59O7/ZME / @anonymous --> #ZP59O7/C94 / 3818 дней назад
@hirthwork двачую
#ZP59O7/EU2 / @238328 --> #ZP59O7/F0X / 3818 дней назад
многопроцессорность — для быдла, это все знают поэтому я использую файрфокс
#ZP59O7/JKP / @238328 / 3818 дней назад
@hirthwork Ну блять, понятно что "шо то tcp -- шо это tcp". Тем не менее protobuf-драйвер ощутимо быстрее, при том что снимать tcpdump смысла не вижу, если честно (если надо -- программа может логировать хоть в жсон хоть во что). По поводу "упирается" -- ты прав, упирается хер знает во что, наверное можно и на HTTP-API сделать основное ускорение, протобуф я упомянул как "ещё более лучший" вариант.
#ZP59O7/W4S / @kb --> #ZP59O7/F0X / 3818 дней назад
@238328 Будущее за безъядерными процессорами.
#ZP59O7/4IA / @kb --> #ZP59O7/JKP / 3818 дней назад
@kb пруф или на моче+говно(жс)
#ZP59O7/TIQ / @krkm --> #ZP59O7/C7Q / 3818 дней назад
@kb > ждать в цикле ?
#ZP59O7/B56 / @krkm --> #ZP59O7/S3W / 3818 дней назад
@238328 только если написан не на джаве и не @hirthwork'ом
#ZP59O7/0NQ / @krkm --> #ZP59O7/NBJ / 3818 дней назад
@anonymous потому что нет истории+проебывает сообщения+жрет батарейку
#ZP59O7/PHI / @krkm --> #ZP59O7/YSI / 3818 дней назад
@hirthwork > мы вангую овуляшку
#ZP59O7/5D6 / @krkm --> #ZP59O7/MNU / 3818 дней назад
@polecat > дропай всю базу //тупой штоле. как? > ты ебанутый. //на самом деле basho //на самом деле ты. научи как надо
#ZP59O7/3SH / @kb --> #ZP59O7/IME / 3818 дней назад
@autism ``` map(clear_riak_bucket, buckets) map(wait_riak_bucket_cleared, buckets) def clear_riak_bucket(bucket_name): bucket = riak_cli.bucket(bucket_name) keys = bucket.get_keys() for key in keys: bucket.get(key).delete() def wait_riak_bucket_cleared(bucket_name): bucket = riak_cli.bucket(bucket_name) keys = bucket.get_keys() attempts_left = 3 while keys and attempts_left: # print '> bucket ' + bucket_name + ', attempts_left: ', attempts_left keys = bucket.get_keys() attempts_left -= 1 time.sleep(0.1) ``` АРХИТЕКТУРА @ РЕШЕНИЯ
#ZP59O7/47I / @kb --> #ZP59O7/B56 / 3818 дней назад
@kb бля, лишний get_keys() кароч, ну похуй, поправлю
#ZP59O7/ZJK / @kb --> #ZP59O7/47I / 3818 дней назад
@polecat чому?
#ZP59O7/EKP / @kb --> #ZP59O7/135 / 3818 дней назад
@polecat бля, ну может удалять папочку и буду, вариант канеш
#ZP59O7/VAE / @kb --> #ZP59O7/ZQ3 / 3818 дней назад
@polecat хотя приличный мужчина свою папочку должен беречь, я считаю
#ZP59O7/SJV / @kb --> #ZP59O7/ZQ3 / 3818 дней назад
@polecat мне надо вынуть данные по range-index-запросу и вставить локально, с целью потестировать на продакшн-данных. он так умеет?
#ZP59O7/T3F / @kb --> #ZP59O7/7YA / 3818 дней назад
@polecat > восстанавливает состояние обьекта на каждой ноде мне это не надо, у меня локально одна нода (больше не надо)
#ZP59O7/N62 / @kb --> #ZP59O7/7YA / 3818 дней назад
@polecat мне надо по-настоящему оттестировать, а не моками-хуёками, плюс программа сама на хаскеле, там это всё ебля (а для юнитов и так QuickCheck уже есть).
#ZP59O7/XNE / @kb --> #ZP59O7/XHZ / 3818 дней назад
@polecat в случае riak-import/riak-export буду профилировать а не тестировать
#ZP59O7/4DE / @kb --> #ZP59O7/E9J / 3818 дней назад
@polecat блять, уже сто раз меня это тестирование выручало от многочасовой ебли и дебагом на продакшне (с tcpdump'ом json'ов гг), а ты мне всё про "хуйнёй маешься"
#ZP59O7/7DH / @kb --> #ZP59O7/Z1H / 3818 дней назад
@kb да похуй всем, что там тебя выручало. ты **доставляешь страдания** здешним аутистом, а это хуже всего вообще
#ZP59O7/9MS / @krkm --> #ZP59O7/7DH / 3818 дней назад
@kb показалось, что `@autism` это такой декоратор
#ZP59O7/OQB / @238328 --> #ZP59O7/47I / 3818 дней назад
@kb просто ебашь на gevent @ манкипатчь глобальное говно @ проходи тесты
#ZP59O7/DFM / @238328 --> #ZP59O7/7DH / 3818 дней назад
@polecat у меня дело было в питоне как раз (если не через папочку)
#ZP59O7/RFJ / @kb --> #ZP59O7/V23 / 3817 дней назад
@polecat удобно (кроссплатформенно)
#ZP59O7/DDS / @238328 --> #ZP59O7/TZS / 3817 дней назад
@polecat вы так говорите как будто это плохо
#ZP59O7/TAE / @kb --> #ZP59O7/TZS / 3817 дней назад
@238328 ``` def autism(f): pass ```
#ZP59O7/PSD / @kb --> #ZP59O7/OQB / 3817 дней назад
@kb уау, раскрыта тайна десятилетия
#ZP59O7/9Z2 / @238328 --> #ZP59O7/PSD / 3817 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.