-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add file system architecture doc #309
Conversation
All graphs of docs are versioned here, https://github.com/apache/skywalking-website/tree/master/static/doc-graph/banyandb And you should refer the website(skywalking.a.o) path after the graph hosted on the website. |
@hanahmily Plz review the picture in doc is good, and then I pull request to skywalking-website. |
In the FS system, the Remote Storage option is not mandatory. To represent it, you can either draw a dotted line or use two separate diagrams. I should be in the |
Got it, I will pull request to skywalking-website and can review there. |
Local file system calling remote file system? What is that about? I don't think we should list that. If there is a local fs API mock for remote system, that is local fs API side thing, not ours. |
It is not local file system calling remote file system.Under the strategy of using remote storage, data is not directly stored on remote storage, but is first stored in the local file system and then transferred remotely after the file reaches a certain size. |
Yes, that is how the remote file system works. But is that BanyanDB's concern? @hanahmily I am not aware of we are getting that far. |
Certainly. The FS system, a virtual file system, hides the details of all the OS-related or third-party APIs. As I previously noted in clustering, S3, a classic remote share storage system, will be integrated into the FS system discussed here. But the S3 integration is at the very beginning phase, we only need to document where the integration point is in the banyandb. |
This is my point. How virtual fs works should not be explained by us. |
There are two options here:
Based on the above, two separate make more sense to me. |
If there are two implementations, there are two boxes. That is basically what I am saying. Two implementations mean remote fs is not hidden behind the local fs. |
In this case, How to represent from local system to remote storage system?Even if remote storage systems are used, data will inevitably be stored on the local file system. How to express this process? |
Who did this fetching and caching? |
The storage adapter did this operation, which is a component used for remote transmission. My image needs to be changed, and it should be fs api->local file system->(storage adapter->remote storage system)(optional).Is it suitable? |
I think you should have
|
Can we merge local fs adaptor and remote fs adaptor to fs adaptor? Perhaps it would be more concise. |
Isn't the that API FS about? It is the abstract layer, then all implementations of file FS API are your adaptors. |
There are some key issues I have to elaborate on here: The interaction between remote and local systems is at a higher level in the invoking chain, and it is independent of the file system. It is up to the user to specify which files are local or remote. The fs system has to be capable of adapting both types of files in a process. There are two use cases:
Based on the above, I prefer to draw two boxes to describe the two cases.
You don't have to. The user will read the wal log from local, then write to the remote data file. FS system doesn't handle the process. You don't have to draw the relationship either.
No, it doesn't belong to the adapter as I mentioned above. |
Codecov Report
@@ Coverage Diff @@
## main #309 +/- ##
==========================================
+ Coverage 39.62% 39.64% +0.01%
==========================================
Files 104 104
Lines 11101 11101
==========================================
+ Hits 4399 4401 +2
+ Misses 6268 6266 -2
Partials 434 434 see 1 file with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
In #302 the doc of the architectural pattern of BanyanDB, which uses remote storage system. Under this storage mode, adding the architecture design of the file system.