Skip to content

FUSE on CovenantSQL #119

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

Merged
merged 22 commits into from
Nov 14, 2018
Merged

FUSE on CovenantSQL #119

merged 22 commits into from
Nov 14, 2018

Conversation

auxten
Copy link
Contributor

@auxten auxten commented Nov 12, 2018

  1. FUSE on CovenantSQL works now!
  2. Add ExecuteTx to client
  3. Add parallel RPC bench
  4. Fix coin balance print

@codecov
Copy link

codecov bot commented Nov 13, 2018

Codecov Report

Merging #119 into develop will increase coverage by 0.08%.
The diff coverage is 92.3%.

@@             Coverage Diff             @@
##           develop     #119      +/-   ##
===========================================
+ Coverage    78.24%   78.33%   +0.08%     
===========================================
  Files          127      128       +1     
  Lines         9774     9786      +12     
===========================================
+ Hits          7648     7666      +18     
+ Misses        1522     1518       -4     
+ Partials       604      602       -2

@codecov
Copy link

codecov bot commented Nov 13, 2018

Codecov Report

Merging #119 into develop will decrease coverage by 2.39%.
The diff coverage is 92.3%.

@@            Coverage Diff             @@
##           develop     #119     +/-   ##
==========================================
- Coverage    78.24%   75.85%   -2.4%     
==========================================
  Files          127      149     +22     
  Lines         9774    11994   +2220     
==========================================
+ Hits          7648     9098   +1450     
- Misses        1522     1890    +368     
- Partials       604     1006    +402

@auxten auxten changed the title [WIP] FUSE on CovenantSQL FUSE on CovenantSQL Nov 13, 2018
@auxten auxten requested review from xq262144 and laodouya November 13, 2018 09:24
@auxten
Copy link
Contributor Author

auxten commented Nov 14, 2018

  1. FUSE on CovenantSQL works now!

AS the original author commented in src code:

Inode relationships are stored in the namespace table, and inodes
themselves in the inode table.

Data blocks are stored in the block table, indexed by inode ID
and block number.

Basic functionality is implemented, including:

  • mk/rm directory
  • create/rm files
  • read/write files
  • rename
  • symlinks

WARNING: concurrent access on a single mount is fine. However,
behavior is undefined (read broken) when mounted more than once at the
same time. Specifically, read/writes will not be seen right away and
may work on out of date information.

One caveat of the implemented features is that handles are not
reference counted so if an inode is deleted, all open file descriptors
pointing to it become invalid.

Some TODOs (definitely not a comprehensive list):

  • support basic attributes (mode, timestamps)
  • support other types: hard links
  • add ref counting (and handle open/release)
  • sparse files: don't store empty blocks
  • sparse files 2: keep track of holes

Copy link
Contributor

@xq262144 xq262144 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@xq262144 xq262144 merged commit 536a2f3 into develop Nov 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants