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
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Жмём и храним байтики – Андрей Бородин
GopherCon Russia
March 28, 2020
More Decks by GopherCon Russia
See All by GopherCon Russia
Go Profiling from Bottom Up - Felix Geisendörfer
gopherconrussia
0
250
Learning Unsung Gotchas of Go - Rashmi Nagpal
gopherconrussia
1
300
Прозрачный gRPC-proxy один-ко-многим - Андрей Смирнов
gopherconrussia
0
170
Из Python в Go и обратно - Андрей Минкин
gopherconrussia
0
180
Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS - Иван Осадчий
gopherconrussia
0
220
Пакет embed: распаковка знаний - Илья Данилкин
gopherconrussia
0
290
За пару мгновений до main() - Олег Ковалев
gopherconrussia
0
170
Тестирование в Go c Ginkgo и Gomega - Александр Егурнов
gopherconrussia
0
150
Building an Autoscaling HTTP Proxy for Kubernetes - Aaron Schlesinger
gopherconrussia
0
160
Other Decks in Programming
See All in Programming
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1k
5分で問診!Composer セキュリティ健康診断
codmoninc
0
610
What's New in Android 2026
veronikapj
0
200
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.7k
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
170
GitHubCopilotCLIのスラッシュコマンドを自作してみる
htkym
0
110
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.3k
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
380
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
910
AIエージェントで 変わるAndroid開発環境
takahirom
2
720
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
280
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Docker and Python
trallard
47
4k
30 Presentation Tips
portentint
PRO
1
350
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
380
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
Writing Fast Ruby
sferik
630
63k
WCS-LA-2024
lcolladotor
0
760
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