-
Notifications
You must be signed in to change notification settings - Fork 15
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
Object header size limitation #262
Comments
taking into account #263, seems like 4K could be enough. If anything, the limit can be raised compatible or just stock 16K and be sure? |
Four |
im ok with 16K |
btw, does the limit apply specifically to |
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
I'd think of |
I think limiting only Another question: what about the big objects? Parent header may be OK, but the child parts that have it as a part of their headers may become invalid at the last split step. Do we want to do smth about it? |
No. |
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Closes #262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Added to the protocol within nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
It was added to the protocol within nspcc-dev/neofs-api#262. Also provide `Object.HeaderLen` method. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Previously, NeoFS used 4MB as object header's length limit. The value originally resulted from the default max gRPC message length. Now header length can be up to 16KB only. To ensure the safety of data uploaded before the restriction was introduced, this limit does not apply to intra-container replication. Refs nspcc-dev/neofs-api#262. Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Following on #171 (comment) discussion.
A regular attribute-less header is expected to be around 180 bytes. Session token can add ~200 bytes to that. But the biggest problem we have is split info data which at minimum is ~150 bytes of auxiliary data. It can have a copy of a parent header inside and it can also have a list of object IDs (hashes). Object header limit affects the maximum size of a large object. 1K of hashes is just 2G of object.
Attributes can be arbitrary, but we may remember
FilePath
andFileName
as some commonly used. 256 bytes is a must to have for them (traditional WindowsMAX_PATH
is 260), but given the UTF-8 encoding we may even consider 4096 (regularPATH_MAX
).Given all of that 1K size limit can't be considered at all, 4K also seems to be too limiting (~6G "large" objects and really constrained attributes). To have things at least somewhat balanced I'd say we need a minimum of 16K headers. This leaves some space for attributes and allows to have 30G objects.
CC @AnnaShaleva, @notimetoname, @cthulhu-rider.
The text was updated successfully, but these errors were encountered: