<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Index on Выученные Уроки (trunin.com)</title>
        <link>https://trunin.com/ru/tags/index/</link>
        <description>Recent content in Index on Выученные Уроки (trunin.com)</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ru</language>
        <copyright>Konstantin Trunin</copyright>
        <lastBuildDate>Tue, 11 Jan 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://trunin.com/ru/tags/index/index.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>Высоконагруженные приложения - Глава 12 - Будущее систем данных</title>
            <link>https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/</link>
            <pubDate>Tue, 11 Jan 2022 00:00:00 +0000</pubDate>
            
            <guid>https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/</guid>
            <description>&lt;p&gt;&lt;em&gt;Ранее книжный клуб нашей компании изучил отличную книгу:&lt;/em&gt;&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321&#34;&gt;Martin Kleppmann - Designing Data-Intensive Applications&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.litres.ru/martin-kleppman-1733/vysokonagruzhennye-prilozheniya-programmirov-39100996/?lfrom=6588195&amp;amp;ref_key=2acff12fe8f1ec423d614c63053b2666f55874f30370dee8754ccb289088a16e&amp;amp;ref_offer=1&#34;&gt;Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Это - &lt;strong&gt;лучшая книга&lt;/strong&gt; о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Как обычно, я подготовил краткий обзор и майнд-мапу.&lt;/p&gt;
&lt;p&gt;Глава 12 - это саммари книги и визионерский взгляд на будущее.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Интеграция данных.
&lt;ul&gt;
&lt;li&gt;Обзор способов интеграции данных.&lt;/li&gt;
&lt;li&gt;Причинность и зачем нам нужен тотальный порядок и идемпотентность.&lt;/li&gt;
&lt;li&gt;Транзакции и линеаризуемость&lt;/li&gt;
&lt;li&gt;Ограничения тотального порядка.&lt;/li&gt;
&lt;li&gt;Лямбда-архитектура и унификация пакетной и потоковой обработки как наиболее перспективный подход.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Разделение баз данных.
&lt;ul&gt;
&lt;li&gt;Обзор выстраиваний композиции из хранилищ данных вместе.&lt;/li&gt;
&lt;li&gt;Разработка приложений вокруг потока данных.&lt;/li&gt;
&lt;li&gt;Использование производных состояний.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Стремление к правильности: какие проблемы учитывать и как с ними бороться.
&lt;ul&gt;
&lt;li&gt;Жетон сквозного прохода.&lt;/li&gt;
&lt;li&gt;Как обрабатывать многораздельные запросы.&lt;/li&gt;
&lt;li&gt;Вопросы своевременности и целостности. Извинения в бизнесе.&lt;/li&gt;
&lt;li&gt;Мета-подход: доверяй, но проверяй.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Делать правильные вещи.
&lt;ul&gt;
&lt;li&gt;Предиктивная аналитика дискриминирует людей! Мы несем ответственность и подотчетность.&lt;/li&gt;
&lt;li&gt;Конфиденциальность противоречит отслеживанию. Тотальный надзор должен быть законодательным и саморегулируемым.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&#34;https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_2d7d2ac2ee00bc59.webp&#34;&gt;&lt;img srcset=&#34;https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_78de85a3a827df3.webp 800w, https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_a6372783a762cfa3.webp 1200w, https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_fbc40b654f462aa1.webp 1600w&#34; src=&#34;https://trunin.com/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_2d7d2ac2ee00bc59.webp&#34; width=&#34;400&#34; alt=&#34;&#34;&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href=&#34;images/data-intensive-apps-part12-the-future-of-data-systems.pdf&#34;&gt;Скачать всю майнд-мапу в PDF&lt;/a&gt;&lt;/p&gt;</description>
            <content:encoded><![CDATA[<p><em>Ранее книжный клуб нашей компании изучил отличную книгу:</em><br/></p>
<blockquote>
<p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321">Martin Kleppmann - Designing Data-Intensive Applications</a></p>
<p><a href="https://www.litres.ru/martin-kleppman-1733/vysokonagruzhennye-prilozheniya-programmirov-39100996/?lfrom=6588195&amp;ref_key=2acff12fe8f1ec423d614c63053b2666f55874f30370dee8754ccb289088a16e&amp;ref_offer=1">Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка</a></p>
</blockquote>
<p><em>Это - <strong>лучшая книга</strong> о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪</em></p>
<p>Как обычно, я подготовил краткий обзор и майнд-мапу.</p>
<p>Глава 12 - это саммари книги и визионерский взгляд на будущее.</p>
<ul>
<li>Интеграция данных.
<ul>
<li>Обзор способов интеграции данных.</li>
<li>Причинность и зачем нам нужен тотальный порядок и идемпотентность.</li>
<li>Транзакции и линеаризуемость</li>
<li>Ограничения тотального порядка.</li>
<li>Лямбда-архитектура и унификация пакетной и потоковой обработки как наиболее перспективный подход.</li>
</ul>
</li>
<li>Разделение баз данных.
<ul>
<li>Обзор выстраиваний композиции из хранилищ данных вместе.</li>
<li>Разработка приложений вокруг потока данных.</li>
<li>Использование производных состояний.</li>
</ul>
</li>
<li>Стремление к правильности: какие проблемы учитывать и как с ними бороться.
<ul>
<li>Жетон сквозного прохода.</li>
<li>Как обрабатывать многораздельные запросы.</li>
<li>Вопросы своевременности и целостности. Извинения в бизнесе.</li>
<li>Мета-подход: доверяй, но проверяй.</li>
</ul>
</li>
<li>Делать правильные вещи.
<ul>
<li>Предиктивная аналитика дискриминирует людей! Мы несем ответственность и подотчетность.</li>
<li>Конфиденциальность противоречит отслеживанию. Тотальный надзор должен быть законодательным и саморегулируемым.</li>
</ul>
</li>
</ul>
<a href="/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_2d7d2ac2ee00bc59.webp"><img srcset="/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_78de85a3a827df3.webp 800w, /ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_a6372783a762cfa3.webp 1200w, /ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_fbc40b654f462aa1.webp 1600w" src="/ru/2022/01/designing-data-intensive-apps-part12/images/data-intensive-apps-part12-the-future-of-data-systems_hu_2d7d2ac2ee00bc59.webp" width="400" alt=""></a>
<p><a href="images/data-intensive-apps-part12-the-future-of-data-systems.pdf">Скачать всю майнд-мапу в PDF</a></p>
]]></content:encoded>
        </item>
        
        <item>
            <title>Высоконагруженные приложения - Глава 3 - Подсистемы хранения и извлечение данных</title>
            <link>https://trunin.com/ru/2021/12/designing-data-intensive-apps-part03/</link>
            <pubDate>Mon, 27 Dec 2021 00:00:00 +0000</pubDate>
            
            <guid>https://trunin.com/ru/2021/12/designing-data-intensive-apps-part03/</guid>
            <description>&lt;p&gt;&lt;em&gt;Ранее в этом году книжный клуб нашей компании изучил отличную книгу:&lt;/em&gt;&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321&#34;&gt;Martin Kleppmann - Designing Data-Intensive Applications&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.litres.ru/martin-kleppman-1733/vysokonagruzhennye-prilozheniya-programmirov-39100996/?lfrom=6588195&amp;amp;ref_key=2acff12fe8f1ec423d614c63053b2666f55874f30370dee8754ccb289088a16e&amp;amp;ref_offer=1&#34;&gt;Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Это - &lt;strong&gt;лучшая книга&lt;/strong&gt; о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Как обычно, я подготовил краткий обзор и майнд-мапу.&lt;/p&gt;
&lt;p&gt;Глава 3:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Структуры данных:
&lt;ul&gt;
&lt;li&gt;Log-structured. SSTables / LSM-деревья (когда мы ничего не обновляем, а пишем в конец). Очень крутая идея, как хранить данные.
&lt;ul&gt;
&lt;li&gt;Отсортированные файлы.&lt;/li&gt;
&lt;li&gt;Индексы для каждого.&lt;/li&gt;
&lt;li&gt;Более того, индексы могут быть созданы не для всех записей, потому что они отсортированы, и если размеры записей одинаковы, то поиск между двумя известными проиндексированными записями является бинарным поиском O(log n).&lt;/li&gt;
&lt;li&gt;Мы всегда пишем в последний файл.&lt;/li&gt;
&lt;li&gt;Процесс слияния файлов - это школьный алгоритм: как записать O(n) слияние двух отсортированных массивов в один отсортированный массив.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Обновление-на-месте. B-деревья (когда мы напрямую обновляем записи). Тоже очень умно.
&lt;ul&gt;
&lt;li&gt;Деревья - более простая идея, но тут классно придумано с сегментами заточенными под работу дисков - и отсюда возможные проблемы с SSD т.к. много перезаписей сегментов&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Индексирование: первичное, вторичное, многоколоночное, полнотекстовое
&lt;ul&gt;
&lt;li&gt;По поводу индексов - очевидно, что чудес не бывает и нужны дополнительные конструкции.&lt;/li&gt;
&lt;li&gt;Интересно, что иногда значения могут храниться внутри индексов.&lt;/li&gt;
&lt;li&gt;К сожалению, о полнотекстовом поиске написано очень мало - интересно узнать о нем больше.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;OLTP vs OLAP. Четкое разделение OLAP / OLTP очень интересно.&lt;/li&gt;
&lt;li&gt;Столбцово-ориентированное хранилище.
&lt;ul&gt;
&lt;li&gt;Есть очень интересный аспект сжатия данных: сколько нулей, сколько единиц - своего рода компрессор. Это возможно только в памяти - только на одну следующую SSTable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Намного больше деталей в майнд-мапе:&lt;/p&gt;</description>
            <content:encoded><![CDATA[<p><em>Ранее в этом году книжный клуб нашей компании изучил отличную книгу:</em><br/></p>
<blockquote>
<p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321">Martin Kleppmann - Designing Data-Intensive Applications</a></p>
<p><a href="https://www.litres.ru/martin-kleppman-1733/vysokonagruzhennye-prilozheniya-programmirov-39100996/?lfrom=6588195&amp;ref_key=2acff12fe8f1ec423d614c63053b2666f55874f30370dee8754ccb289088a16e&amp;ref_offer=1">Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка</a></p>
</blockquote>
<p><em>Это - <strong>лучшая книга</strong> о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪</em></p>
<p>Как обычно, я подготовил краткий обзор и майнд-мапу.</p>
<p>Глава 3:</p>
<ul>
<li>Структуры данных:
<ul>
<li>Log-structured. SSTables / LSM-деревья (когда мы ничего не обновляем, а пишем в конец). Очень крутая идея, как хранить данные.
<ul>
<li>Отсортированные файлы.</li>
<li>Индексы для каждого.</li>
<li>Более того, индексы могут быть созданы не для всех записей, потому что они отсортированы, и если размеры записей одинаковы, то поиск между двумя известными проиндексированными записями является бинарным поиском O(log n).</li>
<li>Мы всегда пишем в последний файл.</li>
<li>Процесс слияния файлов - это школьный алгоритм: как записать O(n) слияние двух отсортированных массивов в один отсортированный массив.</li>
</ul>
</li>
<li>Обновление-на-месте. B-деревья (когда мы напрямую обновляем записи). Тоже очень умно.
<ul>
<li>Деревья - более простая идея, но тут классно придумано с сегментами заточенными под работу дисков - и отсюда возможные проблемы с SSD т.к. много перезаписей сегментов</li>
</ul>
</li>
</ul>
</li>
<li>Индексирование: первичное, вторичное, многоколоночное, полнотекстовое
<ul>
<li>По поводу индексов - очевидно, что чудес не бывает и нужны дополнительные конструкции.</li>
<li>Интересно, что иногда значения могут храниться внутри индексов.</li>
<li>К сожалению, о полнотекстовом поиске написано очень мало - интересно узнать о нем больше.</li>
</ul>
</li>
<li>OLTP vs OLAP. Четкое разделение OLAP / OLTP очень интересно.</li>
<li>Столбцово-ориентированное хранилище.
<ul>
<li>Есть очень интересный аспект сжатия данных: сколько нулей, сколько единиц - своего рода компрессор. Это возможно только в памяти - только на одну следующую SSTable</li>
</ul>
</li>
</ul>
<p>Намного больше деталей в майнд-мапе:</p>
<a href="/ru/2021/12/designing-data-intensive-apps-part03/images/data-intensive-apps-part03-storage-and-retrieval_hu_8a20c48d806a4203.webp"><img srcset="/ru/2021/12/designing-data-intensive-apps-part03/images/data-intensive-apps-part03-storage-and-retrieval_hu_db2c65b66e3849a4.webp 800w, /ru/2021/12/designing-data-intensive-apps-part03/images/data-intensive-apps-part03-storage-and-retrieval_hu_c639cf3899e72eba.webp 1200w, /ru/2021/12/designing-data-intensive-apps-part03/images/data-intensive-apps-part03-storage-and-retrieval_hu_3ba27a47e0f38c99.webp 1600w" src="/ru/2021/12/designing-data-intensive-apps-part03/images/data-intensive-apps-part03-storage-and-retrieval_hu_8a20c48d806a4203.webp" width="400" alt=""></a>
<p><a href="images/data-intensive-apps-part03-storage-and-retrieval.pdf">Скачать всю майнд-мапу в PDF</a></p>
]]></content:encoded>
        </item>
        
    </channel>
</rss>