From 243aa31f1aefdc07e20eab27948f9bba1f432d10 Mon Sep 17 00:00:00 2001 From: Xargin Date: Mon, 24 Dec 2018 00:06:05 +0800 Subject: [PATCH] add img for ch6-3 --- ch6-cloud/ch6-03-delay-job.md | 110 ++------------------------------ images/ch6-binary_tree.png | Bin 0 -> 28858 bytes images/ch6-data-dist1.png | Bin 0 -> 12984 bytes images/ch6-data-dist2.png | Bin 0 -> 13562 bytes images/ch6-four-branch-tree.png | Bin 0 -> 16355 bytes 5 files changed, 4 insertions(+), 106 deletions(-) create mode 100644 images/ch6-binary_tree.png create mode 100644 images/ch6-data-dist1.png create mode 100644 images/ch6-data-dist2.png create mode 100644 images/ch6-four-branch-tree.png diff --git a/ch6-cloud/ch6-03-delay-job.md b/ch6-cloud/ch6-03-delay-job.md index 63901b3..8059b7b 100644 --- a/ch6-cloud/ch6-03-delay-job.md +++ b/ch6-cloud/ch6-03-delay-job.md @@ -19,38 +19,7 @@ timer 的实现在工业界已经是有解的问题了。常见的就是时间 最常见的时间堆一般用小顶堆实现,小顶堆其实就是一种特殊的二叉树: -``` - ┌─────┐ - │ │ - │ 5 │ - └─────┘ - │ - │ - ┌──────────┴──────────┐ - │ │ - ▼ ▼ - ┌─────┐ ┌─────┐ - │ │ │ │ - │ 6 │ │ 10 │ - └─────┘ └─────┘ - │ │ - ┌────┴─────┐ ┌────┴─────┐ - │ │ │ │ - ▼ ▼ ▼ ▼ - ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ - │ │ │ │ │ │ │ │ - │ 7 │ │ 6 │ │ 11 │ │ 20 │ - └─────┘ └─────┘ └─────┘ └─────┘ - │ │ - │ │ - ┌───────┴────┐ └───────┐ - │ │ │ - ▼ ▼ ▼ -┌─────┐ ┌─────┐ ┌─────┐ -│ │ │ │ ............... │ │ -│ 15 │ │ 8 │ │ 30 │ -└─────┘ └─────┘ └─────┘ -``` +![二叉堆](../images/ch6-binary_tree.png) 小顶堆的好处是什么呢?实际上对于定时器来说,如果堆顶元素比当前的时间还要大,那么说明堆内所有元素都比当前时间大。进而说明这个时刻我们还没有必要对时间堆进行任何处理。所以对于定时 check 来说,时间复杂度是 O(1) 的。 @@ -58,34 +27,7 @@ timer 的实现在工业界已经是有解的问题了。常见的就是时间 Go 自身的 timer 就是用时间堆来实现的,不过并没有使用二叉堆,而是使用了扁平一些的四叉堆。在最近的版本中,还加了一些优化,我们先不说优化,先来看看四叉的小顶堆长什么样: -``` - +-----+ - | | - | 0 | - +-----+ - | - | - | - v - +-----+-----+-----+-----+ - | | | | | - | 3 | 2 | 2 | 10 | - +-----+-----+-----+-----+ - | | | | - | | | | - +----------+ | | | | - +----------------+ 4*i+1 +-----------------------+ | | +-----------------------------+ - | +----------+ +-------------------+ +---+ | - | | | | - | | | | - v | | v -+-----+-----+-----+-----+ | | +-----+-----+-----+-----+ -| | | | | v v | | | | | -| 20 | 4 | 5 | 13 | +-----+-----+-----+-----+ +-----+-----+-----+-----+ | 99 | 13 | 11 | 12 | -+-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ - | 12 | 14 | 15 | 16 | | 3 | 10 | 3 | 3 | - +-----+-----+-----+-----+ +-----+-----+-----+-----+ -``` +![四叉堆](../images/ch6-four-branch-tree.png) 小顶堆的性质,父节点比其 4 个子节点都小,子节点之间没有特别的大小关系要求。 @@ -126,29 +68,7 @@ Go 自身的 timer 就是用时间堆来实现的,不过并没有使用二叉 我们可以参考 elasticsearch 的设计,每份任务数据都有多个副本,这里假设两副本: -``` -┌──────────┐ -│ node 1 │ -├──────────┴────────────────────────┐ -│ ┏━━━┓ ┌───┐ ┌───┐ ┏━━━┓ │ -│ ┃ 0 ┃ │ 1 │ │ 3 │ ┃ 4 ┃ │ -│ ┗━━━┛ └───┘ └───┘ ┗━━━┛ │ -└───────────────────────────────────┘ -┌──────────┐ -│ node 2 │ -├──────────┴────────────────────────┐ -│ ┌───┐ ┏━━━┓ ┏━━━┓ │ -│ │ 0 │ ┃ 2 ┃ ┃ 3 ┃ │ -│ └───┘ ┗━━━┛ ┗━━━┛ │ -└───────────────────────────────────┘ -┌──────────┐ -│ node 3 │ -├──────────┴────────────────────────┐ -│ ┏━━━┓ ┌───┐ ┌───┐ │ -│ ┃ 1 ┃ │ 2 │ │ 4 │ │ -│ ┗━━━┛ └───┘ └───┘ │ -└───────────────────────────────────┘ -``` +![数据分布](../images/ch6-data-dist1.png) 一份数据虽然有两个持有者,但持有者持有的副本会进行区分,比如持有的是主副本还是非主副本,主副本在图中为摸黑部分,非主副本为正常线条。 @@ -156,29 +76,7 @@ Go 自身的 timer 就是用时间堆来实现的,不过并没有使用二叉 当有机器故障时,任务数据需要进行 rebalance 工作,比如 node 1 挂了: -``` -┌──────────┐ -│ node 1 │ -├──────────┴────────────────────────┐ -│ │ -│ X X X │ -│ │ -└───────────────────────────────────┘ -┌──────────┐ -│ node 2 │ -├──────────┴────────────────────────┐ -│ ┌───┐ ┌───┐ ┏━━━┓ ┏━━━┓ ┏━━━┓ │ -│ │ 0 │ │ 1 │ ┃ 2 ┃ ┃ 3 ┃ ┃ 4 ┃ │ -│ └───┘ └───┘ ┗━━━┛ ┗━━━┛ ┗━━━┛ │ -└───────────────────────────────────┘ -┌──────────┐ -│ node 3 │ -├──────────┴────────────────────────┐ -│ ┏━━━┓ ┏━━━┓ ┌───┐ ┌───┐ ┌───┐ │ -│ ┃ 0 ┃ ┃ 1 ┃ │ 2 │ │ 3 │ │ 4 │ │ -│ ┗━━━┛ ┗━━━┛ └───┘ └───┘ └───┘ │ -└───────────────────────────────────┘ -``` +![数据分布2](../images/ch6-data-dist2.png) node 1 的数据会被迁移到 node 2 和 node 3 上。 diff --git a/images/ch6-binary_tree.png b/images/ch6-binary_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9b3c355f168ebebb963a582281b085cd985c44 GIT binary patch literal 28858 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 literal 0 HcmV?d00001 diff --git a/images/ch6-data-dist2.png b/images/ch6-data-dist2.png new file mode 100644 index 0000000000000000000000000000000000000000..eee84604000b51ae6f9e862f72d85151b94ad5c7 GIT binary patch literal 13562 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