在apache arrow中,是否可以并行创建向量(不同的线程)?我假设是因为setPosition(...)调用编写器时,向量中条目的创建顺序是不相关的。但是当我尝试用并行线程来做这件事时,我遇到了错误。当我按顺序执行时,它工作得很好。我正在使用ComplexWriterImpl,每个字段都有一个子编写器。
实际错误是:
java.lang.IllegalStateException:用于访问ArrowBuf的引用计数应为>= 1
我很想知道,在箭头(Java中)中通过编写器创建向量是否被设计为可以乱序并使用并行线程。
发布于 2019-09-19 16:28:37
你能澄清一下调用是如何并行化的吗?如果你有线程使用相同的写入器写到不同的位置,这将导致问题。setPosition不是线程安全的,并且write调用setSafe(),这可能会调整缓冲区的大小。
我想不出一个技术原因来解释为什么单线程无序更新不能工作。但是,我不确定这是否是setPosition最初设计的目的(我认为更典型的用例是跳过对空值的写入)。
https://stackoverflow.com/questions/57994974
复制相似问题