ray/doc/source
Kenneth 07372927cc
Enable buffering and spilling to multiple remote storages (#22798)
Buffering writes to AWS S3 is highly recommended to maximize throughput. Reducing the number of remote I/O requests can make spilling to remote storages as effective as spilling locally.

In a test where 512GB of objects were created and spilled, varying just the buffer size while spilling to a S3 bucket resulted in the following runtimes.

Buffer Size | Runtime (s)
-- | --
Default | 3221.865916
256KB | 1758.885839
1MB | 748.226089
10MB | 526.406466
100MB | 494.830513

Based on these results, a default buffer size of 1MB has been added. This is the minimum buffer size used by AWS Kinesis Firehose, a streaming service for S3. On systems with larger availability, it is good to configure a larger buffer size.

For processes that reach the throughput limits provided by S3, we can remove that bottleneck by supporting more prefixes/buckets. These impacts are less noticeable as the performance gains from using a large buffer prevent us from reaching a bottleneck. The following runtimes were achieved by spilling 512GB with a 1MB buffer and varying prefixes.

Prefixes | Runtime (s)
-- | --
1 | 748.226089
3 | 527.658646
10 | 516.010742


Together these changes enable faster large-scale object spilling.

Co-authored-by: Ubuntu <ubuntu@ip-172-31-54-240.us-west-2.compute.internal>
2022-03-11 11:27:02 -05:00
..
_includes [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
_static [docs] RLlib concepts consolidation, user guide, RL conf prep (#22496) 2022-02-18 09:35:20 -08:00
_templates [docs] templates and contribution guide (fixes #21753) (#23003) 2022-03-10 15:28:07 +00:00
cluster [jobs] Make local pip/conda requirements files work with jobs (#22849) 2022-03-10 15:15:16 -06:00
data [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
images [docs] Tune overhaul part II (#22656) 2022-02-26 23:07:34 -08:00
ray-contribute [docs] templates and contribution guide (fixes #21753) (#23003) 2022-03-10 15:28:07 +00:00
ray-core Enable buffering and spilling to multiple remote storages (#22798) 2022-03-11 11:27:02 -05:00
ray-design-patterns [docs] re/move old core examples (#22802) 2022-03-10 12:17:00 -08:00
ray-more-libs [docs] re/move old core examples (#22802) 2022-03-10 12:17:00 -08:00
ray-observability [runtime env] [Doc] add more details about runtime env logs (#22480) 2022-03-02 14:27:28 -08:00
ray-overview [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
ray-references [Doc] [Jobs] add CLI and SDK reference to docs (#22680) 2022-02-28 17:57:46 -06:00
raysgd [GCS-Ray] update doc and error message for GCS-Ray (#22528) 2022-02-22 17:56:30 -08:00
rllib [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
serve [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
train [docs] re/move old core examples (#22802) 2022-03-10 12:17:00 -08:00
tune [docs] external promo content (#22823) 2022-03-10 11:39:44 -08:00
workflows [docs] landing page (fixes #21750) (#21859) 2022-01-26 17:14:25 -08:00
_toc.yml [docs] re/move old core examples (#22802) 2022-03-10 12:17:00 -08:00
conf.py run code in browser (#22727) 2022-03-02 10:27:00 +01:00
custom_directives.py [docs] sphinx gallery removal, migrate to ipynb (#22467) 2022-02-19 01:19:07 -08:00
index.md [Docs] Ray Data docs target state (#21931) 2022-01-27 13:14:36 -08:00