summaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-04-11 15:30:45 -0700
committerBryan Newbold <bnewbold@robocracy.org>2018-04-11 15:30:45 -0700
commit229b22cedf786d55af210c806864459b29c1b27d (patch)
tree919e27a33e21a828db54db51c774e2100cc9c29b /TODO
parent2c769d488334bc6aab9f65a7c66e18442949d482 (diff)
downloadfatcat-229b22cedf786d55af210c806864459b29c1b27d.tar.gz
fatcat-229b22cedf786d55af210c806864459b29c1b27d.zip
fix test (with a skip)
Diffstat (limited to 'TODO')
-rw-r--r--TODO34
1 files changed, 34 insertions, 0 deletions
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..8c7d12fc
--- /dev/null
+++ b/TODO
@@ -0,0 +1,34 @@
+
+Should probably just UUID all the (public) ids.
+
+Instead of having a separate id pointer table, could have an extra "mutable"
+public ID column (unique, indexed) on entity rows. Backend would ensure the
+right thing happens. Changelog tables (or special redirect/deletion tables)
+would record changes and be "fallen through" to.
+
+Instead of having merge redirects, could just point all identifiers to the same
+revision (and update them all in the future). Don't need to recurse! Need to
+keep this forever though, could scale badly if "aggregations" get merged.
+
+Redirections of redirections should probably simply be disallowed.
+
+"Deletion" is really just pointing to a special or null entity.
+
+Trade-off: easy querying for common case (wanting "active" rows) vs. robust
+handling of redirects (likely to be pretty common). Also, having UUID handling
+across more than one table.
+
+## Scaling database
+
+Two scaling issues: size of database due to edits (likely billions of rows) and
+desire to do complex queries/reports ("analytics"). The later is probably not a
+concern, and could be handled by dumping and working on a cluster (or secondary
+views, etc). So just a distraction? Simpler to have all rolled up.
+
+Cockroach is postgres-like; might be able to use that for HA and scaling?
+Bottlenecks are probably complex joins (mitigated by "interleave"?) and bulk
+import performance (one-time?).
+
+Using elastic for most (eg, non-logged-in) views could keep things fast.
+
+Cockroach seems more resourced/polished than TiDB?