Все потоки
Поиск
Написать публикацию
Обновить
17.87

Распределённые системы *

Нюансы проектирования распределенных систем

Сначала показывать
Порог рейтинга
Уровень сложности

Что такое эксплореры блокчейна. Как читать историю транзакций в обозревателе блоков

Время на прочтение5 мин
Количество просмотров16K
Читать далее

Взлетаем с управляемым кластером Kafka в #CloudMTS. Несколько советов для старта

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K
image

Привет, Хабр!

Меня зовут Дмитрий Быстриков, я Technical Product Owner в команде Managed Service for Apache Kafka в #CloudMTS. Сегодня я расскажу, что умеет наша Kafka и чему научится в ближайшее время. Для тех, кто дочитает до конца, я приготовил несколько советов от наших инженеров по настройке кластера. Если интересно, прошу под кат.

Читать дальше →

Распределенный SQL: альтернатива шардированию баз данных

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров20K

Шардирование баз данных – это процесс разделения данных на меньшие части, называемые «шарды». Эта техника обычно используется, когда возникает потребность в масштабировании записей. В течение жизненного цикла успешного приложения способность сервера его базы обрабатывать операции записи рано или поздно достигает своего предела. Деление данных на несколько шардов – с размещением каждого на собственном сервере БД – уменьшает нагрузку на отдельные узлы, по сути, повышая записывающую способность базы данных в целом. Этот процесс и является шардингом.

Распределённый SQL представляет новый способ масштабирования реляционных баз данных с помощью полностью автоматизированной и прозрачной для приложений стратегии, подобной шардингу. Распределённые БД SQL изначально спроектированы под практически линейное масштабирование. В текущей статье вы познакомитесь с основами распределённого SQL и узнаете, как начать работу с этими базами данных.
Читать дальше →

Retry or No?

Время на прочтение17 мин
Количество просмотров9.9K

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

Читать

Federated Pruning для Federated Learning

Время на прочтение7 мин
Количество просмотров1.1K

Эта публикация является компиляцией изученных материалов по теме и писалась с целью в материале разобраться и упорядочить собственные знания – такой аналог реферата/курсовой. Т.к. исходный материал в основном на английском, возможно, данная статья кому-то также будет полезна.

Вместо пролога

Federated Learning – подход к решению задач машинного обучения, который позволяет анализировать данные непосредственно в их источниках, не объединяя их на каком-то центральном ресурсе, а объединяя уже результаты таким способом, чтобы итог обучения был не хуже, чем в традиционных подходах.

Есть две «легенды» появления FL. Первая рассказывает о данных столь больших, что обучение на них занимает недели и даже месяцы. Данные стали разбивать на части. Затем части отдавать отдельным вычислительным узлам. Затем данные перестали собирать и стали обрабатывать прямо в источниках.
Вторая «легенда» – о конфиденциальности тренировочных данных. Трудности обезличивания данных (как ни хэшируй, а информацию с конкретным объектом можно сопоставить, особенно если количество наблюдений в источнике невелико) привели к мысли передавать не сами данные, а результаты обучения на них.

(«Легенды» – потому что у всякой версии есть примеры обратного: медицинские данные не велики, а наоборот, малы и трудно собрать их в одном месте – какое уж тут разбиение, тут проблема в том, что для глубокого обучения такие малые выборки не дадут хорошей эффективности, нужно не данные обрабатывать, а развивать методы машинного обучения на малых данных.)

Читать далее

Движение по магистрали без аварий. Или как передавать 1,5 терабайта в сутки и ни одного не потерять?

Время на прочтение3 мин
Количество просмотров3K

Привет, Хабр.

Меня зовут Владимир Евсеев, я Senior Java developer, Teamlead в SSP SOFT.

Наша команда приступила к масштабному проекту: системе, обеспечивающей транспортный уровень документооборота банка. Сегодня я расскажу, как мы справились с первым этапом: выстроили магистраль, способную передавать около 150 000 файлов в сутки, или 1,5 терабайта информации. Поделюсь, что получилось и что еще предстоит  довести до совершенства.

Читать далее

Мульти-прокси смарт контракт стандарта EIP-2535 «Diamond»

Время на прочтение28 мин
Количество просмотров2.9K

Ссылка на видео-туториал и подробное объяснение

GitHub

В этом материале речь пойдет про стандарт EIP-2535, также широко известен как Diamond или Multi-Facet Proxy. Стандарт дает возможность создавать модульные, обновляемые смарт контракты, которые обладают рядом преимуществ перед такими стандартами обновляемых контрактов как Transparent и UUPS.

Читать далее

Что такое блокчейн-мост и какие риски он в себе таит?

Время на прочтение8 мин
Количество просмотров12K

В 2022 г. в результате хакерских атак блокчейны потеряли токенов более чем на 1 млрд. долларов США. Самые крупные ограбления произошли в результате атак на блокчейн-мосты. Что такое блокчейн-мост? Какие уязвимости он в себе таит? Есть ли у этой технологии будущее?

Читать далее

Введение в архитектуру Greenplum

Время на прочтение5 мин
Количество просмотров18K

В этой статье поговорим о Greenplum — СУБД, основанной на PostgreSQL. Разберём её общую архитектуру, способы хранения данных, а также перечислим проблемы, с которыми можно столкнуться в ходе эксплуатации.

Читать далее

Как выбрать NewSQL-СУБД для вашей компании

Время на прочтение7 мин
Количество просмотров8.1K

Привет! Меня зовут Пётр, я менеджер по отказоустойчивости в QIWI. В этом посте мы поговорим про выбор новых классов продуктов. Как-то раз мы с одним разработчиком из другой компании стали обсуждать, почему бы не выбрать для работы какую-то распределенную СУБД, поддерживающую SQL? Из этой дискуссии родился мой доклад для нашей QIWI Server Party. Представляю вам его текстовую версию.

Читать далее

Как и зачем шардировать смарт контракты в блокчейне TON — разбираемся, как устроены жетоны (Jettons)

Время на прочтение16 мин
Количество просмотров9.4K

В статье - о механизме шардинга (распределения данных) смарт-контрактов в блокчейне TON.
Это именно то дизайн-решение, которое потенциально позволит TON обслуживать миллиарды пользователей без деградации в скорости и цене транзакций.
Жетоны (Jettons) - TON'овский аналог ERC20 токенов из Ethereum.

Узнать больше

Микросервисы на основе событий с Dapr

Время на прочтение11 мин
Количество просмотров6.4K

Системы оркестрации контейнеров существенно упростили управление многокомпонентными системами, в том числе основанными на микросервисной архитектуре. Но остался открытым вопрос организации надежного обмена сообщениями между микросервисами, координации последовательности операций при распределенной архитектуре. В этой статье мы рассмотрим подход Incubating (CNCF)-проекта Dapr (Distributed Application Runtime) по использованию Sidecar-контейнеров в Kubernetes для реализации микросервисной архитектуры, основанной на событиях. 

Читать далее

Как работают объектные хранилища: объясняем на практике и собственных шишках

Время на прочтение11 мин
Количество просмотров21K

Объектные хранилища сейчас повсюду. До прихода в Selectel я лишь знал, что они живут в облаках, сложно тарифицируются, а Amazon снова впереди планеты всей… Но, если подумать, так можно сказать почти про любую облачную услугу, и это не расскажет нам о ее реальных особенностях.

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

Попытки понять природу непривычных ограничений порождают лишь новые вопросы: почему можно удалять только пустой контейнер? Почему нельзя быстро перенести большой объем данных из одного контейнера в другой? Да и вообще, что это за название такое — объектные — и какая магия творится под капотом?

На связи Рома из команды объектного хранилища Selectel, и я изучил наш опыт разработки и поддержки такого продукта на протяжении 10 лет. Под катом находится первая часть истории, где я поделюсь своими открытиями о теоретической части вопроса.
Читать дальше →

Ближайшие события

Обновляемые смарт-контракты: Что это такое и как создать свой собственный. Часть 2

Время на прочтение11 мин
Количество просмотров3.9K

В первой теоретической части мы поговорили про то, что такое обновляемый смарт-контракт и как работают обновления.

Напомним, что большинство вещей всегда требует некоторого обновления. Но тогда данные, хранящиеся в блокчейн, неизменяемы. Так как же тогда смарт-контракты могут быть обновляемыми?

Короткий ответ заключается в том, что смарт-контракты сами по себе не могут изменяться - они постоянны и неизменяемы после развертывания на блокчейне. Но dApp может быть разработан таким образом, чтобы один или несколько смарт-контрактов работали вместе, обеспечивая его "бэкенд". Это означает, что мы можем обновить схему взаимодействия между этими смарт-контрактами. Модернизация смарт-контракта не означает, что мы изменяем код развернутого смарт-контракта, а означает, что мы меняем один смарт-контракт на другой. Мы делаем это таким образом, что (в большинстве случаев) конечному пользователю не придется менять способ взаимодействия с dApp.

Читать далее

Сделай сам: ОМС и МИС на коленке

Время на прочтение4 мин
Количество просмотров2K

ИТ в медицине — достаточно скользкая тема. Нужно отметить, что за последние 10 лет реально растет "проникновение" (как выражаются бюрократы) ИТ в медицину и в здравоохранение в целом. Спецы, работающие в линейных МО (мед. организациях), не дадут соврать. Мне даже представляется, что РФ не то, что отстает, но даже где-то и опережает глобальные тренды. Правда, на мой взгляд, есть разрыв между собственно технологиями и уровнем подготовки и мотивации пользователей, для которых они создаются. Ну и сами ИТ решения не всегда решения, а, скорее, головная боль

Любой МО нужен софт, и не просто бухгалтерский 1С, управление торговлей и CRM, нужен специализированный, МИСы (медицинские информационные системы), и не одна. Нужно вести учет приема пациентов, как-то получать, анализировать и хранить диагностические данные (изображения, графики, результаты анализов, и много чего еще), вести карты с записями о болезнях и т.д. и т.п.

Если МО участвует в программе обязательного мед. страхования (ОМС), она должна ежемесячно формировать и отправлять в территориальный (федеральный) фонд ОМС (ТФОМС) отчеты о количестве принятых в МО пациентов, характере и стоимости оказанной им мед. помощи. Без этого, никак нет возможности получить денежное возмещение от страховых компаний за оказанные услуги.

Собственно отчет — это 2-3 XML файла, упакованных в ZIP архив. Для подготовки пакетов с отчетами, разбора протоколов ошибок и оформления реестров к счетам для страховых компаний, я написал небольшую библиотеку и web приложение (сервер задач) для доступа к библиотеке по REST API.

Возможно, это будет интересно специалистам, или более широкой публике.

Читать далее

Почему стоит использовать лимиты CPU в Kubernetes

Время на прочтение8 мин
Количество просмотров9.7K

Эту статью я написал в противовес статье “For the love of god, stop using CPU limits on Kubernetes” (Ради всего святого, прекратите использовать в Kubernetes лимиты CPU).

Мне та статья понравилась, и я считаю её хорошим чтивом. Более того, я согласен с высказанными в ней рекомендациями относительно установки объёмов запрашиваемой памяти и её лимитов для контейнеров, а также с советом всегда устанавливать запросы на выделение CPU.

При этом моё несогласие, явно выраженное в противоположном по смыслу заголовке, связано с той категоричностью, с которой в итоге автор рекомендует не устанавливать лимиты потребления CPU.
Читать дальше →

Обновляемые смарт-контракты: Что это такое и как создать свой собственный. Часть 1

Время на прочтение8 мин
Количество просмотров4.4K

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

Чтобы получить максимальную пользу от этой статьи, вы должны иметь начальные знания о смарт-контрактах на базе Ethereum и EVM. В этой серии статей приводится краткое описание кода, так что опыт программирования не менее трех месяцев будет полезен, как и базовое понимание Solidity и способов его компиляции, что такое смарт-контракты и как они развертываются, а также как использовать такие инструменты, как Metamask и Hardhat.

Читать далее

Что такое стандарты на крипто-токены?

Время на прочтение7 мин
Количество просмотров3.3K

Стандарты токенов - это набор согласованных правил, которые определяют дизайн, разработку, поведение и работу криптовалютных токенов на определенном протоколе блокчейна. Для того чтобы стандарты токенов были полезны, они должны быть массово приняты. Без принятия эти правила не могут быть возведены в статус "стандарта", поскольку стандарты - это правила, которым обычно следует широкий круг людей.

В этой публикации мы рассмотрим, почему стандарты важны для повышения уровня принятия и использования криптовалютных токенов. Мы также рассмотрим, как разрабатываются стандарты Ethereum и кратко обсудим стандарты Solana.

Читать далее

CAP двенадцать лет спустя: как изменились «правила»

Время на прочтение23 мин
Количество просмотров6.9K


Эта статья впервые появилась в журнале Computer и подготовлена InfoQ & IEEE Computer Society.


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


За десятилетие, прошедшее с появления теоремы, разработчики и исследователи использовали теорему CAP (а иногда и злоупотребляли ею) как повод для изучения широкого спектра новых распределенных систем. Движение NoSQL также использовало её в качестве аргумента против традиционных баз данных.


В теореме CAP говорится, что любая сетевая система с общими данными может иметь не более двух из трех желаемых свойств:


  • согласованность (С), эквивалентная наличию единственной актуальной копии данных;
  • высокая доступность (A) этих данных (для обновлений); и
  • устойчивость к сетевым разделениям (P).

Такое толкование CAP помогало разработчикам быть открытыми для более широкого диапазона систем и компромиссов; действительно, за последнее десятилетие возникло множество новых систем и много споров об относительных достоинствах согласованности и доступности. Формулировка «2 из 3» всегда вводила в заблуждение, поскольку имела тенденцию чрезмерно упрощать противоречия между свойствами. Но сейчас такие тонкости имеют значение. CAP запрещает лишь крошечную часть проектного пространства: идеальная доступность и согласованность при наличии разделений, которые встречаются редко.

Читать дальше →

Собрать за 60 секунд: кейс автоматизации получения данных из десятков подразделений

Время на прочтение6 мин
Количество просмотров3.5K

Привет, Хабр! Меня зовут Сергей Корнеев, и я хочу рассказать о том, как мы организовали сбор данных в компании “Россети”. На момент запуска проекта я работал в “Россети.Цифра” и руководил внедрением BI-платформы. Нам с командой удалось решить проблему ручного сбора данных на базе Visiology Smart Forms, и именно об этом я расскажу сегодня. 

Читать далее