Skip to content
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

Open
wants to merge 82 commits into
base: develop
Choose a base branch
from
Open

Bring develop up to date with Master #295

wants to merge 82 commits into from

Conversation

YipYup
Copy link

@YipYup YipYup commented May 4, 2018

Bring develop up to date with Master.

zenjabba and others added 4 commits September 5, 2017 04:58
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
felixbuenemann
felixbuenemann previously approved these changes May 4, 2018
@felixbuenemann felixbuenemann dismissed their stale review May 4, 2018 15:03

Conflicts due to parameter changes in develop.

@felixbuenemann
Copy link
Collaborator

@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.

@dweidenfeld
Copy link
Collaborator

@felixbuenemann
I just hardcoded the values, because with at least this numbers plexdrive seemed to work best for 4k / high bitrate streaming.
But it is not necessary, if you want the calculated values back.

dweidenfeld
dweidenfeld previously approved these changes May 4, 2018
Copy link
Collaborator

@dweidenfeld dweidenfeld left a 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

zenjabba
zenjabba previously approved these changes May 18, 2018
@felixbuenemann
Copy link
Collaborator

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.

felixbuenemann and others added 15 commits March 17, 2019 18:17
The current version of gensupport requires golang 1.8, so unless we
vendor older versions building on go 1.7 will fail.
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.
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.
This option was removed in #340.
felixbuenemann and others added 30 commits November 30, 2020 20:33
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.
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.

None yet