Skip to content

Commit da89875

Browse files
authored
feat(log-store): refine log store trait and add update vnode bitmap in reader (#11959)
1 parent e64a075 commit da89875

File tree

18 files changed

+371
-480
lines changed

18 files changed

+371
-480
lines changed

src/connector/src/sink/boxed.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use std::fmt::{Debug, Formatter};
1616
use std::ops::{Deref, DerefMut};
17+
use std::sync::Arc;
1718

1819
use async_trait::async_trait;
1920
use risingwave_common::array::StreamChunk;
@@ -54,7 +55,7 @@ impl<CM: 'static + Send> SinkWriter for BoxWriter<CM> {
5455
self.deref_mut().abort().await
5556
}
5657

57-
async fn update_vnode_bitmap(&mut self, vnode_bitmap: Bitmap) -> crate::sink::Result<()> {
58+
async fn update_vnode_bitmap(&mut self, vnode_bitmap: Arc<Bitmap>) -> crate::sink::Result<()> {
5859
self.deref_mut().update_vnode_bitmap(vnode_bitmap).await
5960
}
6061
}

src/connector/src/sink/clickhouse.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use anyhow::anyhow;
1919
use clickhouse::{Client, Row as ClickHouseRow};
2020
use itertools::Itertools;
2121
use risingwave_common::array::{Op, RowRef, StreamChunk};
22-
use risingwave_common::buffer::Bitmap;
2322
use risingwave_common::catalog::Schema;
2423
use risingwave_common::row::Row;
2524
use risingwave_common::types::{DataType, ScalarRefImpl, Serial};
@@ -439,14 +438,6 @@ impl SinkWriter for ClickHouseSinkWriter {
439438
async fn barrier(&mut self, _is_checkpoint: bool) -> Result<()> {
440439
Ok(())
441440
}
442-
443-
async fn abort(&mut self) -> Result<()> {
444-
Ok(())
445-
}
446-
447-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
448-
Ok(())
449-
}
450441
}
451442

452443
#[derive(ClickHouseRow, Deserialize)]

src/connector/src/sink/coordinate.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
use std::sync::Arc;
16+
1517
use anyhow::anyhow;
1618
use risingwave_common::array::StreamChunk;
1719
use risingwave_common::buffer::Bitmap;
@@ -81,7 +83,7 @@ impl<W: SinkWriter<CommitMetadata = Option<SinkMetadata>>> SinkWriter for Coordi
8183
self.inner.abort().await
8284
}
8385

84-
async fn update_vnode_bitmap(&mut self, vnode_bitmap: Bitmap) -> Result<()> {
86+
async fn update_vnode_bitmap(&mut self, vnode_bitmap: Arc<Bitmap>) -> Result<()> {
8587
self.inner.update_vnode_bitmap(vnode_bitmap).await
8688
}
8789
}

src/connector/src/sink/iceberg.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -411,12 +411,6 @@ impl SinkWriter for IcebergWriter {
411411
// TODO: abort should clean up all the data written in this epoch.
412412
Ok(())
413413
}
414-
415-
/// Update the vnode bitmap of current sink writer
416-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
417-
// Just skip it.
418-
Ok(())
419-
}
420414
}
421415

422416
pub struct IcebergSinkCommitter {

src/connector/src/sink/kinesis.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ use aws_sdk_kinesis::primitives::Blob;
2222
use aws_sdk_kinesis::Client as KinesisClient;
2323
use futures_async_stream::for_await;
2424
use risingwave_common::array::StreamChunk;
25-
use risingwave_common::buffer::Bitmap;
2625
use risingwave_common::catalog::Schema;
2726
use risingwave_rpc_client::ConnectorClient;
2827
use serde_derive::Deserialize;
@@ -272,14 +271,6 @@ impl SinkWriter for KinesisSinkWriter {
272271
async fn barrier(&mut self, _is_checkpoint: bool) -> Result<()> {
273272
Ok(())
274273
}
275-
276-
async fn abort(&mut self) -> Result<()> {
277-
Ok(())
278-
}
279-
280-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
281-
Ok(())
282-
}
283274
}
284275

285276
#[macro_export]

src/connector/src/sink/mod.rs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ pub mod test_sink;
2727
pub mod utils;
2828

2929
use std::collections::HashMap;
30+
use std::sync::Arc;
3031

3132
use ::clickhouse::error::Error as ClickHouseError;
3233
use anyhow::anyhow;
@@ -173,10 +174,14 @@ pub trait SinkWriter: Send + 'static {
173174
async fn barrier(&mut self, is_checkpoint: bool) -> Result<Self::CommitMetadata>;
174175

175176
/// Clean up
176-
async fn abort(&mut self) -> Result<()>;
177+
async fn abort(&mut self) -> Result<()> {
178+
Ok(())
179+
}
177180

178181
/// Update the vnode bitmap of current sink writer
179-
async fn update_vnode_bitmap(&mut self, vnode_bitmap: Bitmap) -> Result<()>;
182+
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Arc<Bitmap>) -> Result<()> {
183+
Ok(())
184+
}
180185
}
181186

182187
#[async_trait]
@@ -240,10 +245,6 @@ impl<W: SinkWriterV1> SinkWriter for SinkWriterV1Adapter<W> {
240245
async fn abort(&mut self) -> Result<()> {
241246
self.inner.abort().await
242247
}
243-
244-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
245-
Ok(())
246-
}
247248
}
248249

249250
#[async_trait]
@@ -314,17 +315,9 @@ impl SinkWriter for BlackHoleSink {
314315
Ok(())
315316
}
316317

317-
async fn abort(&mut self) -> Result<()> {
318-
Ok(())
319-
}
320-
321318
async fn barrier(&mut self, _is_checkpoint: bool) -> Result<()> {
322319
Ok(())
323320
}
324-
325-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
326-
Ok(())
327-
}
328321
}
329322

330323
impl SinkConfig {

src/connector/src/sink/nats.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ use std::collections::HashMap;
1717
use anyhow::anyhow;
1818
use async_nats::jetstream::context::Context;
1919
use risingwave_common::array::StreamChunk;
20-
use risingwave_common::buffer::Bitmap;
2120
use risingwave_common::catalog::Schema;
2221
use risingwave_common::error::anyhow_error;
2322
use risingwave_rpc_client::ConnectorClient;
@@ -155,12 +154,4 @@ impl SinkWriter for NatsSinkWriter {
155154
async fn barrier(&mut self, _is_checkpoint: bool) -> Result<()> {
156155
Ok(())
157156
}
158-
159-
async fn abort(&mut self) -> Result<()> {
160-
Ok(())
161-
}
162-
163-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
164-
Ok(())
165-
}
166157
}

src/connector/src/sink/redis.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
use async_trait::async_trait;
1616
use risingwave_common::array::StreamChunk;
17-
use risingwave_common::buffer::Bitmap;
1817
use risingwave_common::catalog::Schema;
1918
use risingwave_rpc_client::ConnectorClient;
2019

@@ -58,15 +57,7 @@ impl SinkWriter for RedisSinkWriter {
5857
todo!()
5958
}
6059

61-
async fn abort(&mut self) -> Result<()> {
62-
todo!()
63-
}
64-
6560
async fn barrier(&mut self, _is_checkpoint: bool) -> Result<()> {
6661
todo!()
6762
}
68-
69-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
70-
todo!()
71-
}
7263
}

src/connector/src/sink/remote.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use async_trait::async_trait;
2020
use itertools::Itertools;
2121
use prost::Message;
2222
use risingwave_common::array::StreamChunk;
23-
use risingwave_common::buffer::Bitmap;
2423
use risingwave_common::catalog::Schema;
2524
use risingwave_common::error::anyhow_error;
2625
use risingwave_common::types::DataType;
@@ -409,15 +408,6 @@ where
409408
Ok(<Self as HandleBarrierResponse>::non_checkpoint_return_value())
410409
}
411410
}
412-
413-
async fn abort(&mut self) -> Result<()> {
414-
Ok(())
415-
}
416-
417-
async fn update_vnode_bitmap(&mut self, _vnode_bitmap: Bitmap) -> Result<()> {
418-
// TODO: handle scaling
419-
Ok(())
420-
}
421411
}
422412

423413
pub struct RemoteCoordinator {

0 commit comments

Comments
 (0)