Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Жмём и храним байтики – Андрей Бородин
Search
GopherCon Russia
March 28, 2020
Programming
0
78
Жмём и храним байтики – Андрей Бородин
GopherCon Russia
March 28, 2020
Tweet
Share
More Decks by GopherCon Russia
See All by GopherCon Russia
Go Profiling from Bottom Up - Felix Geisendörfer
gopherconrussia
0
180
Learning Unsung Gotchas of Go - Rashmi Nagpal
gopherconrussia
1
200
Прозрачный gRPC-proxy один-ко-многим - Андрей Смирнов
gopherconrussia
0
100
Из Python в Go и обратно - Андрей Минкин
gopherconrussia
0
110
Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS - Иван Осадчий
gopherconrussia
0
130
Пакет embed: распаковка знаний - Илья Данилкин
gopherconrussia
0
160
За пару мгновений до main() - Олег Ковалев
gopherconrussia
0
95
Тестирование в Go c Ginkgo и Gomega - Александр Егурнов
gopherconrussia
0
91
Building an Autoscaling HTTP Proxy for Kubernetes - Aaron Schlesinger
gopherconrussia
0
95
Other Decks in Programming
See All in Programming
RustでAWS Lambda functionをいい感じに書く
taiki45
2
150
TypeScriptから始める VR生活
tamagokakeg
2
120
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
1
130
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.8k
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
990
TypeScriptのパフォーマンス改善
yajihum
14
5.1k
The Design of Everyday APIs - PyCon 2024
roguelynn
1
190
TSKaigi 2024 - 新サービス Progate Path の演習で TypeScript を採用して見えた教材観点からの利点と課題
makotoshimazu
1
220
CQRS meets modern Java
simas
PRO
2
480
mb_trim関数を作りました
youkidearitai
PRO
1
230
Sheets API使ってみた
toshi0383
2
180
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
Featured
See All Featured
For a Future-Friendly Web
brad_frost
172
9k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.5k
Practical Orchestrator
shlominoach
183
9.8k
The Pragmatic Product Professional
lauravandoore
26
5.9k
GitHub's CSS Performance
jonrohan
1025
450k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Designing Experiences People Love
moore
136
23k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
How to train your dragon (web standard)
notwaldorf
75
5.2k
Transcript
None
жмём и храним байтики Андрей Бородин, руководитель подразделения разработки РСУБД
с открытыми исходных кодом
Баги и особенности ваших зависимостей == ваши баги Андрей Бородин,
руководитель подразделения разработки РСУБД с открытыми исходных кодом
None
PostgreSQL в Яндексе ▎ Яндекс.Почта › Сколько-то сотен миллионов пользователей
› 1+ триллион строк, 1+ миллион запросов в секунду ▎ Яндекс.Облако › Несколько петабайт Постгреса › Много разных сервисов Яндекса живут в Облаке 5
НА cluster in the cloud Sync replication Async replication Backup
WAL archiving 6 М Network Object Storage
Специфика СУБД: backup API 7 LSN Файл 1 Файл 2
Файл 3 Start Stop
Специфика СУБД: дельта-копии не на CGO 8
Специфика СУБД: дельта-копии не на CGO 9
Специфика СУБД: дельта-копии не на CGO 10
Специфика СУБД: дельта-копии не на CGO 11
Специфика СУБД: дельта-копии не на CGO 12
Специфика СУБД:concurrent fetch 13 WAL-FETCH 1337 WAL-PREFETCH 1338 WAL-PREFETCH 1339
WAL-PREFETCH 1340
Специфика СУБД:concurrent archive 14 14 WAL-PUSH WAL-PUSH WAL-PUSH WAL-PUSH
Базы данных 15 Базы данных 15
Независимые компоненты 16 Сжатие Шифрование БД Хранилище Дешифровка Разжатие БД
None
Жмём байтики
lz4 19
lz4 20
lz4 21
lzma 22 ▎ Просто дорого по CPU
ZStd https://github.com/DataDog/zstd/issues/39 23
brotli 24
OpenPGP 25
libsodium 26
Push-based vs Pull-based executer 27
io.Reader vs io.Writer 28
io.ReadFull 29
Хранение
S3-based WAL-G 31
S3-based WAL-G 32 ▎ AWS умеет в криптографию
S3 ListObjectsV2() 33
S3 Retry 34
S3 35 ▎ буферизация и троттлинг
S3 параллелизм 36 › Он есть › Но не все
реализации его поддерживают
S3 – всё им поросло 37
Переезд в storages 38
GCP 39 › Нет мультипартов › Какие-то странные проблемы с
зависаниями и ретраями
Azure 40 ▎ Принесли контрибьюторы из KubeDB
FS 41 ▎ Проблемы с Windows build
SWIFT 42 ▎ Проблем нет, возможно, никто им не пользуется?
SSH\SCP 43 › Спрашиваю часто › Многие хотят сделать ›
То же самое с backblaze
Load Balancing https://www.backblaze.com/blog/design-thinking-b2-apis-the-hidden-costs-of-s3-compatibility/ 44
На стыке сжатия и хранения
Прогрев page cache 46
Баги и особенности ваших зависимостей == ваши баги Андрей Бородин,
руководитель подразделения разработки РСУБД с открытыми исходных кодом
Переиспользуемые компоненты WAL-G 48 ▎ Storages
Переиспользуемые компоненты WAL-G 49 ▎ Storages › S3 › Google
Cloud Storage › SWIFT › Azure › Локальная FS › SCP
Переиспользуемые компоненты WAL-G 50 ▎ Storages › S3 › Google
Cloud Storage › SWIFT › Azure › Локальная FS › SCP ▎ WAL parser
Переиспользуемые компоненты WAL-G 51 ▎ Storages › S3 › Google
Cloud Storage › SWIFT › Azure › Локальная FS › SCP ▎ WAL parser ▎ Compression
Баги и особенности ваших зависимостей == ваши баги Андрей Бородин,
руководитель подразделения разработки РСУБД с открытыми исходных кодом
None
54
55
56
Вопросы?
Андрей Бородин Руководитель подразделения разработки РСУБД с открытым исходным кодом
Спасибо!
[email protected]
@x4mmm