Skip to content

Commit 3200475

Browse files
authored
Update for new concurrency_limit option in object_store_ffi (#25)
1 parent b08110e commit 3200475

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ReTestItems = "1"
1616
Sockets = "1"
1717
Test = "1"
1818
julia = "1.8"
19-
object_store_ffi_jll = "0.3"
19+
object_store_ffi_jll = "0.4"
2020

2121
[extras]
2222
CloudBase = "85eb1798-d7c4-4918-bb13-c944d38e27ed"

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ test_config = StaticConfig(
5050
cache_tti_secs=5 * 60,
5151
multipart_put_threshold=8 * 1024 * 1024,
5252
multipart_get_threshold=8 * 1024 * 1024,
53-
multipart_get_part_size=8 * 1024 * 1024
53+
multipart_get_part_size=8 * 1024 * 1024,
54+
concurrency_limit=512
5455
)
5556
init_object_store(test_config)
5657
```
@@ -61,10 +62,11 @@ cache\_capacity is the size of the LRU cache rust uses to cache connection objec
6162
means a unique combination of destination URL, credentials, and per-connection configuration such as
6263
timeouts; it does not mean an HTTP connection.
6364

64-
cache\_ttl\_secs is the time-to-live in seconds for the rust connection cache.
65+
cache\_ttl\_secs is the time-to-live in seconds for the rust connection cache. Using 0 will disable
66+
ttl eviction.
6567

6668
cache\_tti\_secs is the time in seconds that a connection can be idle before it is removed from the
67-
rust cache.
69+
rust cache. Using 0 will disable tti eviction.
6870

6971
multipart\_put\_threshold is the size in bytes for which any put request over this size will use a
7072
multipart upload. The put part size is determined by the rust object\_store implementation, which
@@ -74,6 +76,8 @@ multipart\_get\_threshold and multipart\_get\_part\_size configure automatic mul
7476
size can be greater than the threshold without breaking anything, but it may not make sense to do so.
7577
The default 8MB for these values was borrowed from CloudStore.jl.
7678

79+
concurrency\_limit is the max number of concurrent Rust tasks that will be allowed for requests.
80+
7781
## Design
7882

7983
#### Packaging

src/RustyObjectStore.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ $TYPEDFIELDS
5151
multipart_get_threshold::Culonglong
5252
"The size in bytes for each part of multipart get operations"
5353
multipart_get_part_size::Culonglong
54-
54+
"The max number of allowed Rust request tasks"
55+
concurrency_limit::Cuint
5556
end
5657

5758
function Base.show(io::IO, config::StaticConfig)
@@ -72,7 +73,8 @@ const DEFAULT_CONFIG = StaticConfig(
7273
cache_tti_secs=5 * 60,
7374
multipart_put_threshold=10 * 1024 * 1024,
7475
multipart_get_threshold=8 * 1024 * 1024,
75-
multipart_get_part_size=8 * 1024 * 1024
76+
multipart_get_part_size=8 * 1024 * 1024,
77+
concurrency_limit=512
7678
)
7779

7880
const _OBJECT_STORE_STARTED = Ref(false)

test/common_testsetup.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
cache_tti_secs=5 * 60,
88
multipart_put_threshold=8 * 1024 * 1024,
99
multipart_get_threshold=8 * 1024 * 1024,
10-
multipart_get_part_size=8 * 1024 * 1024
10+
multipart_get_part_size=8 * 1024 * 1024,
11+
concurrency_limit=512
1112
)
1213
init_object_store(test_config)
1314
end

0 commit comments

Comments
 (0)