Рубрика «sync»

Выступление на Go 1.10 Release Party @ Badoo

Артемий Рябинков (Avito): Graceful Shutdown в Go-сервисах и как подружить его с Kubernetes - 1

Артемий рассказал про подходы к безопасному завершению работы многопоточных программ на Go, в частности о том, как контролировать горутины и управлять ими. Объяснил, почему во время выкатки сервисов в Kubernetes пользователям может возвращаться множество ошибок. Чтобы подробнее раскрыть, почему так происходит, схематично показал, как работает Kubernetes внутри, и почему он не позволяет сделать выкатку сервисов бесшовной.

Артемий Рябинков (АР): – Не считаю себя хорошим спикером – всего во второй раз выступаю, но, надеюсь, вам понравится.

Мне интересно, кто здесь собрался? Кто считает себя гуру в Go? Тяните руку!.. Вам не будет интересно. Всем остальным должно быть интересно – новичков здесь больше, поэтому, думаю, доклад зайдёт.

Тема простая – Graceful Shutdown. Мы хотим, чтобы наши сервисы завершались аккуратно.

Артемий Рябинков (Avito): Graceful Shutdown в Go-сервисах и как подружить его с Kubernetes - 2

Меня зовут Артемий, я работаю в «Авито», в команде мессенджера. В «Авито» мы используем Kubernetes, пишем на Go и PHP. На Go сейчас более активно стали, больше народу начинает писать. Появляется Boilerplate Go-шного сервиса, который начинает включать много функционала. Функционал, которого у нас раньше не было, но он появился – это Graceful Shutdown, и о нём я хочу рассказать (и почему он не работает в «Кубернетес»).Читать полностью »

Одним из нововведений в Go 1.9 было добавление в стандартную библиотеку нового типа sync.Map, и если вы ещё не разобрались что это и для чего он нужен, то эта статья для вас.

Для тех, кому интересен только вывод, TL;DR:

если у вас высоконагруженная (и 100нс решают) система с большим количеством ядер процессора (32+), вы можете захотеть использовать sync.Map вместо стандартного map+sync.RWMutex. В остальных случаях, sync.Map особо не нужен.

Разбираемся с новым sync.Map в Go 1.9 - 1

Если же интересны подробности, то давайте начнем с основ.

Читать полностью »

threads

Под напором появления новых асинхронных неблокирующихся фреймворков может показаться, что блокирующиеся вызовы — это пережиток прошлого, и все новые сервисы нужно писать на полностью асинхронной архитектуре. В этом посте я расскажу, как мы решили отказаться от неблокирующих асинхронных вызовов бэкендов в пользу обычных блокирующих.Читать полностью »

В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT).
Репликация без конфликтов: CRDT в теории и на практике - 1
Читать полностью »

Синхронизация закладок уже в бете Opera 28 - 1

Сегодня Opera 28 созрела до беты и готова для более широкого тестирования и ваших отзывов. Эта бета включает несколько интересных улучшений, в частности для для закладок. Например, теперь вы можете синхронизировать закладки между компьютерами или телефонами на Android и адресная строка теперь подсказывает, если что-то похожее есть в ваших закладках.Читать полностью »

Синхронизация закладок в Opera Developer

В недавней сборке Opera Developer 26 появилась долгожданная вами (и нами) синхронизация закладок — пока в исполнении для компьютеров, но картинка с телефоном как бы намекает. Эта реализация заменила ту, что некоторое время работала при включении из флагов. Новая синхронизация пока поживёт на канале Developer и переберётся в бету ближе к релизу.

Ответы на вопросы

Читать полностью »

Сегодня на Хабре мы представляем технологию реплицированной модели, которая позволяет создавать коллаборативные и реалтаймовые веб приложения так же легко, как локальные десктопные. Мы считаем, что при разработке приложений, синхронизация данных в реальном времени должна быть доступна так же, как TCP поток, HTTP запрос или ток из розетки — сразу и без вопросов. HTML5 приложения, написанные на Swarm, в части автономности, локальности и скорости загрузки не уступают нативным.
Используя библиотеку Swarm, за выходные мы делаем больше, чем за месяц делали без Swarm. Что важней — можем делать то, что без неё делать вообще не могли. Эту библиотеку синхронизации мы предлагаем совершенно бесплатно.

Holy Grail на стероидах: тотальная синхронизация и изоморфный JavaScript на Swarm.js

Сегодня мы выкладываем TodoMVC++, реактивное HolyGrail-на-стероидах приложение, написанное на Swarm+React. Приведу список демонстрируемых в приложении возможностей:
Читать полностью »

Давно не видел статей о BitTorrentSync, и очень удивляюсь: ведь это такой полезный инструмент. Буквально на днях вышла новая версия*, и я решил рассказать, как применил это решение на работе.

Как я использовал BitTorrent Sync между офисами в РФ и Китае

Начало

Однажды в нашей компании наступил момент, когда встала необходимость обмениваться довольно тяжёлыми файлами — макетами продукции и упаковки (100-500 мегабайт) между офисами в Москве, Екатеринбурге и офисом в провинции Чжэцзян, КНР. Сложность была в катастрофически низкой скорости и надёжности связи РФ — Китай.

Когда я обратил внимание на проблему, царил полный разброд и шатание:Читать полностью »

image
Мало кто знает, но уже несколько недель, как Mozilla обновила функцию синхронизации браузера. Было принято решение убрать неудобные секретные коды для синхронизации и пароли для восстановления утерянных ключей.
Читать полностью »

Доброго всем хабрадня!

Сегодня я хочу рассказать об одном из методов синхронной и асинхронной загрузки изображения из сети. Чтобы статья была не скучной, загруженные изображения мы попробуем каким-либо образом обработать средствами Qt.
Qt Software / Синхронная и асинхронная загрузка изображения из сети с последующей обработкой

Как будем загружать?

Для загрузки изображений мы будем использовать QNetworkAccessManager и QEventLoop, а так же немного мета-объектов. Загружать будем по HTTP изображение в любом формате, из поддерживаемых Qt. Ну, ещё будем обрабатывать редиректы.

Как обрабатывать-то будем?

Есть замечательный класс QGraphicsEffect с подклассами. Но мы с нимиЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js