All streams
Search
Write a publication
Pull to refresh
8
0
Владимир @vladimir1211

User

Send message

Хочу сказать, что идея действительно интересная. По сути вы описываете систему в которой присутствуют 2 источника истины. Ведь каждый из участников системы имеет свой источник времени, а кодирование и декодирование являются функцией времени в этом случае. В таких системах краеугольным камнем, конечно, будет синхронизация источников истины. А существующая практика показывает, что системы с несколькими источниками истины весьма сложны в эксплуатации и вероятность ошибки слишком велика и дорога.
Если попробовать привести эту систему к системе с одним источником истины, то тогда нужно вместе с битом информации передавать смещение времени. Тогда наверное и сам бит передавать не нужно. Фактически смещение времени в этом случае будет являться индексом на определенное слово информации. Это может быть и бит, и байт, и несколько байт. А если оптимизировать запись смещения времени, то она и будет занимать столько же места, сколько занимает изначальная информация. Т.е. получится классическая/существующая передача данных.
Вопрос в том какой вариант выбрать. Ждать N тактов и потом передать завершающий бит или передавать всю последовательность?
Если взять идеальную систему, т.е. исключить издержки технической реализации, то классически за 1 такт можно передать 1 единицу информации, т.е. 1 бит. Если взять вариант с ожиданием времени, то за 1 такт можно "подождать" так же 1 бит. Получается, что при идеальных условиях будет затрачено одинаковое количество времени для обоих вариантов.
Если же выбрать вариант с ожиданием времени, то не нужно передавать ни куда ни какую информацию, в течение всего времени ожидания. Просто сиди и жди. Не нужно тратить мощности коммутаторов, маршрутизаторов, файерволов, которые разделяли бы источник и приемник. Звучит очень заманчиво. Но что, если вам нужно передать огромный объем данных, который должен передаваться, например, сутки. Если случится сбой на последней минуте, например, на приемнике информации, то нужно запускать процесс заново и ждать еще сутки. А вот если такой сбой произошел на классической/существующей модели, то, всего лишь, придется заново отправить недостающие пакеты. И конечное время не будет сильно отличаться от ожидаемого. Хотя для варианта передачи с ожиданием так же можно делить информацию на пакеты.
В общем, теоретически вариант кажется заманчивым, как минимум для того, чтобы разгрузить сетевое оборудование. Но как бы реализация не обошлась дороже.

Встретился еще с таким важным параметром для кластера "cluster.max_shards_per_node". До конца еще не разобрался, что конкретно он означает, но по достижению определенного количества индексов/объема данных в базе, новые данные перестали записываться в базу, а в логах появилась ошибка о том, что предел шардов (по умолчанию 3000) в кластере достигнут. Изменить максимальный предел шардов в кластере получилось такой командой из консоли:
curl -X PUT https://localhost:9200/_cluster/settings -H "Content-Type: application/json" -d '{ "persistent": { "cluster.max_shards_per_node": "1000000" } }' -u 'admin:yN-3L(GMmAAw' --insecure
Посмотреть что получилось можно такой командой:
curl -X GET https://localhost:9200/_cluster/settings -u 'admin:yN-3L(GMmAAw' --insecure

Спасибо за ваш комментарий! В документации я не нашел информацию о том, что такой способ фильтрации доступен в OpenSearch, хотя я применял этот способ в других системах. Значит всё таки можно отфильтровать пользователей внутри одного каталога в зависимости от группы, это здорово! Я попробую смоделировать конфигурацию из статьи с учетом фильтрации пользователей и дополню статью.

И что же по вашему произойдет если при копировании исходным объектом указать симлинк? Будет создана копия оригинального файла, на который ведет симлинк. Собственно бэкап и будет создан.

В целом спасибо за замечания. И, повторюсь как в комментарии выше. Я действительно не успел "отточить" некоторые инструкции. Статья получилась объемная.

По поводу создания пользователя opensearch. Это необходимо в п.2.2.8 "Запускает установочный скрипт от имени пользователя opensearch".

По поводу того, почему "mv", а потом "rmdir". Некоторые файлы не перенесутся, а скопируются. Вместо того, чтобы править права у этих файлов я поступил таким образом, в целом этот путь короче.

В целом, спасибо за замечания. Я действительно не успел "отточить" некоторые инструкции. Статья получилась объемная.

Мне показалось много эмоций в вашем комментарии) Вероятно у вас большой опыт в этой теме) Но вы не достаточно внимательно ознакомились с текстом. В любом случае спасибо за проявленный интерес и за советы.

  1. Зачем я использую Kafka я описал в начале статьи. Если у вас другая ситуация, то и схема естественно будет другая. И если вам не нужна Kafka, то не используйте её. В чем проблема?

  2. Как я и писал, вариантов выполнить эту задачу много. И опять же, в начале статьи я указал какой использую дистрибутив. Если вам нравятся другие подходы/инструменты пожалуйста, используйте их.

  3. Вот тут я с вами соглашусь. Этот шаг, так сказать, "рудиментарный". Остался от моих начальных тестов.

  4. А по вашему 80 порт больше чем 1024? Вы снова были невнимательны. Суть в том, чтобы использовать стандартный порт "80".

  5. Да, так и есть, я так об этом и написал "чтобы было больше порядка".

  6. За этот совет спасибо, я этим займусь.

  7. Да, суть вы не уловили, зачем применяются эти инструменты. Но я и не делал на этом акцент. Я настраиваю указанную схему, принимая её в большей степени как поставленную задачу. В целом logstash и kafka позволяют придать системе больше отказоустойчивости, а nginx я использую только для перенаправления порта. Конечно можно порт перенаправать и через файерволл, но мой опыт в настройке разных систем подсказывает мне этого не делать, а использовать nginx.

Спасибо за комментарий! На самом деле очень приятно, что коллеги, подсказывают дельные решения. На некоторые комментарии пока не могу ответить, потому что для этого нужно изучить объемный пласт информации. Собственно этим сейчас и занимаюсь.
Про хендлеры почитаем. Спасибо за замечание про таймаут! Заменили в «extensions_override_freepbx.conf» строку на:
exten => h,1,System(timeout 30 /home/asterisk/scripts/noanswer.sh ${CDR(uniqueid)} ${CALLERID(num)} ${NODEST} &)
А зачем писать в mysql еще что-то, если имеющихся в нём данных и так достаточно для решения задачи?
Согласен с вами полностью, просмотрели. Считаю, что так действительно будет быстрее:
res_sql="SELECT disposition FROM cdr WHERE uniqueid = '$1' AND disposition = 'ANSWERED'"
answer=`mysql -u freepbxuser -pPassword_freepbxuser -D asteriskcdrdb -B -N -e "$res_sql" | head -n 1`
Какая разница? Написано же «Крымский регион Украины», а Крым входит в состав РФ хоть для Федоры хоть для кого. Если кто-то считает иначе, то пусть попробует это юридически доказать.
Написано же «Крымский регион Украины». А Крым входит в состав РФ. Так что на Украине есть запрет. А на территории РФ, в том числе в Крыму, нет ни каких запретов.
Ошибка:
Заголовок окна: Сбой при восстановлении
Текст ошибки: В процессе копирования произошла ошибка (22). (Invalid argument)

Пробовал через FireWire (На Mac'е c OS X 10.7) и через загрузочную флешку (созданную с помощью ATI for Mac, на Mac'е c OS'ю10.9), результат всегда ошибка. На Mac'е установлена OS X 10.7. Все делал по инструкции http://support.apple.com/en-us/HT202841
Провел тест поверхности жесткого диска — все в порядке. Думал может Mac неисправен, но нет. С помощью описанного в данной статье метода все замечательно устанавливается. И сам Mac работает без нареканий.

Хотелось бы освоить метод с dmg, но пока вот такой результат.
Есть большие сомнения на счет того, что ATI for Mac имеет или имела такой же функционал по работе с образами как и ATI for Windows. Например в следующей статье Мультиплатформенная разработка True Image в пункте «Спасательный диск» сказано: «Также немного различается функциональность созданного загрузочного диска или флешки: Windows-версия позволяет как создавать бекапы, так и восстанавливать их, а «яблочная» версия предназначена только для восстановления». ATI for Mac нужно устанавливать на Mac и уже из Mac'а создавать образ, а это означает, что в образе будет установленный ATI for Mac. Думаю такой ход здорово помогает Acronis бороться с нелегальным использованием их продукта, но на деле это не всегда удобно.
Попробовал ваш метод. Подключил Mac к другому Mac'ку через FireWire. Зашел в дисковую утилиту, выделил физический диск и создал dmg файл. После этого удалил с тестируемого Mac'ка все разделы через Acronis Disk Director. Подключил снова тестируемый Mac через FireWire и через дисковую утилиту указал восстановить dmg на тестируемый Mac. Дисковая утилита сразу выдала ошибку 22 и закрыла окно восстановления. Повтор дал такой же результат. В результате диск остался пустым. Дисковая утилита может быть не умеет самостоятельно разделы создавать или есть иная причина? Подскажете, кто знает, в чем дело.
Про создание образов дисков штатными средствами OSX не в курсе, буду изучать вопрос. А ATI for Mac пробовал демо версию, аналогичная функция в нем отсутствует, т.е. нельзя загрузившись из под загрузочного ATI for Mac, создать образ жесткого диска, который потом можно было бы развернуть на чистом жестком диске.
Вероятно не хватило опыта, но создать цельный образ жесткого диска и развернуть его на другом отформатированном жестком диске с помощью Time Machine не удалось.

Information

Rating
Does not participate
Location
Россия
Registered
Activity