Skip to content

Commit 52cdce7

Browse files
committed
Parquet output: drop dead manager index-sink, harden stop() order
Remove the unused manager-level m_indexSink/setIndexSink (per-basket index sinks are unaffected) and stop all writers before destroying any in stop(). Signed-off-by: Arham Chopra <arham.chopra@cubistsystematic.com>
1 parent 789d0e6 commit 52cdce7

2 files changed

Lines changed: 3 additions & 7 deletions

File tree

cpp/csp/adapters/parquet/ParquetOutputAdapterManager.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,20 @@ void ParquetOutputAdapterManager::start( DateTime starttime, DateTime endtime )
2727
m_parquetWriter -> start();
2828
for( auto &&writer:m_dictBasketWriters )
2929
{
30-
// Only overwrite per-basket index sink if a shared one was explicitly set
31-
if( m_indexSink.onBatch )
32-
writer -> setIndexSink( m_indexSink );
3330
writer -> start();
3431
}
3532
}
3633

3734
void ParquetOutputAdapterManager::stop()
3835
{
36+
// Stop all writers (flush + close their files) before destroying any of them, so a basket
37+
// writer can never observe a destroyed sibling during teardown.
3938
m_parquetWriter -> stop();
40-
m_parquetWriter = nullptr;
41-
4239
for( auto &&writer:m_dictBasketWriters )
4340
{
4441
writer -> stop();
4542
}
43+
m_parquetWriter = nullptr;
4644
m_dictBasketWriters.clear();
4745
}
4846

cpp/csp/adapters/parquet/ParquetOutputAdapterManager.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class ParquetOutputAdapterManager final : public csp::AdapterManager
5353
void scheduleEndCycle();
5454

5555
void setSink( RecordBatchSink sink );
56-
void setIndexSink( RecordBatchSink sink ) { m_indexSink = std::move( sink ); }
5756
void setSinkFactory( SinkFactory factory ) { m_sinkFactory = std::move( factory ); }
5857

5958
private:
@@ -67,7 +66,6 @@ class ParquetOutputAdapterManager final : public csp::AdapterManager
6766
std::unordered_map<std::string, int> m_dictBasketWriterIndexByName;
6867
std::vector<std::unique_ptr<ParquetDictBasketOutputWriter>> m_dictBasketWriters;
6968
ParquetOutputFilenameAdapter *m_outputFilenameAdapter;
70-
RecordBatchSink m_indexSink;
7169
SinkFactory m_sinkFactory;
7270
};
7371

0 commit comments

Comments
 (0)