是否可以在 apache-arrow 中使用 Java API 在单独的线程中创建部分矢量?



在 apache 箭头中,是否可以并行创建向量(不同的线程(?我假设由于编写器中的 setPosition(...( 调用,向量中创建条目的顺序无关紧要。但是当我尝试在并行线程中执行此操作时,我遇到了错误。当我按顺序执行时,它工作正常。我正在使用ComplexWriterImpl,每个字段都有一个子编写器。

实际错误为:

java.lang.IllegalStateException: 引用计数应为>= 1 才能访问 ArrowBuf

我很想知道,通过箭头(在 Java(中的编写器创建矢量是否被设计为可以无序和并行线程。

您能否澄清一下调用是如何并行化的。 如果您有线程使用相同的编写器写入不同的位置,这将导致麻烦。 setPosition 不是线程安全的,write调用可能会setSafe()可能会调整缓冲区的大小。

我想不出单线程无序更新不起作用的技术原因。 但是,我不确定这是否是 setPosition 最初设计的(我认为更典型的用例是跳过空值的写入(。

最新更新