-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Support use default block size to replace the Hdfs ufs #14324
base: master-2.x
Are you sure you want to change the base?
Changes from all commits
e1e2060
06c39f9
5584b61
5e8583d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -880,6 +880,9 @@ static void loadFileMetadataInternal(RpcContext rpcContext, LockedInodePath inod | |
} | ||
ufsLength = ((UfsFileStatus) context.getUfsStatus()).getContentLength(); | ||
long blockSize = ((UfsFileStatus) context.getUfsStatus()).getBlockSize(); | ||
if (ServerConfiguration.getBoolean(PropertyKey.USER_BLOCK_SIZE_ENABLED)) { | ||
blockSize = ServerConfiguration.getBytes(PropertyKey.USER_BLOCK_SIZE_BYTES_DEFAULT); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. +1 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. +1 if you have different block sizes for different paths, you still need to update them with path config anyways so no need to create a new property for this. |
||
} | ||
ufsBlockSizeByte = blockSize != UfsFileStatus.UNKNOWN_BLOCK_SIZE | ||
? blockSize : ufs.getBlockSizeByte(ufsUri.toString()); | ||
|
||
|
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.
I think this only reads the server-side default, so it doesn't take your path config or configuration from your client command. This defeats the purpose of having this property.
@beinan @yuzhu Do you know how to make this respect both the client-side config and path config? I'm afraid making this respect user-side config needs this property value to be in
message FileSystemCommonPOptions
. Getting the path config is easier than modifying RPC, but I forgot how :(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.
In order to pick up the correct path-specific setting, we will need to resolve the config for the path. The path configs are returned from master
alluxio/core/server/master/src/main/java/alluxio/master/meta/DefaultMetaMaster.java
Line 430 in ef6b7ef
to the client
alluxio/core/client/fs/src/main/java/alluxio/client/file/FileSystemContext.java
Line 433 in ef6b7ef
Then the client will resolve the path config. This is how you set
sync.interval
usingalluxio pathConf add /path
then how that takes effect.The annoying thing is, in the sync process the master is actually the client that needs to do the path resolution, and currently there's no API you can directly call. @maobaolong I will take over this part and add one API for you to use. So in your PR here it should be just an easy call.