Skip to content

[Merged by Bors] - feat(SmartModule): Support chaining#2618

Closed
sehz wants to merge 10 commits intofluvio-community:masterfrom
sehz:smartmodule_chaining
Closed

[Merged by Bors] - feat(SmartModule): Support chaining#2618
sehz wants to merge 10 commits intofluvio-community:masterfrom
sehz:smartmodule_chaining

Conversation

@sehz
Copy link

@sehz sehz commented Sep 24, 2022

This PR enables SmartModule chaining processing end to end.

No optimization is enabled. It just re-uses the existing mechanism to pass records from the output from one SmartModule to another SmartModule by Engine. Hence it is not efficient. Once we implement WASM Component Model, we can pass output from a SmartModule to another SmartModule.

With chaining, SmartModules can be chaining like:

filter -> map -> aggregate, or
map -> filter -> aggregate, or
filter -> map -> map ->

SmartModules can be in any order. With this implementation, there is no validation of the records type. If filter and map are different data types, it will return an error. For example, you can't mix JSON map and string filter.

@sehz sehz marked this pull request as draft September 24, 2022 16:19
@sehz sehz force-pushed the smartmodule_chaining branch from a935452 to 00ab411 Compare September 25, 2022 03:56
@sehz sehz marked this pull request as ready for review September 25, 2022 20:41
@sehz sehz changed the title feature(SmartModule): Support chaining feat(SmartModule): Support chaining Sep 26, 2022
@sehz sehz added this to the 0.9.34 milestone Sep 26, 2022
@sehz
Copy link
Author

sehz commented Sep 26, 2022

bors r+

bors bot pushed a commit that referenced this pull request Sep 26, 2022
This PR enables SmartModule chaining processing end to end.

No optimization is enabled.  It just re-uses the existing mechanism to pass records from the output from one SmartModule to another SmartModule by Engine.  Hence it is not efficient.  Once we implement WASM Component Model, we can pass output from a SmartModule to another SmartModule.

With chaining, SmartModules can be chaining like:

`filter -> map -> aggregate`, or
 `map -> filter -> aggregate`, or
`filter -> map -> map -> `

SmartModules can be in any order.  With this implementation, there is no validation of the records type.  If `filter` and `map` are different data types,  it will return an error.     For example, you can't mix  JSON map and string filter.
@bors
Copy link

bors bot commented Sep 26, 2022

Build failed:

@sehz
Copy link
Author

sehz commented Sep 26, 2022

bors r+

bors bot pushed a commit that referenced this pull request Sep 26, 2022
This PR enables SmartModule chaining processing end to end.

No optimization is enabled.  It just re-uses the existing mechanism to pass records from the output from one SmartModule to another SmartModule by Engine.  Hence it is not efficient.  Once we implement WASM Component Model, we can pass output from a SmartModule to another SmartModule.

With chaining, SmartModules can be chaining like:

`filter -> map -> aggregate`, or
 `map -> filter -> aggregate`, or
`filter -> map -> map -> `

SmartModules can be in any order.  With this implementation, there is no validation of the records type.  If `filter` and `map` are different data types,  it will return an error.     For example, you can't mix  JSON map and string filter.
@bors
Copy link

bors bot commented Sep 26, 2022

Build failed:

@sehz
Copy link
Author

sehz commented Sep 26, 2022

bors r+

bors bot pushed a commit that referenced this pull request Sep 26, 2022
This PR enables SmartModule chaining processing end to end.

No optimization is enabled.  It just re-uses the existing mechanism to pass records from the output from one SmartModule to another SmartModule by Engine.  Hence it is not efficient.  Once we implement WASM Component Model, we can pass output from a SmartModule to another SmartModule.

With chaining, SmartModules can be chaining like:

`filter -> map -> aggregate`, or
 `map -> filter -> aggregate`, or
`filter -> map -> map -> `

SmartModules can be in any order.  With this implementation, there is no validation of the records type.  If `filter` and `map` are different data types,  it will return an error.     For example, you can't mix  JSON map and string filter.
@bors
Copy link

bors bot commented Sep 26, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(SmartModule): Support chaining [Merged by Bors] - feat(SmartModule): Support chaining Sep 26, 2022
@bors bors bot closed this Sep 26, 2022
@sehz sehz deleted the smartmodule_chaining branch September 26, 2022 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant