Estimate compression #766
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#766
Loading…
Reference in a new issue
No description provided.
Delete branch "dstepanov-yadro/frostfs-node:feat/compressible"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #754
Now it is possible to use compression estimation if config has this option enabled.
It should reduce CPU and memory usage in case of the uncompressible objects.
Benchmarks are here: #754 (comment)
af8c053722
to2cd9654caf
2cd9654caf
to6fd70b013f
6fd70b013f
toc7d2872d3c
WIPto WIP: Estimate compression@ -84,3 +84,4 @@
require.Equal(t, true, sc.Compress())
require.Equal(t, []string{"audio/*", "video/*"}, sc.UncompressableContentTypes())
require.Equal(t, true, sc.EstimateCompressibility())
Do we need 2 parameters here? I mean we can use anything >=1.0 to disable and 0.9 by default.
I prefer separate explicit parameters.
My thoughts here we that we have
compress: bool
feature already and this is merely a parameter.compress: false, estimate_compressibility: true
is possible, but somewhat invalid state.c7d2872d3c
toeda51f8324
eda51f8324
to1548b70154
WIP: Estimate compressionto Estimate compression@ -108,1 +108,3 @@
compress bool
compress bool
estimateCompressibility bool
estimateCompressibilityThreshold float64
docs/storage-node-configuration.md
needs to be changed too.Done
@ -43,6 +46,30 @@ func (x *Config) UncompressableContentTypes() []string {
"compression_exclude_content_types")
}
// EstimateCompressibility returns the value of "estimate_compressability" config parameter.
Why is it named
compress_i_bility
in code, butcompress_a_bility
in config? I haven't seen variant with 'a' TBHFixed
@ -113,6 +113,8 @@ FROSTFS_STORAGE_SHARD_0_METABASE_MAX_BATCH_DELAY=10ms
### Blobstor config
FROSTFS_STORAGE_SHARD_0_COMPRESS=true
FROSTFS_STORAGE_SHARD_0_COMPRESSION_EXCLUDE_CONTENT_TYPES="audio/* video/*"
FROSTFS_STORAGE_SHARD_0_ESTIMATE_COMPRESSABILITY=true
Also, what about using
COMPRESSION
prefix? LikeCOMPRESSION_EXCLUDE_TYPES
, we could later move it in a separate section.Done
1548b70154
toc80b46fad3