From b6d4f64e3d7d7aa5ae5a2325fdb50b95dad45490 Mon Sep 17 00:00:00 2001 From: Logan Allen Date: Mon, 7 Jun 2021 12:36:50 -0500 Subject: [PATCH] graph-store: clean up old migrations, use some of the new +on methods --- pkg/arvo/app/graph-push-hook.hoon | 35 +++---- pkg/arvo/app/graph-store.hoon | 107 +++++--------------- pkg/arvo/lib/graph-store.hoon | 160 ------------------------------ pkg/arvo/lib/hark/store.hoon | 4 +- pkg/arvo/mar/graph/update-0.hoon | 18 ---- pkg/arvo/mar/graph/update.hoon | 18 ---- pkg/arvo/sur/graph-store.hoon | 70 ------------- 7 files changed, 40 insertions(+), 372 deletions(-) delete mode 100644 pkg/arvo/mar/graph/update-0.hoon delete mode 100644 pkg/arvo/mar/graph/update.hoon diff --git a/pkg/arvo/app/graph-push-hook.hoon b/pkg/arvo/app/graph-push-hook.hoon index 853828d89..17a8c862d 100644 --- a/pkg/arvo/app/graph-push-hook.hoon +++ b/pkg/arvo/app/graph-push-hook.hoon @@ -131,10 +131,9 @@ =^ allowed cards (is-allowed-add:hc rid nodes.q.update) ?. allowed [cards ~] - =/ mark-cached (~(has by graph-to-mark) rid) =/ mark - ?: mark-cached - (~(got by graph-to-mark) rid) + %+ fall + (~(get by graph-to-mark) rid) (get-mark:gra rid) ?~ mark [cards `vas] @@ -143,15 +142,12 @@ |% ++ $ ^- (quip card (unit vase)) - =/ transform-cached (~(has by transform-marks) u.mark) =/ transform=cached-transform - ?: transform-cached - (~(got by transform-marks) u.mark) + %+ fall + (~(get by transform-marks) u.mark) =/ =tube:clay .^(tube:clay (scry:hc %cc %home /[u.mark]/transform-add-nodes)) - !< cached-transform - %. !>(*indexed-post:store) - tube + !<(cached-transform (tube !>(*indexed-post:store))) =/ [* result=(list [index:store node:store])] %+ roll (flatten-node-map ~(tap by nodes.q.update)) @@ -164,13 +160,15 @@ update %+ weld cards %- zing - :~ ?: mark-cached ~ + :~ ?: (~(has by graph-to-mark) rid) + ~ :_ ~ %+ poke-self:pass:io %graph-cache-hook !> ^- cache-action [%graph-to-mark rid mark] :: - ?: transform-cached ~ + ?: (~(has by transform-marks) u.mark) + ~ :_ ~ %+ poke-self:pass:io %graph-cache-hook !> ^- cache-action @@ -316,28 +314,27 @@ |= [=resource:res perm=@t vip=vip-metadata:metadata =indexed-post:store] ^- [permissions:store (list card)] |^ - =/ mark-cached (~(has by graph-to-mark.cache) resource) =/ mark - ?: mark-cached - (~(got by graph-to-mark.cache) resource) + %+ fall + (~(get by graph-to-mark.cache) resource) (get-mark:gra resource) ?~ mark [[%no %no %no] ~] =/ key [u.mark (perm-mark-name perm)] - =/ perms-cached (~(has by perm-marks.cache) key) =/ convert - ?: perms-cached - (~(got by perm-marks.cache) key) + %+ fall + (~(get by perm-marks.cache) key) .^(cached-permission (scry %cf %home /[u.mark]/(perm-mark-name perm))) :- ((convert indexed-post) vip) %- zing - :~ ?: mark-cached ~ + :~ ?: (~(has by graph-to-mark.cache) resource) + ~ :_ ~ %+ poke-self:pass:io %graph-cache-hook !> ^- cache-action [%graph-to-mark resource mark] :: - ?: perms-cached ~ + ?: (~(has by perm-marks.cache) key) ~ :_ ~ %+ poke-self:pass:io %graph-cache-hook !> ^- cache-action diff --git a/pkg/arvo/app/graph-store.hoon b/pkg/arvo/app/graph-store.hoon index cf9e84ea4..c9aeb9d67 100644 --- a/pkg/arvo/app/graph-store.hoon +++ b/pkg/arvo/app/graph-store.hoon @@ -5,9 +5,9 @@ |% +$ card card:agent:gall +$ versioned-state - $% [%0 network:zero:store] - [%1 network:zero:store] - [%2 network:zero:store] + $% [%0 *] + [%1 *] + [%2 *] [%3 network:one:store] [%4 network:store] state-5 @@ -50,43 +50,9 @@ =| cards=(list card) |- ?- -.old - %0 - =* zro zero-load:upgrade:store - %_ $ - -.old %1 - :: - graphs.old - %- ~(run by graphs.old) - |= [=graph:zero:store q=(unit mark)] - ^- [graph:zero:store (unit mark)] - :- (convert-unix-timestamped-graph:zro graph) - ?^ q q - `%graph-validator-link - :: - update-logs.old - %- ~(run by update-logs.old) - |=(a=* *update-log:zero:store) - == - :: - %1 - =* zro zero-load:upgrade:store - %_ $ - -.old %2 - graphs.old (~(run by graphs.old) change-revision-graph:zro) - :: - update-logs.old - %- ~(run by update-logs.old) - |=(a=* *update-log:zero:store) - == - :: - %2 - =* upg upgrade:store - %_ $ - -.old %3 - update-logs.old (~(run by update-logs.old) update-log-to-one:upg) - graphs.old (~(run by graphs.old) marked-graph-to-one:upg) - archive.old (~(run by archive.old) marked-graph-to-one:upg) - == + %0 [~ this] + %1 [~ this] + %2 [~ this] :: %3 =* upg upgrade:store @@ -274,7 +240,7 @@ ?~ index ?=(^ node) ?~ t.index - ?=(^ (get:orm graph i.index)) + (has:orm graph i.index) =. node (get:orm graph i.index) ?~ node %.n ?- -.children.u.node @@ -343,7 +309,7 @@ :: =/ parent=node:store ~| "index does not exist to add a node to!" - (need (get:orm graph atom)) + (got:orm graph atom) %_ parent children ^- internal-graph:store @@ -416,7 +382,7 @@ ?~ t.index =/ =node:store ~| "cannot remove index that does not exist {}" - (need (get:orm graph atom)) + (got:orm graph atom) %_ node post ~| "cannot remove post that has already been removed" @@ -434,7 +400,7 @@ :: =/ parent=node:store ~| "parent index does not exist to remove a node from!" - (need (get:orm graph atom)) + (got:orm graph atom) ~| "child index does not exist to remove a node from!" ?> ?=(%graph -.children.parent) %_ parent @@ -478,7 +444,7 @@ =* atom i.index =/ =node:store ~| "node does not exist to add signatures to!" - (need (get:orm graph atom)) + (got:orm graph atom) :: last index in list :: %^ put:orm @@ -525,7 +491,7 @@ =* atom i.index =/ =node:store ~| "node does not exist to add signatures to!" - (need (get:orm graph atom)) + (got:orm graph atom) :: last index in list :: %^ put:orm @@ -627,10 +593,9 @@ |= [=graph:store mark=(unit mark:store)] ^- [? _state] ?~ mark [%.y state] - =/ has-validator (~(has by validators) u.mark) =/ validate=$-(indexed-post:store indexed-post:store) - ?: has-validator - (~(got by validators) u.mark) + %+ fall + (~(get by validators) u.mark) .^ $-(indexed-post:store indexed-post:store) %cf (scot %p our.bowl) @@ -640,11 +605,13 @@ %graph-indexed-post ~ == - :_ state(validators (~(put by validators) u.mark validate)) + =? validators !(~(has by validators) u.mark) + (~(put by validators) u.mark validate) + :_ state |- ^- ? ?~ graph %.y - %+ roll (tap:orm graph) - |= [[=atom =node:store] out=?] + %+ all:orm graph + |= [=atom =node:store] ^- ? ?& ?| ?=(%| -.post.node) ?=(^ (validate [atom p.post.node])) @@ -1044,40 +1011,12 @@ ?+ wire (on-arvo:def wire sign-arvo) :: :: old wire, do nothing - [%graph *] [~ this] - [%validator @ ~] [~ this] - :: - [%try-rejoin @ *] - =/ rid=resource:store (de-path:res t.t.wire) - =/ nack-count (slav %ud i.t.wire) - ?> ?=([%behn %wake *] sign-arvo) - ~? ?=(^ error.sign-arvo) - "behn errored in backoff timers, continuing anyway" - =/ new=^wire [%try-rejoin (scot %ud +(nack-count)) t.t.wire] - :_ this - [%pass new %agent [entity.rid %graph-push-hook] %watch resource+t.t.wire]~ + [%graph *] [~ this] + [%validator @ ~] [~ this] + [%try-rejoin @ *] [~ this] == :: -++ on-agent - |= [=wire =sign:agent:gall] - ^- (quip card _this) - ?. ?=([%try-rejoin @ *] wire) - (on-agent:def wire sign) - ?. ?=(%watch-ack -.sign) - [~ this] - =/ rid=resource:store (de-path:res t.t.wire) - ?~ p.sign - =/ =cage [%pull-hook-action !>([%add entity.rid rid])] - :_ this - :~ [%pass / %agent [our.bowl %graph-pull-hook] %poke cage] - [%pass wire %agent [entity.rid %graph-push-hook] %leave ~] - == - =/ nack-count=@ud (slav %ud i.t.wire) - =/ wakeup=@da - (add now.bowl (mul ~s1 (bex (min 19 nack-count)))) - :_ this - [%pass wire %arvo %b %wait wakeup]~ -:: +++ on-agent on-agent:def ++ on-leave on-leave:def ++ on-fail on-fail:def -- diff --git a/pkg/arvo/lib/graph-store.hoon b/pkg/arvo/lib/graph-store.hoon index 5c64c9350..95704ff80 100644 --- a/pkg/arvo/lib/graph-store.hoon +++ b/pkg/arvo/lib/graph-store.hoon @@ -506,54 +506,6 @@ ^- maybe-post [%& p] :: - :: - :: +one - :: - ++ update-log-to-one - |= =update-log:zero - ^- update-log:one - %+ gas:orm-log:one *update-log:one - %+ turn (tap:orm-log:zero update-log) - |= [=time =logged-update:zero] - ^- [^time logged-update:one] - :- time - :- p.logged-update - (logged-update-to-one q.logged-update) - :: - ++ logged-update-to-one - |= upd=logged-update-0:zero - ^- logged-action:one - ?+ -.upd upd - %add-graph upd(graph (graph-to-one graph.upd)) - %add-nodes upd(nodes (~(run by nodes.upd) node-to-one)) - == - :: - ++ node-to-one - |= =node:zero - (node:(upgrade ,post:zero ,post) node post-to-one) - :: - ++ graph-to-one - |= =graph:zero - (graph:(upgrade ,post:zero ,post) graph post-to-one) - :: - ++ marked-graph-to-one - |= [=graph:zero m=(unit mark)] - [(graph-to-one graph) m] - :: - ++ post-to-one - |= p=post:zero - ^- post - p(contents (contents-to-one contents.p)) - :: - ++ contents-to-one - |= cs=(list content:zero) - ^- (list content) - %+ murn cs - |= =content:zero - ^- (unit ^content) - ?: ?=(%reference -.content) ~ - `content - :: ++ upgrade |* [in-pst=mold out-pst=mold] => @@ -605,118 +557,6 @@ [%empty ~] [%graph (graph p.children.nod fn)] -- - :: - ++ zero-load - :: =* infinitely recurses - =, store=zero - =, orm=orm:zero - =, orm-log=orm-log:zero - |% - ++ change-revision-graph - |= [=graph:store q=(unit mark)] - ^- [graph:store (unit mark)] - |^ - :_ q - ?+ q graph - [~ %graph-validator-link] convert-links - [~ %graph-validator-publish] convert-publish - == - :: - ++ convert-links - %+ gas:orm *graph:store - %+ turn (tap:orm graph) - |= [=atom =node:store] - ^- [^atom node:store] - :: top-level - :: - :+ atom post.node - ?: ?=(%empty -.children.node) - [%empty ~] - :- %graph - %+ gas:orm *graph:store - %+ turn (tap:orm p.children.node) - |= [=^atom =node:store] - ^- [^^atom node:store] - :: existing comments get turned into containers for revisions - :: - :^ atom - post.node(contents ~, hash ~) - %graph - %+ gas:orm *graph:store - :_ ~ :- %0 - :_ [%empty ~] - post.node(index (snoc index.post.node atom), hash ~) - :: - ++ convert-publish - %+ gas:orm *graph:store - %+ turn (tap:orm graph) - |= [=atom =node:store] - ^- [^atom node:store] - :: top-level - :: - :+ atom post.node - ?: ?=(%empty -.children.node) - [%empty ~] - :- %graph - %+ gas:orm *graph:store - %+ turn (tap:orm p.children.node) - |= [=^atom =node:store] - ^- [^^atom node:store] - :: existing container for publish note revisions - :: - ?+ atom !! - %1 [atom node] - %2 - :+ atom post.node - ?: ?=(%empty -.children.node) - [%empty ~] - :- %graph - %+ gas:orm *graph:store - %+ turn (tap:orm p.children.node) - |= [=^^atom =node:store] - ^- [^^^atom node:store] - :+ atom post.node(contents ~, hash ~) - :- %graph - %+ gas:orm *graph:store - :_ ~ :- %1 - :_ [%empty ~] - post.node(index (snoc index.post.node atom), hash ~) - == - -- - :: - ++ maybe-unix-to-da - |= =atom - ^- @ - :: (bex 127) is roughly 226AD - ?. (lte atom (bex 127)) - atom - (add ~1970.1.1 (div (mul ~s1 atom) 1.000)) - :: - ++ convert-unix-timestamped-node - |= =node:store - ^- node:store - =. index.post.node - (convert-unix-timestamped-index index.post.node) - ?. ?=(%graph -.children.node) - node - :+ post.node - %graph - (convert-unix-timestamped-graph p.children.node) - :: - ++ convert-unix-timestamped-index - |= =index:store - (turn index maybe-unix-to-da) - :: - ++ convert-unix-timestamped-graph - |= =graph:store - %+ gas:orm *graph:store - %+ turn - (tap:orm graph) - |= [=atom =node:store] - ^- [^atom node:store] - :- (maybe-unix-to-da atom) - (convert-unix-timestamped-node node) - -- -- ++ import |= [arc=* our=ship] diff --git a/pkg/arvo/lib/hark/store.hoon b/pkg/arvo/lib/hark/store.hoon index 6c7181980..4da76c752 100644 --- a/pkg/arvo/lib/hark/store.hoon +++ b/pkg/arvo/lib/hark/store.hoon @@ -59,9 +59,7 @@ ++ contents |= =contents:three ^- (unit contents:four) - ?. ?=(%graph -.contents) - `contents - `[%graph (turn list.contents post-to-one:upgrade:graph-store)] + ~ :: ++ unreads-each upg-unreads-each:upg diff --git a/pkg/arvo/mar/graph/update-0.hoon b/pkg/arvo/mar/graph/update-0.hoon deleted file mode 100644 index a9e9458a2..000000000 --- a/pkg/arvo/mar/graph/update-0.hoon +++ /dev/null @@ -1,18 +0,0 @@ -/+ *graph-store -=* as-octs as-octs:mimes:html -:: -|_ upd=update:zero -++ grad %noun -++ grow - |% - ++ noun upd - ++ graph-update upd - ++ mime [/application/x-urb-graph-update (as-octs (jam upd))] - -- -:: -++ grab - |% - ++ noun update:zero - ++ mime |=([* =octs] ;;(update:zero (cue q.octs))) - -- --- diff --git a/pkg/arvo/mar/graph/update.hoon b/pkg/arvo/mar/graph/update.hoon deleted file mode 100644 index 0da7052b4..000000000 --- a/pkg/arvo/mar/graph/update.hoon +++ /dev/null @@ -1,18 +0,0 @@ -/+ *graph-store -=* as-octs as-octs:mimes:html -:: -|_ upd=update:zero -++ grad %noun -++ grow - |% - ++ noun upd - ++ graph-update-0 upd - ++ mime [/application/x-urb-graph-update (as-octs (jam upd))] - -- -:: -++ grab - |% - ++ noun update:zero - ++ mime |=([* =octs] ;;(update:zero (cue q.octs))) - -- --- diff --git a/pkg/arvo/sur/graph-store.hoon b/pkg/arvo/sur/graph-store.hoon index 2217038f0..697fcb4c2 100644 --- a/pkg/arvo/sur/graph-store.hoon +++ b/pkg/arvo/sur/graph-store.hoon @@ -131,74 +131,4 @@ [%tag-queries =tag-queries] == -- -:: -:: %graph-store types version 0 -:: -++ zero - =< [. post-zero] - =, post-zero - |% - ++ orm ((ordered-map atom node) gth) - ++ orm-log ((ordered-map time logged-update) gth) - :: - +$ graph ((mop atom node) gth) - +$ marked-graph [p=graph q=(unit mark)] - :: - +$ node [=post children=internal-graph] - +$ graphs (map resource marked-graph) - :: - +$ tag-queries (jug term resource) - :: - +$ update-log ((mop time logged-update) gth) - +$ update-logs (map resource update-log) - :: - :: - +$ internal-graph - $~ [%empty ~] - $% [%graph p=graph] - [%empty ~] - == - :: - +$ network - $: =graphs - =tag-queries - =update-logs - archive=graphs - validators=(set mark) - == - :: - +$ update - $% [%0 p=time q=update-0] - == - :: - +$ logged-update - $% [%0 p=time q=logged-update-0] - == - :: - +$ logged-update-0 - $% [%add-graph =resource =graph mark=(unit mark) overwrite=?] - [%add-nodes =resource nodes=(map index node)] - [%remove-nodes =resource indices=(set index)] - [%add-signatures =uid =signatures] - [%remove-signatures =uid =signatures] - == - :: - +$ update-0 - $% logged-update-0 - [%remove-graph =resource] - :: - [%add-tag =term =resource] - [%remove-tag =term =resource] - :: - [%archive-graph =resource] - [%unarchive-graph =resource] - [%run-updates =resource =update-log] - :: - :: NOTE: cannot be sent as pokes - :: - [%keys =resources] - [%tags tags=(set term)] - [%tag-queries =tag-queries] - == - -- --