Pull to refresh
-4
0
ZOXEXIVO @ZOXEXIVO

.NET / Rust Developer

Send message

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

Reading time7 min
Views7.6K

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

Читать далее
Total votes 35: ↑33 and ↓2+31
Comments10

Вырываемся в top10. Бот для игры в телеграме

Reading time5 min
Views9.4K

Вырываемся в top10. Бот для игры в Telegram


Предыстория


Все началось с того, что мне прислали ссылку на бота в Telegram с предложением поиграть.
Выглядит он примерно так.



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


Поехали


Для базы решил использовать sqlite3, он мобильный и для этой задачи самое то.


Структура базы выглядит так.


CREATE TABLE IF NOT EXISTS words (
    word VARCHAR(225) UNIQUE NOT NULL,
    length INTEGER NOT NULL
);

  • word — из название понятно, что это хранимое буквенное значение слова.
  • length — символьная длина.

Структура есть, для ее заполнения воспользовался списком существительных русских слов.


Заполнение базы и поиск слов было решено реализовать в одном коде, обработку разделить флагами.


Так же само создание файла базы и создание таблицы реализовываются в init()


func init() {
    var err error
    connection, err = sql.Open("sqlite3", "./words.db")
    if err != nil {
        log.Fatalf("Failed connection: %v", err)
    }
    _, err = connection.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
    if err != nil {
        log.Fatalf("Failed create database table words: %v", err)
    }
}
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments12

Highload++: Как помочь ERP-системе справиться с 500 000 запросов в секунду

Reading time11 min
Views19K
Мы в X5 обрабатываем много данных в ERP-системе. Есть мнение, что больше нас в SAP ERP и SAP BW в России не обрабатывает никто. Но есть еще один момент – число операций и нагрузка на эту систему увеличивается быстро. 3 года мы «сражались» за производительность нашего ERP-тяжеловеса, набили немало шишек, а какими методами их лечили, рассказываем под катом.

image
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments32

Контейнерно-ориентированное интеграционное тестирование

Reading time5 min
Views6.2K
Интеграционное тестирование остается важной частью производственного цикла CI/CD, в том числе при разработке контейнерных приложений. Интеграционные тесты, как правило, представляют собой не очень продолжительные, но очень ресурсоемкие рабочие нагрузки. Посмотрим, как можно объединить технологии и инструменты интеграционного тестирования со средствами оркестрации контейнеров (в частности, с Red Hat OpenShift), чтобы ускорить тестирование, повысить его динамичность, и более эффективно использовать ресурсы.



Создадим интеграционные BDD-тесты (behavior-driven development – разработка через поведение) с помощью Cucumber, Protractor и Selenium и выполним их на платформе OpenShift, используя Zalenium.
Читать дальше: Контейнерно-ориентированное интеграционное тестирование
Total votes 15: ↑15 and ↓0+15
Comments2

Octopus Deploy. Улучшаем мир в кровавом энтерпрайзе

Reading time9 min
Views14K


Сегодня я хочу рассказать о системе деплоя Octopus Deploy. На данный момент на Хабре есть всего одна вводная статья на эту тему, поэтому в своем материале я хочу расширить описание системы, подробнее рассказать о таких важных понятиях как «жизненные циклы» (lifecycles) и «каналы» (channels), а также о том, как мы внедрили и используем Octopus в своей работе.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments9

Оптимизация веб-серверов для повышения пропускной способности и уменьшения задержки

Reading time31 min
Views44K


Привет! Меня зовут Макс Матюхин, я работаю в SRV-команде Badoo. Мы в Badoo не только активно пишем посты в свой блог, но и внимательно читаем блоги наших коллег из других компаний. Недавно ребята из Dropbox опубликовали шикарный пост о различных способах оптимизации серверных приложений: начиная с железа и заканчивая уровнем приложения. Его автор – Алексей Иванов – дал огромное количество советов и ссылок на дополнительные источники информации. К сожалению, у Dropbox нет блога на Хабре, поэтому я решил перевести этот пост для наших читателей.

Читать дальше →
Total votes 78: ↑78 and ↓0+78
Comments7

Как пропатчить K̶D̶E̶ TCP-стек под FreeBSD

Reading time10 min
Views14K
Когда стоит вопрос выбора между проприетарным и открытым программным обеспечением, часто в пользу последнего приводят следующий аргумент: при необходимости можно изменить исходники под нужды своего проекта, или исправить ошибку прямо сейчас, а не дожидаясь месяцами реакции вендора. Зачастую это соображение является оторванным от практики — куда проще исправить SQL запрос, чем оптимизировать SQL-планировщик, или поменять проблемное оборудование вместо того, чтобы искать и исправлять ошибку в драйвере. Тем не менее, иногда именно открытость кода позволяет избежать потенциальных убытков и перерасхода вычислительных ресурсов. Хочу рассказать об одном из таких кейсов, случившемся за время моей работы в Advanced Hosting
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments35

Хайлайтинг больших текстовых полей в ElasticSearch

Reading time4 min
Views9.3K

В декабре 2016 года мы с товарищем начали заниматься новым проектом — системой сбора-индексации-поиска по документам. Система построена вокруг ElasticSearch (далее — ES), который мы используем как основной движок для полнотекстового поиска.


Ценными данными, приобретенными в ходе работы над проектом мы бы хотели поделиться с читателями в цикле статей про ES. Начнём с основы любого поисковика — подсветки результатов поиска (далее — хайлайтинг).


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


Одним из ключевых требований к нашей поисковой системе была возможность быстро и эффективно работать с большими файлами (более 100 Мб). В статье мы расскажем как добиться высокой производительности от ES при хайлайтинге больших полей документа.


На скриншоте ниже показано как работает подсветка результатов поиска в нашем проекте.


Пример результатов поиска с хайлайтом

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments6

Тестируем сервер Fujitsu PRIMERGY RX2530 M2

Reading time5 min
Views9.8K
Привет Хабр! Предлагаем вашему вниманию краткий обзор универсального стоечного сервера PRIMERGY RX2530 M2, обладающего широкими возможностями для расширения ресурсов и достойной производительностью для решения различных задач, требующих использования серверных систем. Тестирование сервера было выполнено специалистами аналитического интернет-портала IT Pro. Надеемся узнать ваше мнение о продукте и готовы ответить на вопросы в комментариях.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments15

История моего стартапа: 500000 пользователей за 5 дней на стодолларовом сервере

Reading time11 min
Views35K
Похоже, все в мире стартапов согласны с тем, что первые версии приложений должны представлять собой минимально жизнеспособный продукт (MVP, Minimal Viable Product), создавая который можно не особо заботиться о его масштабировании с технической точки зрения. Мне много раз доводилось слышать о том, что самое главное в подобных делах – поскорее выпустить нечто работающее. И, до тех пор, пока бизнес-модель нормально функционирует в условиях роста клиентской базы – всё нормально. А тратить время и деньги на то, чтобы сделать систему, которая сможет выдержать внезапный наплыв пользователей, не стоит. Беспокоиться нужно лишь о проверке предположений, об оценке рынка и о раскрутке бизнеса. Масштабируемость – это то, что можно отложить на потом. К несчастью, такая вот слепая вера в шаблонные идеи уже не раз приводила к оглушительным провалам. Pokémon GO, и, в частности, связанные с этим проектом приложения, служат напоминанием об этом.


Читать дальше →
Total votes 31: ↑22 and ↓9+13
Comments13

ASP.NET MVC, WebApi, SignalR и UnityContainer

Reading time15 min
Views31K
Известно, что все хорошие джедаи используют внедрение зависимости (перевод) в своих проектах, это увеличивает концентрацию мидихлориан в крови и тестируемость кода в приложении. В данной статье я хочу рассмотреть некоторые аспекты использования UnityContainer в ASP.NET приложении, а именно, использование инжекции зависимостей через конструкторы контроллеров в ASP.NET MVC и WebApi и хабов в SignalR. Пример приложения присутствует.

Dependency Injection - Golf analogy
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments13

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity