Done issues

Alluxio Fuse: only block getting size of incomplete file when fuse release() is called but not finished.
ALLUXIO-3391
Support taking daily master metadata snapshots
ALLUXIO-3384
Improve master startup time
ALLUXIO-3342
Support allow_other option for FUSE
ALLUXIO-2231
Remove method UnderFileSystem.create(path) w/o options
ALLUXIO-3209
Garbage collect fs master clients
ALLUXIO-3394
Introduce gRPC for both the control and data path
ALLUXIO-3316
Logic in CheckConsistency is not consistent with Metadata Sync in File System Master
ALLUXIO-3363
Simplify additional GCS documentation in Configuring-Alluxio-with-GCS
ALLUXIO-2923
Improve comment style in GlusterFSUnderFileSystem
ALLUXIO-2930
Change the ls shell command to sort results by file or dir names
ALLUXIO-3029
Support storing master metadata in RocksDB
ALLUXIO-3362
Make copyFromLocal upload files concurrently
ALLUXIO-3395
Remove Guava Suppliers
ALLUXIO-3303
Add a parallelism factor to the persist command
ALLUXIO-3383
Alluxio metrics number is inaccurate
ALLUXIO-3370
mvn 3.6.0 cannot compile Alluxio
ALLUXIO-3378
Improve Handling of SSD failures
ALLUXIO-3373
Reduce Web home page reliance on ufs mount points
ALLUXIO-3353
add fuse integration test
ALLUXIO-3361
Journal replay failure after rm -R and re-create on a mount point
ALLUXIO-3352
There is a problem starting Alluxio Master using "safe" mode
ALLUXIO-3368
Alluxio-Fuse du command does not have correct result
ALLUXIO-3366
Improve logging when job master is at full capacity
ALLUXIO-3355
DefaultFileSystemMaster#listStatus throws 'Path is no longer valid, possibly due to a concurrent delete.'When concurrent deletion occurs.
ALLUXIO-3358
Security support
ALLUXIO-132
HDFS URI hostname/port is not respected
ALLUXIO-3356
Fix the issue that help subcommand requires alluxio.master.hostname set
ALLUXIO-3343
Under file system storage of local file system by SSH protocol
ALLUXIO-3283
Address client side scalability issues
ALLUXIO-3338
UfsJournals gain primacy in parallel
ALLUXIO-3302
Fuse in OSXfuse unable to mount directory without permission
ALLUXIO-3349
Fuse chown :groupName filename and chgrp does not work
ALLUXIO-3348
Support -h -s --memory --header options in du CLI
ALLUXIO-3340
Alluxio Fuse uid/gid user/group mapping with GCS/S3
ALLUXIO-3344
Alluxio Block unavailable in both Alluxio and UFS
ALLUXIO-3346
merge config checker and tests to master branch
ALLUXIO-3213
Address job master scalability
ALLUXIO-3339
Allow Alluxio to use UFS as a fallback storage tier if there isn't enough space available.
ALLUXIO-3341
Avoid empty string as a value for property keys
ALLUXIO-3334
Support cluster startup monitoring for job service nodes
ALLUXIO-3333
Client URI accepts hostname:port format, but ignores it
ALLUXIO-2396
Support a distributed job management service in Alluxio
ALLUXIO-3327
Enable inheriting parent permissions when creating inodes
ALLUXIO-3220
Fix journaling in createFile and createDirectory in AlluxioFileSystemMaster
ALLUXIO-2737
Alluxio impersonation property does not recognize users w/ the character `-`
ALLUXIO-3241
Flaky hanging in RPCMessageIntegrationTest
ALLUXIO-1268
Alluxio LoginContext created with incorrect ClassLoader
ALLUXIO-2828
Avoid creating tmp UFS files when creating a file
ALLUXIO-2998
Enable Alluxio to sync its metadata with UFS metadata
ALLUXIO-3063
issue 1 of 2792

Alluxio Fuse: only block getting size of incomplete file when fuse release() is called but not finished.

Description

when we writes a file in Alluxio-Fuse, it triggers:
fuse apis: create() write() getAttr() write() flush() release()
When the file is not completed, getAttr() will block waiting for the file to be completed for 5 seconds. when we create 1000 small files, each wait 5 seconds will take 1 and a half hours.

We add the blocking because fuse release() is async (do not wait for the outputstream.close() task to return). In some workflow, we saw getattr() is called right after the release() is return. we want to wait for file to be completed and return the right file size in this getattr() call.
create()-write()flush()release()-getattr()

We should only wait from file to be completed in the second workflow and do not block waiting in the first workflow.

Environment

None

Status

Assignee

Lu Qiu

Reporter

Lu Qiu

Labels

None

Components

Fix versions

Affects versions

Priority

Major
Configure