`Arrow.write()` cannot handle large `Mmap`-ed table
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- julia
調査の方向性
まず、報告に示されている大きな非圧縮 Arrow ファイル、Mmap-ed table view、および 2 つの Arrow.write 呼び出しを、指定されたメモリ制限下で使って問題を再現します。view input から Arrow.write を追跡し、マスクが大きくなるにつれてメモリの挙動を比較します。報告された out-of-memory エラーなしでフィルタリング済みのテーブルを正常に書き込めれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Premise:
- input file is large, uncompressed Arrow file
- we produce a mask and produce a
view()over theMmap-ed table - use
Arrow.write()to write filtered table to disk
This seems to take increasing memory as the content of the mask.
I know this doesn't work correctly because if I set memory limit first:
> ulimit -Sv 8000000
julia> using Arrow, DataFrames
julia> const df = @time DataFrame(Arrow.Table("./nanoAOD_nocomp.feather"); copycols=false);
2.685720 seconds (4.84 M allocations: 321.109 MiB, 4.41% gc time, 100.89% compilation time)
julia> Arrow.write("/home/akako/Downloads/out.feather", @view df[1:1*10^4, :]);
julia> Arrow.write("/home/akako/Downloads/out.feather", @view df[1:2*10^4, :]);
ERROR: Internal error: encountered unexpected error in runtime:
OutOfMemoryError()
unknown function (ip: 0x7f9d7329fc99)
unknown function (ip: 0x7f9d732935b5)
jl_gc_alloc at /home/akako/Documents/github/dotFiles/homedir/.julia/juliaup/julia-1.9.0-rc1+0.x64.linux.gnu/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
ijl_alloc_array_1d at /home/akako/Documents/github/dotFiles/homedir/.julia/juliaup/julia-1.9.0-rc1+0.x64.linux.gnu/bin/../lib/julia/libjulia-internal.so.1 (unknown line)
unknown function (ip: 0x7f9d5ec6259e)
unknown function (ip: 0x7f9d5e36c9dc)
unknown function (ip: 0x7f9d5e73ee1f)
unknown function (ip: 0x7f9d5e73ed98)
- 主要言語
- Julia
- スター
- 315
- フォーク
- 78
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/arrow-julia のほかの issue
-
`Arrow.Table` uses last dictionary for all batches in streaming decode, resulting in incorrect reads対応中かも @quinnj が 60 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
apache/arrow-julia#610 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
apache/arrow-julia#597 ·
-
BoundsError: attempt to access 0-element Vector{Vector{UInt8}} at index [1]対応中かも @quinnj が 27 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
apache/arrow-julia#590 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
apache/arrow-julia#589 · コメント 2 件 ·
-
Test failures with CategoricalArrays 1.0再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
apache/arrow-julia#586 · コメント 2 件 ·
apache/arrow-julia の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
JuliaGenAI/HuggingFaceDatasets.jl#96 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
JuliaData/DBFTables.jl#50 ·
-
_fit_phylo_binomial_xlv: default start calls undefined logit (UndefVarError without beta_init)対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンcode-review
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JuliaNLSolvers/Optim.jl#1296 ·