diff --git a/contentserver.graffle b/contentserver.graffle index 9b9a0e0..d380454 100644 Binary files a/contentserver.graffle and b/contentserver.graffle differ diff --git a/graphics/Horizontal Update.svg b/graphics/Horizontal Update.svg new file mode 100644 index 0000000..27d4795 --- /dev/null +++ b/graphics/Horizontal Update.svg @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Produced by OmniGraffle 7.10.2 + 2019-05-29 10:21:17 +0000 + + + Horizontal Update + + + Layer 1 + + + + *Repo.Update() + + + + + + *Repo.tryUpdate() + + + + + + if updateErr != errUpdateRejected + + + + + + + + + *Repo.tryToRestoreCurrent() + + + + + + + + + + + + + *Repo.history.lock() + + + + + + return errUpdateRejected + + + + + + + + + + + + queue full + + + + + + queue free + + + + + + return updateResponse + + + + + + + + + *Repo.updateRoutine() + + + + + + + + + resChan <- *Repo.updateInProgressChannel: + + + + + + *Repo.update() + + + + + + *Repo.get() + + + + + + *Repo.loadNodesFromJSON() + + + + + + *Repo.loadNodes() + + + + + + + + + for dimension, newNode := range nodes { + *Repo.updateDimension(dimension, newNode) + } + + + + + + *Repo.dimensionUpdateRoutine() + + + + + + *Repo._updateDimension() + + + + + + + + + newNode.WireParents() + + + + + + buildDirectory() + + + + + + wireAliases() + + + + + + dimensionUpdateDoneChan <- err + + + + + + *Repo.history.add(jsonBytes) + + + + + + + + + resultChan <- updateResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update error + + + + + + + return errUpdateRejected + + + + + + + + + lockfile exists + + + + + + *Repo.updateInProgressChan <- make(chan updateResponse) + + + + + + + + + + *Repo.history.unlock() + + + + + + + + + + *Repo.history. + broadcastUpdate() + + + + + + + + Contentserver Horizontal Scaling: Update Flow + + + + + + Remove lockfile + + + + + + Broadcast update via NATS + + + + + + Create lockfile + + + + + diff --git a/graphics/Horizontal.svg b/graphics/Horizontal.svg new file mode 100644 index 0000000..818bf78 --- /dev/null +++ b/graphics/Horizontal.svg @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Produced by OmniGraffle 7.10.2 + 2019-05-29 10:21:17 +0000 + + + Horizontal + + + Layer 1 + + + + + + + + + + + + + + + + + + + + contentserver + + + + + + + Web server + + + + + + + TCP Socket server + + + + + + CONTENT.JSON + + + + + + Content Source Webservice + + + + + + Repo + + + + + + RepoNode + + + + + + Dimension + + + + + + RepoNode + + + + + + Dimension + + + + + + + + + + GetContent + + + + + + + GetURIs + + + + + + + GetNodes + + + + + + + Update + + + + + + + GetRepo + + + + + + contentserver-repo-current.json + + + + + + Var Directory (aka History) + + + + + + Logfile (JSON or TXT) + + + + + + + API + + + + + + + + + + + + + + + + + + contentserver-repo-[Timestamp].json + + + + + + Log entry + + + + + + Log entry + + + + + + Log entry + + + + + + Log entry + + + + + + + + + + + + + + + + + + + + + + + + + contentserver + + + + + + + Web server + + + + + + + TCP Socket server + + + + + + Repo + + + + + + RepoNode + + + + + + Dimension + + + + + + RepoNode + + + + + + Dimension + + + + + + + GetContent + + + + + + + GetURIs + + + + + + + GetNodes + + + + + + + Update + + + + + + + GetRepo + + + + + + + API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Logfile (JSON or TXT) + + + + + + Log entry + + + + + + Log entry + + + + + + Log entry + + + + + + Log entry + + + + + + + updateInProgress.lock + + + + + diff --git a/graphics/Overview.svg b/graphics/Overview.svg index 76e7e97..6cd547d 100644 --- a/graphics/Overview.svg +++ b/graphics/Overview.svg @@ -1,6 +1,6 @@ - + @@ -24,9 +24,9 @@ Produced by OmniGraffle 7.10.2 - 2019-05-27 08:17:48 +0000 + 2019-05-29 10:21:17 +0000 - + Overview @@ -35,7 +35,7 @@ - + @@ -148,8 +148,8 @@ - - + + contentserver-repo-current.json @@ -185,20 +185,8 @@ - - - contentserver-repo-[Timestamp].json - - - - - - contentserver-repo-[Timestamp].json - - - - - + + contentserver-repo-[Timestamp].json diff --git a/graphics/Update-Flow.svg b/graphics/Update-Flow.svg index ecbefa5..c5952f2 100644 --- a/graphics/Update-Flow.svg +++ b/graphics/Update-Flow.svg @@ -1,6 +1,6 @@ - + @@ -22,14 +22,19 @@ + + + + + Produced by OmniGraffle 7.10.2 - 2019-05-27 08:17:48 +0000 + 2019-05-29 10:21:17 +0000 - - Update Flow - - + + Update-Flow + + Layer 1 @@ -43,12 +48,6 @@ *Repo.tryUpdate() - - - - *Repo.tryUpdate() - - @@ -58,21 +57,12 @@ - - - failure - - - - success - - @@ -98,26 +88,26 @@ - - - failure + + + update error - + - + - - + + queue full - - + + queue free @@ -216,7 +206,7 @@ - <- dimensionUpdateDoneChan + dimensionUpdateDoneChan <- err @@ -231,7 +221,7 @@ - return updateResponse + resultChan <- updateResponse @@ -258,6 +248,13 @@ + + + Contentserver + : + Update Flow + +