Comments (3)
What I found out so far:
1. FUSE does indeed sometimes read data it has read before once more. These are
usually ironed out by caching, but if the cache is full, problems like
described
above could occur. (Although I have not yet managed to run into one.)
2. The conditions for complete decompression on read cannot actually be met if
cache_skipped is enabled. The condition (!cache_this_read || decomp_cache_size
>
max_decomp_cache_size) can never be true because we make sure to only cache
data if
decomp_cache_size < max_decomp_cache_size, so -- assuming that everything is
page-
aligned -- the worst we can get is decomp_cache_size == max_decomp_cache_size.
I guess the solution is to fix 2. and fall back in the cache full case. It is
IMO
questionable, however, whether it makes sense to wait until the cache is full
before
doing so.
Original comment by [email protected]
on 5 Sep 2008 at 12:39
from fusecompress.
Another thing badly wrong with the aforementioned condition is that it may
allow
reads to files in direct-write mode without decompression if caching is enabled.
Original comment by [email protected]
on 5 Sep 2008 at 12:52
from fusecompress.
Fixed in r69:
a) The condition in question is now decomp_cache_size >= max_decomp_cache_size.
b) If it is possible to tell that the skip will not fit in the cache, we fall
back
instead. If we cannot fall back, we abstain from filling up the cache with data
we
most likely won't need for anything.
c) Skipping file->size bytes is enough to trigger a fallback now (3 *
file->size
before), but only data that is not cached counts towards it.
The Thing From Comment #2(tm) has also been fixed (see issue #26).
Original comment by [email protected]
on 5 Sep 2008 at 3:19
- Changed state: Fixed
from fusecompress.
Related Issues (20)
- fusecompress_offline leaves temp files behind when aborted HOT 1
- fusecompress_offline does not work when used across mountpoints
- fusecompress_offline -v option undocumented HOT 2
- fusecompress_offline ignores exclusion list HOT 1
- change options at runtime
- Filesystem crashes when writing large files via samba share HOT 2
- test suite broken on OSX HOT 1
- fusecompress eats up memory when reading a file HOT 1
- fusecompress_offline hangs for 50 seconds if it cannot create a temp file
- Don't do setpriority() or make nice level configurable. HOT 2
- rsync defies exclusion list HOT 2
- directory timestamps modified behind user's back
- symlinks are created with filesystem uid, not user uid HOT 2
- Memory leak when cache option used? HOT 2
- project is not ready to use with direct_io option (while cache is in effect)
- hang during some kubuntu packages update
- Compress Files only on size saving
- du reports compressed size, not actual size. HOT 1
- Assertion `pthread_mutex_lock(&file->lock) == 0' failed.
- ./configure: line 5338: syntax error near unexpected token `fuse,' ./configure: line 5338: `PKG_CHECK_MODULES(fuse, fuse >= 2.2)' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fusecompress.