mirror of
https://github.com/linkedin/school-of-sre
synced 2026-01-19 23:18:02 +00:00
6401 lines
121 KiB
HTML
6401 lines
121 KiB
HTML
|
||
<!doctype html>
|
||
<html lang="en" class="no-js">
|
||
<head>
|
||
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
|
||
|
||
<link rel="canonical" href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/intro/">
|
||
|
||
|
||
<link rel="prev" href="../../databases_sql/conclusion/">
|
||
|
||
|
||
<link rel="next" href="../key_concepts/">
|
||
|
||
|
||
<link rel="icon" href="../../../img/favicon.ico">
|
||
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.12">
|
||
|
||
|
||
|
||
<title>Introduction - School Of SRE</title>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/stylesheets/main.7e359304.min.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../../stylesheets/custom.css">
|
||
|
||
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</head>
|
||
|
||
|
||
<body dir="ltr">
|
||
|
||
|
||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
<label class="md-overlay" for="__drawer"></label>
|
||
<div data-md-component="skip">
|
||
|
||
|
||
<a href="#nosql-concepts" class="md-skip">
|
||
Skip to content
|
||
</a>
|
||
|
||
</div>
|
||
<div data-md-component="announce">
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<script async defer data-domain="linkedin.github.io" src="https://tracking.eskratch.com/js/plausible.js"></script>
|
||
<script>document.addEventListener("DOMContentLoaded", function() {
|
||
if (document.getElementById("nav-2").checked!=true && document.getElementById("nav-3").checked!=true && window.innerWidth>1220){
|
||
document.getElementById("nav-2").checked=true;
|
||
document.getElementById("nav-3").checked=true;
|
||
|
||
}
|
||
});</script>
|
||
|
||
|
||
|
||
<header class="md-header" data-md-component="header">
|
||
<nav class="md-header__inner md-grid" aria-label="header.title">
|
||
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" class="md-header__button md-logo" aria-label="School Of SRE">
|
||
|
||
<img src="../../../img/sos.png" alt="logo">
|
||
|
||
</a>
|
||
<!-- Button to open drawer -->
|
||
<label class="md-header__button md-icon" for="__drawer">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
||
</label>
|
||
<div class="md-header__title" data-md-component="header-title">
|
||
|
||
<div class="md-header__ellipsis">
|
||
<span class="md-header__topic md-ellipsis">
|
||
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" >
|
||
School Of SRE
|
||
</a>
|
||
</span>
|
||
<span class="md-header__topic md-ellipsis">
|
||
|
||
Introduction
|
||
|
||
</span>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<label class="md-header__button md-icon" for="__search">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
</label>
|
||
<div class="md-search" data-md-component="search" role="dialog">
|
||
<label class="md-search__overlay" for="__search"></label>
|
||
<div class="md-search__inner" role="search">
|
||
<form class="md-search__form" name="search">
|
||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||
<label class="md-search__icon md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||
</label>
|
||
<nav class="md-search__options" aria-label="Search">
|
||
|
||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||
</button>
|
||
</nav>
|
||
|
||
</form>
|
||
<div class="md-search__output">
|
||
<div class="md-search__scrollwrap" data-md-scrollfix>
|
||
<div class="md-search-result" data-md-component="search-result">
|
||
<div class="md-search-result__meta">
|
||
Initializing search
|
||
</div>
|
||
<ol class="md-search-result__list" role="presentation"></ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</nav>
|
||
</header>
|
||
|
||
<div class="md-container" data-md-component="container">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<main class="md-main" data-md-component="main">
|
||
<div class="md-main__inner md-grid">
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
|
||
<!-- Navigation -->
|
||
<nav
|
||
class="md-nav md-nav--primary"
|
||
aria-label="Navigation"
|
||
data-md-level="0"
|
||
>
|
||
|
||
<!-- Repository information -->
|
||
|
||
|
||
<!-- Navigation list -->
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../.." class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Home
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2"
|
||
checked
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2"
|
||
id="__nav_2_label"
|
||
tabindex=""
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Level 101
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="1"
|
||
aria-labelledby="__nav_2_label"
|
||
aria-expanded="true"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Level 101
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_1"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_1"
|
||
id="__nav_2_1_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Fundamentals Series
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_1_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_1">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Fundamentals Series
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_1_1"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_1_1"
|
||
id="__nav_2_1_1_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Linux Basics
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_1_1_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_1_1">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Linux Basics
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_basics/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_basics/command_line_basics/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Command Line Basics
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_basics/linux_server_administration/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Server Administration
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_basics/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_1_2"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_1_2"
|
||
id="__nav_2_1_2_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Git
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_1_2_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_1_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Git
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../git/git-basics/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Git Basics
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../git/branches/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Working With Branches
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../git/github-hooks/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Github and Hooks
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../git/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_1_3"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_1_3"
|
||
id="__nav_2_1_3_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Linux Networking
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_1_3_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_1_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Linux Networking
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/dns/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
DNS
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/udp/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
UDP
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/http/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
HTTP
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/tcp/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
TCP
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/ipr/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Routing
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../linux_networking/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_2"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_2"
|
||
id="__nav_2_2_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Python and Web
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_2_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Python and Web
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../python_web/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../python_web/python-concepts/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Some Python Concepts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../python_web/python-web-flask/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Python, Web and Flask
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../python_web/url-shorten-app/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
The URL Shortening App
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../python_web/sre-conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_3"
|
||
checked
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_3"
|
||
id="__nav_2_3_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Data
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_3_label"
|
||
aria-expanded="true"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Data
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_3_1"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_3_1"
|
||
id="__nav_2_3_1_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Relational Databases
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_3_1_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_3_1">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Relational Databases
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/concepts/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Key Concepts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/mysql/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
MySQL
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/innodb/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
InnoDB
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/backup_recovery/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Backup and Recovery
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/replication/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
MySQL Replication
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/operations/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Operational Concepts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/select_query/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Select Query
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/query_performance/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Query Performance
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/lab/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Lab
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../databases_sql/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_3_2"
|
||
checked
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_3_2"
|
||
id="__nav_2_3_2_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
NoSQL
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_3_2_label"
|
||
aria-expanded="true"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_3_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
NoSQL
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item md-nav__item--active">
|
||
|
||
|
||
<!-- State toggle -->
|
||
<input
|
||
class="md-nav__toggle md-toggle"
|
||
type="checkbox"
|
||
id="__toc"
|
||
/>
|
||
|
||
<!-- Hack: see partials/toc.html for more information -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Navigation link to table of contents -->
|
||
|
||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<a
|
||
href="./"
|
||
class="md-nav__link md-nav__link--active"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
|
||
<!-- Table of contents -->
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#prerequisites" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Prerequisites
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#what-to-expect-from-this-course" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
What to expect from this course
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#what-is-not-covered-under-this-course" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
What is not covered under this course
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#course-contents" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Course Contents
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#introduction" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Introduction">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#types-of-nosql-databases" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Types of NoSQL databases:
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#comparison" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Comparison
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#differences-between-sql-and-nosql" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Differences between SQL and NoSQL
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#advantages" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Advantages
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<!-- Navigation item -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../key_concepts/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Key Concepts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../further_reading/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_3_3"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_3_3"
|
||
id="__nav_2_3_3_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Message Queue
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_3_3_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_3_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Message Queue
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../messagequeue/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../messagequeue/key_concepts/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Key Concepts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../messagequeue/further_reading/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_3_4"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_3_4"
|
||
id="__nav_2_3_4_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Big Data
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_2_3_4_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_3_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Big Data
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../big_data/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../big_data/evolution/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Evolution and Architecture of Hadoop
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../big_data/tasks/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_4"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_4"
|
||
id="__nav_2_4_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Systems Design
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_4_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Systems Design
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../systems_design/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../systems_design/scalability/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Scalability
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../systems_design/availability/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Availability
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../systems_design/fault-tolerance/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Fault Tolerance
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../systems_design/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_5"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_5"
|
||
id="__nav_2_5_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Metrics and Monitoring
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_5_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_5">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Metrics and Monitoring
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/introduction/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/command-line_tools/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Command-line Tools
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/third-party_monitoring/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Third-party Monitoring
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/alerts/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Proactive Monitoring with Alerts
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/best_practices/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Best Practices for Monitoring
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/observability/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Observability
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../metrics_and_monitoring/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_2_6"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_2_6"
|
||
id="__nav_2_6_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Security
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_2_6_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_2_6">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Security
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/fundamentals/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Fundamentals of Security
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/network_security/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Network Security
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/threats_attacks_defences/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Threat, Attacks & Defences
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/writing_secure_code/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Writing Secure code
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../security/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3"
|
||
id="__nav_3_label"
|
||
tabindex=""
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Level 102
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="1"
|
||
aria-labelledby="__nav_3_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Level 102
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_1"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_1"
|
||
id="__nav_3_1_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Linux Intermediate
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_1_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_1">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Linux Intermediate
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/introduction/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/package_management/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Package Management
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/storage_media/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Storage Media
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/archiving_backup/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Archiving and Backup
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/introvim/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction to Vim
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/bashscripting/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Bash Scripting
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/linux_intermediate/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_2"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_2"
|
||
id="__nav_3_2_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Linux Advanced
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_2_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Linux Advanced
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_2_1"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_2_1"
|
||
id="__nav_3_2_1_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Containerization And Orchestration
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_3_2_1_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_2_1">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Containerization And Orchestration
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/containerization_and_orchestration/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/containerization_and_orchestration/intro_to_containers/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction To Containers
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/containerization_and_orchestration/containerization_with_docker/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Containerization With Docker
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/containerization_and_orchestration/orchestration_with_kubernetes/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Orchestration With Kubernetes
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/containerization_and_orchestration/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_2_2"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_2_2"
|
||
id="__nav_3_2_2_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
System Calls and Signals
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="3"
|
||
aria-labelledby="__nav_3_2_2_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_2_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
System Calls and Signals
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_calls_and_signals/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_calls_and_signals/signals/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Signals
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_calls_and_signals/system_calls/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
System Calls
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_calls_and_signals/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_3"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_3"
|
||
id="__nav_3_3_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Networking
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_3_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Networking
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/introduction/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/security/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Security
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/scale/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Scale
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/rtt/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
RTT
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/infrastructure-features/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Infrastructure Services
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/networking/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_4"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_4"
|
||
id="__nav_3_4_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
System Design
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_4_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_4">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
System Design
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/intro/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/large-system-design/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Large System Design
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/scaling/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Scaling
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/scaling-beyond-the-datacenter/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Scaling Beyond the Data Center
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/resiliency/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Resiliency
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_design/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_5"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_5"
|
||
id="__nav_3_5_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
System Troubleshooting and Performance Improvements
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_5_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_5">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
System Troubleshooting and Performance Improvements
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/introduction/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Troubleshooting
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/important-tools/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Important Tools
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/performance-improvements/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Performance Improvements
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting-example/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Troubleshooting Example
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/system_troubleshooting_and_performance/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
|
||
<!-- Determine all nested items that are index pages -->
|
||
|
||
|
||
|
||
<!-- Navigation tabs -->
|
||
|
||
|
||
<!-- Render 1st level items with nested items as sections -->
|
||
|
||
|
||
|
||
<!-- Navigation pruning -->
|
||
|
||
|
||
<!-- Nested navigation item -->
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<!-- Determine checked and indeterminate state -->
|
||
|
||
|
||
<!-- Active checkbox expands items contained within nested section -->
|
||
<input
|
||
class="md-nav__toggle md-toggle "
|
||
type="checkbox"
|
||
id="__nav_3_6"
|
||
|
||
/>
|
||
|
||
<!-- Toggle to expand nested items -->
|
||
|
||
|
||
<label
|
||
class="md-nav__link"
|
||
for="__nav_3_6"
|
||
id="__nav_3_6_label"
|
||
tabindex="0"
|
||
>
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Continuous Integration and Continuous Delivery
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<!-- Toggle to expand nested items with link to index page -->
|
||
|
||
|
||
<!-- Nested navigation -->
|
||
<nav
|
||
class="md-nav"
|
||
data-md-level="2"
|
||
aria-labelledby="__nav_3_6_label"
|
||
aria-expanded="false"
|
||
>
|
||
<label class="md-nav__title" for="__nav_3_6">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Continuous Integration and Continuous Delivery
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
<!-- Nested navigation item -->
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction_to_cicd/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
What is CI/CD?
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/cicd_brief_history/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Brief History
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_integration_build_pipeline/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Continuous Integration
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_delivery_release_pipeline/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Continuous Delivery and Deployment
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/jenkins_cicd_pipeline_hands_on_lab/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
CI/CD Pipeline - Hands-on
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../level102/continuous_integration_and_continuous_delivery/conclusion/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Conclusion
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<!-- Pruned navigation item -->
|
||
|
||
</li>
|
||
|
||
<!-- Currently active page -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../CONTRIBUTING/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Contribute
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../CODE_OF_CONDUCT/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
Code of Conduct
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Determine classes -->
|
||
|
||
|
||
|
||
<!-- Determine active page for paginated views -->
|
||
|
||
|
||
<!-- Navigation item with nested items -->
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../sre_community/" class="md-nav__link">
|
||
|
||
|
||
<!-- Navigation link icon -->
|
||
|
||
|
||
<!-- Navigation link title -->
|
||
<span class="md-ellipsis">
|
||
SRE Community
|
||
</span>
|
||
|
||
<!-- Navigation link status -->
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#prerequisites" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Prerequisites
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#what-to-expect-from-this-course" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
What to expect from this course
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#what-is-not-covered-under-this-course" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
What is not covered under this course
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#course-contents" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Course Contents
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#introduction" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Introduction
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Introduction">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#types-of-nosql-databases" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Types of NoSQL databases:
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#comparison" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Comparison
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#differences-between-sql-and-nosql" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Differences between SQL and NoSQL
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#advantages" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Advantages
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-content" data-md-component="content">
|
||
<article class="md-content__inner md-typeset">
|
||
|
||
|
||
|
||
|
||
<h1 id="nosql-concepts">NoSQL Concepts</h1>
|
||
<h2 id="prerequisites">Prerequisites</h2>
|
||
<ul>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_sql/intro/">Relational Databases</a></li>
|
||
</ul>
|
||
<h2 id="what-to-expect-from-this-course">What to expect from this course</h2>
|
||
<p>At the end of training, you will have an understanding of what a NoSQL database is, what kind of advantages or disadvantages it has over traditional RDBMS, learn about different types of NoSQL databases and understand some of the underlying concepts & trade-offs w.r.t to NoSQL.</p>
|
||
<h2 id="what-is-not-covered-under-this-course">What is not covered under this course</h2>
|
||
<p>We will not be deep diving into any specific NoSQL database. </p>
|
||
<h2 id="course-contents">Course Contents</h2>
|
||
<ul>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/intro/#introduction">Introduction to NoSQL</a></li>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/key_concepts/#cap-theorem">CAP Theorem</a></li>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/key_concepts/#versioning-of-data-in-distributed-systems">Data versioning</a></li>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/key_concepts/#partitioning">Partitioning</a></li>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/key_concepts/#hashing">Hashing</a></li>
|
||
<li><a href="https://linkedin.github.io/school-of-sre/level101/databases_nosql/key_concepts/#quorum">Quorum</a></li>
|
||
</ul>
|
||
<h2 id="introduction">Introduction</h2>
|
||
<p>When people use the term “NoSQL database”, they typically use it to refer to any non-relational database. Some say the term “NoSQL” stands for “non SQL” while others say it stands for “not only SQL.” Either way, most agree that NoSQL databases are databases that store data in a format other than relational tables.</p>
|
||
<p>A common misconception is that NoSQL databases or non-relational databases don’t store relationship data well. NoSQL databases can store relationship data—they just store it differently than relational databases do. In fact, when compared with SQL databases, many find modeling relationship data in NoSQL databases to be <em>easier</em>, because related data doesn’t have to be split between tables.</p>
|
||
<p>Such databases have existed since the late 1960s, but the name "NoSQL" was only coined in the early 21st century. NASA used a NoSQL database to track inventory for the Apollo mission. NoSQL databases emerged in the late 2000s as the cost of storage dramatically decreased. Gone were the days of needing to create a complex, difficult-to-manage data model simply for the purposes of reducing data duplication. Developers (rather than storage) were becoming the primary cost of software development, so NoSQL databases optimized for developer productivity. With the rise of Agile development methodology, NoSQL databases were developed with a focus on scaling, fast performance and at the same time allowed for frequent application changes and made programming easier.</p>
|
||
<h3 id="types-of-nosql-databases">Types of NoSQL databases:</h3>
|
||
<p>Over time due to the way these NoSQL databases were developed to suit requirements at different companies, we ended up with quite a few types of them. However, they can be broadly classified into 4 types. Some of the databases can overlap between different types. They are:</p>
|
||
<ol>
|
||
<li>
|
||
<p><strong>Document databases:</strong> They store data in documents similar to <a href="https://www.json.org/json-en.html">JSON</a> (JavaScript Object Notation) objects. Each document contains pairs of fields and values. The values can typically be a variety of types including things like strings, numbers, booleans, arrays, or objects, and their structures typically align with objects developers are working with in code. The advantages include intuitive data model & flexible schemas. Because of their variety of field value types and powerful query languages, document databases are great for a wide variety of use cases and can be used as a general purpose database. They can horizontally scale-out to accomodate large data volumes. Ex: MongoDB, Couchbase</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Key-Value databases:</strong> These are a simpler type of databases where each item contains keys and values. A value can typically only be retrieved by referencing its key, so learning how to query for a specific key-value pair is typically simple. Key-value databases are great for use cases where you need to store large amounts of data but you don’t need to perform complex queries to retrieve it. Common use cases include storing user preferences or caching. Ex: <a href="https://redis.io/">Redis</a>, <a href="https://aws.amazon.com/dynamodb/">DynamoDB</a>, <a href="https://www.project-voldemort.com/voldemort/">Voldemort</a>/<a href="https://engineering.linkedin.com/blog/2017/04/building-venice--a-production-software-case-study">Venice</a> (Linkedin).</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Wide-Column stores:</strong> They store data in tables, rows, and dynamic columns. Wide-column stores provide a lot of flexibility over relational databases because each row is not required to have the same columns. Many consider wide-column stores to be two-dimensional key-value databases. Wide-column stores are great for when you need to store large amounts of data and you can predict what your query patterns will be. Wide-column stores are commonly used for storing Internet of Things data and user profile data. <a href="https://cassandra.apache.org/">Cassandra</a> and <a href="https://hbase.apache.org/">HBase</a> are two of the most popular wide-column stores.</p>
|
||
</li>
|
||
<li><strong>Graph Databases:</strong> These databases store data in nodes and edges. Nodes typically store information about people, places, and things while edges store information about the relationships between the nodes. The underlying storage mechanism of graph databases can vary. Some depend on a relational engine and “store” the graph data in a table (although a table is a logical element, therefore this approach imposes another level of abstraction between the graph database, the graph database management system and the physical devices where the data is actually stored). Others use a key-value store or document-oriented database for storage, making them inherently NoSQL structures. Graph databases excel in use cases where you need to traverse relationships to look for patterns such as social networks, fraud detection, and recommendation engines. Ex: <a href="https://neo4j.com/">Neo4j</a> </li>
|
||
</ol>
|
||
<h3 id="comparison"><strong>Comparison</strong></h3>
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
</td>
|
||
<td>Performance
|
||
</td>
|
||
<td>Scalability
|
||
</td>
|
||
<td>Flexibility
|
||
</td>
|
||
<td>Complexity
|
||
</td>
|
||
<td>Functionality
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Key Value
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>none
|
||
</td>
|
||
<td>Variable
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Document stores
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>Variable (high)
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>low
|
||
</td>
|
||
<td>Variable (low)
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Column DB
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>moderate
|
||
</td>
|
||
<td>low
|
||
</td>
|
||
<td>minimal
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Graph
|
||
</td>
|
||
<td>Variable
|
||
</td>
|
||
<td>Variable
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>high
|
||
</td>
|
||
<td>Graph theory
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h3 id="differences-between-sql-and-nosql">Differences between SQL and NoSQL</h3>
|
||
<p>The table below summarizes the main differences between SQL and NoSQL databases.</p>
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
</td>
|
||
<td>SQL Databases
|
||
</td>
|
||
<td>NoSQL Databases
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Data Storage Model
|
||
</td>
|
||
<td>Tables with fixed rows and columns
|
||
</td>
|
||
<td>Document: JSON documents, Key-value: key-value pairs, Wide-column: tables with rows and dynamic columns, Graph: nodes and edges
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Primary Purpose
|
||
</td>
|
||
<td>General purpose
|
||
</td>
|
||
<td>Document: general purpose, Key-value: large amounts of data with simple lookup queries, Wide-column: large amounts of data with predictable query patterns, Graph: analyzing and traversing relationships between connected data
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Schemas
|
||
</td>
|
||
<td>Rigid
|
||
</td>
|
||
<td>Flexible
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Scaling
|
||
</td>
|
||
<td>Vertical (scale-up with a larger server)
|
||
</td>
|
||
<td>Horizontal (scale-out across commodity servers)
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Multi-Record <a href="https://en.wikipedia.org/wiki/ACID">ACID </a>Transactions
|
||
</td>
|
||
<td>Supported
|
||
</td>
|
||
<td>Most do not support multi-record ACID transactions. However, some like MongoDB do.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Joins
|
||
</td>
|
||
<td>Typically required
|
||
</td>
|
||
<td>Typically not required
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Data to Object Mapping
|
||
</td>
|
||
<td>Requires ORM (object-relational mapping)
|
||
</td>
|
||
<td>Many do not require ORMs. Document DB documents map directly to data structures in most popular programming languages.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h3 id="advantages">Advantages</h3>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Flexible Data Models</strong></p>
|
||
<p>Most NoSQL systems feature flexible schemas. A flexible schema means you can easily modify your database schema to add or remove fields to support for evolving application requirements. This facilitates with continuous application development of new features without database operation overhead.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Horizontal Scaling</strong></p>
|
||
<p>Most NoSQL systems allow you to scale horizontally, which means you can add in cheaper & commodity hardware, whenever you want to scale a system. On the other hand, SQL systems generally scale Vertically (a more powerful server). NoSQL systems can also host huge datasets when compared to traditional SQL systems.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Fast Queries</strong></p>
|
||
<p>NoSQL can generally be a lot faster than traditional SQL systems due to data denormalization and horizontal scaling. Most NoSQL systems also tend to store similar data together facilitating faster query responses. </p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Developer productivity</strong></p>
|
||
<p>NoSQL systems tend to map data based on the programming data structures. As a result, developers need to perform fewer data transformations leading to increased productivity & fewer bugs.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
|
||
|
||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<footer class="md-footer">
|
||
|
||
<div class="md-footer-meta md-typeset">
|
||
<div class="md-footer-meta__inner md-grid">
|
||
<div class="md-copyright">
|
||
|
||
<div class="md-copyright__highlight">
|
||
Copyright 2020 LinkedIn Corporation. All Rights Reserved. Licensed under the Creative Commons Attribution 4.0 International Public License
|
||
</div>
|
||
|
||
|
||
Made with
|
||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||
Material for MkDocs
|
||
</a>
|
||
|
||
</div>
|
||
|
||
<div class="md-social">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://github.com/linkedin/school-of-sre" target="_blank" rel="noopener" title="github.com" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</div>
|
||
<div class="md-dialog" data-md-component="dialog">
|
||
<div class="md-dialog__inner md-typeset"></div>
|
||
</div>
|
||
|
||
|
||
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.sections"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
||
|
||
|
||
<script src="../../../assets/javascripts/bundle.c8d2eff1.min.js"></script>
|
||
|
||
|
||
</body>
|
||
</html> |