powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / akka да. снова.
25 сообщений из 59, страница 2 из 3
akka да. снова.
    #39951866
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Баг Шредингера...

было бы смешно если бы я смог его репродакшн сделать стабильно :)
...
Рейтинг: 0 / 0
akka да. снова.
    #39951867
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня своя слабая теория. О том что логгирование слегка
замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас.
Выключил - херак... стрельнул баг.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951896
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть у меня своя слабая теория. О том что логгирование слегка
замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас.
Выключил - херак... стрельнул баг.


У вас Kafka?
Помниться у меня был прикол с Kafka.
Работал на домашнем ноутбуке с HDD. У меня постоянно в приложение вылетало с ошибкой.
У других был SSD - все было нормально.
В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи.
Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись.
Возможно у вас подобная ситуация.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951903
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Я юзал только Apache-MQ. И гонки за состояниями я наблюдал вобщем не в мессенжинговых системах.
А вообще. В любых. Очень похоже на мистику, когда ты смотришь на проблему с измерительным прибором
- проблема прячется.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951906
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи.
Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись.

А это очень похоже на некорректную работу с файлами. Грубо говоря с файлом
пытались работать как с базой данных. А он - не таков.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951921
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С точки зрения файловой системы даже close() файла еще не гарантирует
полной конситентности. Нужно форсировать fsync.

http://man7.org/linux/man-pages/man2/fsync.2.html

А это накладные расходы для все файловой системы в целом.
Вобщем Роберт Лав в своей книжке по Linux Kernel пишет про это.

А если мы работаем с файлом который постоянно открыт и просто
что-то дописывает в хвост то здесь работает как минимум несколько
логических буферов. И очень сложно формально доказать что
то что один процесс записал - второй уже может видеть.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951931
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
С точки зрения файловой системы даже close() файла еще не гарантирует полной конситентности.
Если требуется только возможность прочитать записанное, то нужна не консистентность, а доступность изменений. И тут начинаются разные ньюансы.Нужно форсировать fsync.Чтобы уронить производительность ниже плинтуса? Да, нужно. Во всех остальных случаях надо смотреть разные ньюансы.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951942
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
а может такое быть что мессадж просто пропал и всё тут.?

Попробую глянуть на этот смотрящий актор.

Вот здесь даже красивая форма для печенек есть https://developer.lightbend.com/start/?group=akka&project=akka-quickstart-java
...
Рейтинг: 0 / 0
akka да. снова.
    #39951955
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В туториале этот момент не акцентирован.

Вот в документации есть упоминание о двух стратегиях. Это где-то инкапсулируется в конфиг всей системы.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951975
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему меня это заинтересовало. В смежом топик я ковырял протокол DHT/KAD (на сетевом уровне - это UDP).
Вот. И работа с ним очень похожа на акторную модель. Клиент DHT слушает эфир. Принимает пакеты. Ретранслирует.
И отдает контент файлами если его попросят. Файлы там уже передаются по другому протоколу но это не суть важно.

Основная логика поиска нодов и хешей которые они хранят реализована буквально в 4 командах протокола.
И у меня как-то была рассеянная идея о том что эту штуку переписать под Akka. Сценарии когда пакет битый
и его невозможно обработать - можно спокойно игнорировать. Тоесть как-бы есть налицо такая-себе отказоустойчива
парадигма.
...
Рейтинг: 0 / 0
akka да. снова.
    #39951983
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
mad_nazgul

В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи.
Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись.

А это очень похоже на некорректную работу с файлами. Грубо говоря с файлом
пытались работать как с базой данных. А он - не таков.


Да в старых версиях клиента Kafka, он посылал на запись, а потом проверял записано или нет.
В общем какая-то корявая эмуляция синхронной/транзакционной записи.
В настройках стоял таймаут, когда проверить записано или нет.
Неделю потратил, чтобы догадаться что и где поменять.
Причем ошибка ни разу не понятная.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952152
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Dead-Letter-Queue все таки есть в Akka.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952160
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Само собой есть, иначе бы я не просил его проверять)
Касаемо топика то проблема на 99 процентов в прикладном коде, но за неимением оного трудно телепатировать
...
Рейтинг: 0 / 0
akka да. снова.
    #39952243
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
API SQS предполагает двухфазную работу с месседжами. Сначала вычитал. Потом обработал
и потом дал команду delete для тех ID msg которые обработал.

На время вычитки месседжи скрыты и другие потоки их не могут видеть. Если в течение
таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся
видны для других lambda-функций или просто логики AWS API.

Преимущество этой схемы таково что неправильно обработанное сообщение будет бесконечно
кувыркатся в исходной очереди пока вы не обратите на это внимание.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952280
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-
...
Рейтинг: 0 / 0
akka да. снова.
    #39952286
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если в течение таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся
видны для других lambda-функций или просто логики AWS API.
Гонка между "закончил обработку" и "удалил сообщение".
Поймать сложно, но уж если поймаете - будет весело избавляться от повторной обработки одного и того же сообщения.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952289
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mayton
Если в течение таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся
видны для других lambda-функций или просто логики AWS API.
Гонка между "закончил обработку" и "удалил сообщение".
Поймать сложно, но уж если поймаете - будет весело избавляться от повторной обработки одного и того же сообщения.

Там нет гонок. Там есть аномалия - сообщение повторно зашло в цикл обработки.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952291
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там нет гонок. Там есть аномалия - сообщение повторно зашло в цикл обработки.
Аномалия и есть следствие гонок.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952298
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче плюнул на эту дичь и просто прикрутил еще одно событие на которое отсылается мессадж. если не заработает - примотаю ретрайпаттерн. приложение на ваадине. оно переживет
...
Рейтинг: 0 / 0
akka да. снова.
    #39952316
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT, это говнокод.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952324
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
andreykaT, это говнокод.

а юзать общение между слоями через методы которые не гарантируют ответа норм? пихать асинхронку там где нужна синхронка но так как асинхронка не подходит превращать ее в синхронку это норм? )
...
Рейтинг: 0 / 0
akka да. снова.
    #39952330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подожди-подожди... Ты решил реформировать государство - но начал с парикмахерской.

Мы-же не видели твой код. Я согласен что там может быть треш-угар и содом. Тогда его
просто надо переписать.

Но ретрай-паттерн предназначен для неустойчивого сетевого соединения в основном или
когда логика написана так что даёт отлуп по загрузке или по таймауту.

Вот почему я сильно сомневаюсь что ретрай-паттерн подходит. Кроме того он вносит
некую кумулятивную составляющую и тебе надо доказать что твоя система следует
идемпотентности и не боится дважды запросессить одну и ту-же бизнес логику.

P.S. Вот повесишь на 1 человека 2 одинаковых кредита...
...
Рейтинг: 0 / 0
akka да. снова.
    #39952551
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вкратце там тупо комбобокс со списком доступных опций юзеру который щас залогинен.

как оно строится - рендерится вьюха, рисуется комбобокс, рисовалка комбобокса шлет акка мессадж в репозиторий, который (ахтунг!) стучится в кафку которую используют как бд, достает оттуда список доступных опций, возаращает его репе, репа шлет мессадж рисовалке комбобока через акку, рисовалка его получает и вкладывает данные в уже нарисованный комбобокс.
всё, вьюха готова.

но вот незадача - в той цепочке сверху происходит сбой и ответ приходит например, никогда. причем вполне ответ может и не уходить потому что гонки.

решение номер один - найти где затык и устранить его.
решение номер два (проще) - слать дозапрос если список пуст.

если мы предполагаем в голове что акка не гарантирует доставку то оба варианта дерьмо. первый все же красивее.
второй ну - на него точно так же ответ может и не приходить :)

решение номер три - пилим ретрай и долбим мессаджами до тех пор пока не придет или пока долбилка не устанет.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952554
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я как то в проде встречался с фиксом гонок таким образом, что чел просто в методе вызов нескольких нестед методов (рейс изза которых и возникал) просто подвинул поближе друг к другу :) оно заработало. гонки в корне конечно такое решение в принципе убрать не могло. но оно их вероятность снизило до удовлетворительного уровня.

зы. согласен - решение не очень.
...
Рейтинг: 0 / 0
akka да. снова.
    #39952558
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть у меня своя слабая теория. О том что логгирование слегка
замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас.
Выключил - херак... стрельнул баг.

да блин да. тоже такое чувство что эта теория вовсе не теория. до логирования оно хоть как то повторялось. после - перестало.
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / akka да. снова.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]