CodeForPhilly / jawn

'Git for Tabular Data'
http://datjawn.com
BSD 3-Clause "New" or "Revised" License
44 stars 9 forks source link

Document what we do and don't understand about hypercore #18

Closed flyingzumwalt closed 8 years ago

flyingzumwalt commented 8 years ago

... so that we can ask @mafintosh for clarification

clamorisse commented 8 years ago

I can take this issue

flyingzumwalt commented 8 years ago

Some questions from tonight's discussion to include in the document:

Q: If feed1 contains blocks A, B, C, D and then I create feed2 that adds blocks E, F G, does feed2 have a reference to feed1 or does it just reference all of the blocks it cares about? In other words, does feed2 look like [feed1, E, F, G] or does it look like [A, B, C, D, E, F G] with no reference to feed1? (See Adding More Rows section within the related wiki page.

Q: How do we represent updating an existing row or deleting an existing row? What does that look like in the DAG? Is the notion of "add row", "update row x" or "delete row x" something that we should put into the JSON inside of blocks, or is there a way to manipulate the feed so that it's clear that a specific row has been updated or deleted?

For example: Remember, with Jawn, each row of tabular data is a block.

  1. I add 4 rows to a feed and then finalize it, giving me feed1 which contains 4 blocks A, B, C, D
  2. I then add add 3 rows E, F G, giving me feed2
  3. I delete row B. What does that look like in feed3?
flyingzumwalt commented 8 years ago

We had a great discussion with mafintosh. Here's the recording on YouTube and the event page

The questions that @clamorisse put together: https://docs.google.com/document/d/1Pv5rZoxd2HboIJkX0VtMM94QySTuuvljmvt98KMoFME/edit?usp=sharing

Also check out the very useful diagrams that help clarify discussions about blocks & feeds