#база данных

16 постов
пост №1998Разработка и инженерия

Ядро чатжпт работает на одном Postgres-сервере с 50 read-only репликами. Это к вопросу о масштабируемости и потребности в сложной инфраструктуре.

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

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

У postgres открытая, по-настоящему распределенная разработка, в которой участвуют сотни инженеров со всего мира.

Многие ИТ-проекты держатся на власти диктатора (Линукс на Линусе), а Postgres вот уже 30 лет управляется меритократией в консенсусной модели.

Свободная BSD-подобная лицензия, которая (в отличие от религиозной GPL) позволяет открыто делать коммерческие продукты на его основе.

Отличная обратная совместимость и близкое соответствие стандартам, и при этом они умудряются первыми реализовывать фичи, которые только позже появляются в платных БД.

PostgreSQL как программа — это настоящее произведение инженерного искусства, а проект в целом — чудо в плане самоорганизации людей. Горжусь, что у нас как у человечества получилось сделать такую красивую штуку.

Я рад, что Postgres постепенно становится самой популярной базой для начинающих, заменяя MySQL.

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

пост №1769Разработка и инженерия

Чуваки из Electric упаковали PostgreSQL сервер (один из главных движков баз данных в мире) в js-библиотеку размером 3 мегабайта.
Работает на WASM в браузерах и в nodejs, поддерживаются экстеншены. Скорость отработки базовых запросов — 0.3ms.

Это как если бы дизельный локомотив с железной дороги поместили под капот WV Beetle. 🤯

Называется pglite, попробовать в браузере можно тут.

пост №1683Разработка и инженерия

Clickhouse — база данных для гибкого анализа огромных потоков информации. Microsoft, Uber и Deutsche Bank — лишь некоторые известные пользователи.

Как экспериментальный проект одного разработчика вырос в отдельную компанию с оценкой в миллионы долларов — говорим с создателем Clickhouse Лешей Миловидовым.

Слушайте на всех платформах: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия.

пост №1286Разработка и инженерия

В мире есть 4 главные программы базы данных. Oracle, Microsoft SQL и даже MySQL принадлежат корпорациям. Четвертую, PostgreSQL, придумали ученые в Калифорнийском университете в Беркли и сделали опенсорсной. Вместе с американскими учеными и энтузиастами по всему миру, эту базу данных разрабатывал Олег Бартунов. Спустя много лет он основал компанию, которая занимается поддержкой PostgreSQL и помогает ее использовать Яндексу и Министерству финансов РФ. Мы поговорили с Олегом о его работе с базами данных. Как Олег из ученого-астронома стал главных специалистом по PostgreSQL в России, как он наблюдал рождение IT-гигантов Кремниевой долины и как участвовал в создании рунета.

Слушайте и подписывайтесь: Apple, Google, Castbox, Spotify, Яндекс, Overcast, веб-версия.

пост №1226Работа и карьера

Хороший канал про аналитику, ту, которая с числами и базами данных, от чувака в теме. И название подходящее — @leftjoin. Особенно хорошо, что много репостов — можно полистать вверх и обнаружить все важные каналы про аналитику.

пост №1120Разработка и инженерия

Давно не писал, две недели решительно не хотел ничего делать. Хочется свалить всё на пневмонию (не коронавирусную), на самом деле просто устал. Продолбал несколько лидов-клиентов. Раньше бы стыдился, но это тема для отдельного поста.

Между тем, происходит куча всего интересного. В мире пандемия (вот классная визуализация и хорошее видео про неё), а у нас в iGooods рекорд за рекордом. Если раньше в пике было по 70 запросов в секунду, то теперь — больше 400. Каждое выступление Путина — +20% посещаемости.

Чтобы выдерживать такие нагрузки, нужно оптимизировать код и увеличивать объем железа. Серверы масштабируются горизонтально и вертикально. Горизонтально — это когда ставишь рядом со старым сервером ещё один, такой же новый, и они делят нагрузку. Это идеальная схема, так мы сейчас регулярно добавляем серверы приложений. К сожалению, базу данных мы горизонтально масштабировать не умеем — для того, чтобы поставить в параллель два сервера БД, нужна специальная магия, запрогать которую мы не успели.

После последнего выступления Путина мы поняли, что скоро уткнемся в гигабитную сетевую карту на сервере БД (раньше я такого не видел и да, нам нужно переписать эти долбаные запросы). Спасибо огромное селектелу — пошли навстречу и мгновенно собрали кастомный сервер с 10гигабитным интерфейсом. Вот теперь сижу жду, когда ребята потушат на пару минут сайт и переключат базу данных на новую машину. Это — вертикальное масштабирование.

Спокойной ночи! 🌛

пост №908Разработка и инженерия

Нашёл классный способ выбрать по одному представителю из группы в SQL.

SQL — cтруктурированный язык запросов, изначально — SEQUEL, «структурированный английский язык запросов» к базам данных родом из 1974го (да, IBM). Почти все технари и аналитики на нем описывают, какие столбцы и строки из таблиц мы хотим получить, как их отфильтровать, отсортировать и преобразовать.

В SQL мы описываем не что сделать, но какой результат мы хотим получить (декларативная парадигма программирования). Большинство программирования в мире происходит по-другому: мы перечисляем компьютеру, какие шаги нужно выполнить (императивная модель). Переключиться на другой режим мышления непросто. Порой при написании большого запроса я чувствую, что «мозги скрипят» - как при решении математической задачи.

Умение пользоваться различными парадигмами, осознанно выбирать более подходящую в данный момент — то, что отличает по-настоящему крутого специалиста. Учите SQL! В конце концов, думать над запросами просто приятно :)

Продакты и аналитики! Научитесь SQL и сможете сами, без программиста отвечать на многие вопросы про проект.

Вот четыре супер классных интерактивных курса (бесплатно без СМС): побогаче, полапидарнее, с довольно сложными задачами в конце и очень красивыми фабулами.

В мои годы таких курсов не было, так что я учился по официальной документации PostgreSQL. Это один лучших технических текстов, что я видел (хороший русский перевод).

На сладкое для заинтересованных:
- хороший туториал по написанию своей базы данных, где разобраны основные концепции на примере клона SQLite;
- доклад создателя SQLite о том, как работают базы данных (ютуб): подача так себе, но в теме чувак разбирается очень хорошо, поэтому интересно.

пост №793Разработка и инженерия

Basecamp уже несколько часов в read-only. У чуваков переполнились первичные ключи в таблице в базе (были в int, нужно было bigint).

Работы всё ещё идут, но они ведут идеальный status report и уже написали два детальных объяснения (сначала покороче и потом подлиннее), что идет не так, почему так получилось и что они делают для починки. ИДЕАЛЬНО.