Github user bzz commented on the issue:
https://github.com/apache/zeppelin/pull/1231
@onkarshedge thank you for drawing very nice diagram.
Let me be very clear - you did a great job and quite possible that it is
me, as a mentor who under communicate the expectations about the architecture
for this project. But..
But in order to make your work useful for the project in the nearest
future, this PR must not introduce new client-facing APIs, servlets or change
the existing filesystem structure a lot.
So we need to refactor your implementation and simplify, so it has a single
entry point `BittorentNotebookRepo`, a class that implements `NotebookRepo`,
that is both a server and a client for bittorrent protocol, and that has all
the code necessary for:
1. listing existing notes that shared through Bittorrent (local FS cache
of the latest version?)
2. checkpointing AKA creating revisions (and how use `Mutable Items` to
[store them in DHT](http://bittorrent.org/beps/bep_0044.html))
3. listing revisions for each note, stored in DHT
4. importing new note by magnet URL (should work similar to current
"import by URL")
Lifecycle of all objects that are needed to perform this task (i.e
TorrentEngine and all others) must be tied to NotebookRepo lifecycle:
- all connections must be opened from it's constructor
- all connections must be closed from `.close()`
Please let me know if that makes sense to you.
Let's start by finding answers to the questions on how to do 1-4 on DHT.
Let's write answers down in English first, here or on the GDoc, before
moving on to coding\refactoring them in a programming language.
Please think about it and let me know if you have question - we can
schedule a call.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---