mirror of https://github.com/perkeep/perkeep.git
add WIP notes on modeling a blog
Change-Id: I4d659c6eeb23d4fd4009576e7233e8b5aa724947
This commit is contained in:
parent
768af3d368
commit
00be809cde
|
@ -0,0 +1,40 @@
|
||||||
|
Thoughts on storing a blog in Camlistore and serving it from the
|
||||||
|
publish handler.
|
||||||
|
|
||||||
|
* a blog is a permanode
|
||||||
|
|
||||||
|
* a blog post is a permanode
|
||||||
|
|
||||||
|
* the post's permanode is a member of the blog's permanode
|
||||||
|
|
||||||
|
* views of the blog we'd like:
|
||||||
|
|
||||||
|
1) reverse chronological (typical blog view)
|
||||||
|
|
||||||
|
- needs efficient reverse time index on membership.
|
||||||
|
|
||||||
|
- membership is currently "add-attribute" claims on parent
|
||||||
|
permanode, implying that a large/old blog with thousands
|
||||||
|
of posts will involve resolving the attributes of
|
||||||
|
the blog's permanode all the time. we need to either make
|
||||||
|
that efficient (caching it as a function of last mutation
|
||||||
|
claim to that permanode?) or find a different model
|
||||||
|
for memberships. I'm inclined to say keep the model
|
||||||
|
and make it fast.
|
||||||
|
|
||||||
|
2) forward chronological by date posted. (year, month, day view)
|
||||||
|
|
||||||
|
- denormalization question. the date of the blog post should
|
||||||
|
be an attribute of the post's permanode (defaulting to the
|
||||||
|
date of the first/last claim mutation on it), but for efficient
|
||||||
|
indexing we'll need to either mirror this into the blog
|
||||||
|
permanode's attributes, or have another attribute on the
|
||||||
|
blog post that we can prefix scan that includes as the prefix
|
||||||
|
the blog's permanode. the latter is probably ideal so
|
||||||
|
blog posts can be cross-posted to multiple blogs, and keeps
|
||||||
|
the number of attributes on the blog permanode lower.
|
||||||
|
|
||||||
|
e.g. blog post can have (add-)attributes:
|
||||||
|
|
||||||
|
"inparent" => "<blog-permanode>|
|
||||||
|
|
Loading…
Reference in New Issue