-
Notifications
You must be signed in to change notification settings - Fork 205
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
Bring develop up to date with Master #295
base: develop
Are you sure you want to change the base?
Conversation
Updated slack link
Several options are based on the number of CPUs, which in some cases lead to option default being set to zero: 1 CPU / 2 => 0 (integer division) 1 CPU - 1 => 0 This fixes the problem by ensuring those default are at least one.
Fix option parsing to work with 1 CPU core
Conflicts due to parameter changes in develop.
@dweidenfeld You hard coded some of the config values in db83bb6, which is why this PR has merge conflicts. Could you elaborate why you changed the defaults? The commit message of "fixed default values" is not that useful. |
@felixbuenemann |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine for me
Just a short note: I haven't merged this yet, cause I think it's generally useful to have sane defaults for the parameters and if these are mainly i/o bound, there is not much sense in having the default depend on the number of cpu cores. On the other hand I haven't yet had time to check the defaults dweidenfeld used in develop to see how well they work on low-spec systems regarding cpu and memory. |
The current version of gensupport requires golang 1.8, so unless we vendor older versions building on go 1.7 will fail.
Update build matrix
This is no longer supported, because fuse.AllowRoot() was removed: bazil/fuse@e0b8970
This is needed to build against the latest version of basil.org/fuse.
…ption Remove allow_root mount option
This fixes the problem where --root-node-id was broken for non-team drives and also should allow mounting a sub.directory of a team drive by specifying both --drive-id and --root-node-id.
This should fix the unexpected change records without a file resource. Additionally we request to include the file resource for removals, which could be another reason of missing file resource in changes.
Team Drive Fixes
This option was removed in #340.
Use Go Modules
Put cache.bolt in config directory by default
Add support for --acknowledge-abuse flag to allow users to continue using their files
We didn't raise the index version when swapping the chunk fields, so this swaps the field by guessing the existing field order. Should be removed once code is table.
and skip storing pageToken if it hasn't changed.
This avoids enconding/decodind and unneeded copies, but it makes the chunk cache file endianess dependent. To detect endianess difference the PD magic bytes are not stores as uint16 so the flip to DP if endianess has changes and the cache becomes invalid.
Note that resizing is currently not supported, since we lack information to discover the last position of the journal.
Instead of creating a separate mmap region for each chunk this maps one or multiple regions at the maximum allowed size and creates the chunks as slices from these mappings. This should in theory also work with 32-Bit Linux systems and LFS support, were a single mmap region will be limited to about 2GB, so multiple mappings are used if the chunk file is bigger than 2GB.
This isn't needed, since we're at EOF anyways, so nothing after the toc needs to be aligned and the size itself doesn't have to be aligned.
This should ensure consistent downloads, since it was previously possible that the cached MD5 sum of a recently changed object was used as the chunk cache / request id for the download. By also using the cached revision id, this should no longer be a problem.
This ensures that drive objects have stable node hashes, enables keeping kernel buffer caches across file opens and invalidates the buffer cache when changes are detected. Also added code to ensure the root node is a folder.
Since both the persistent cache to the chunk-file and the non-persistent cache use mmap, the naming was confusing.
MMap based chunk cache and disk based caching
and remove now unsupported darwin/386 target.
Since argConfigPath is only updated after parsing the flags, these paths always used ~/.plexdrive even if a different config directory was set.
Bring develop up to date with Master.