Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hints should not be runtime specific and should describe data only #259

Open
dmvk opened this issue Feb 5, 2018 · 1 comment
Open

Hints should not be runtime specific and should describe data only #259

dmvk opened this issue Feb 5, 2018 · 1 comment

Comments

@dmvk
Copy link
Contributor

dmvk commented Feb 5, 2018

The current implementation of hints is not portable among runtimes. We should move hints to euphoria-core and they should describe dataset, not the operator implementation.

Eg. JoinHint.BroadcastHashJoin should become something like SizeHint.FITS_IN_MEMORY

@dmvk dmvk added the client-api label Feb 5, 2018
@mareksimunek
Copy link
Contributor

mareksimunek commented Feb 14, 2018

Every operator will have on output method parameter Hint to give information to the runner to help optimize execution for the next transformation

public Dataset<OUT> output(Hint... hints)

E.g.:


Dataset<T> smallDataset = Filter.named("filter to small data")
  .of(bigDataset)
  .by( //filter )
  .output(SizeHint.FITS_IN_MEMORY);

In case we want to give more information about transformation (not about dataset), there will be builder method

described(String name, Hint... hints)
FlatMap.described("extract-something", Hint.CPU_EXPENSIVE)
.of(dataset)
.using( //extracting)
.output();

Use cases where it will be useful:

  • skew join (one side is small and can fit in memory AKA Broadcast Hash Join )
  • estimate parallelization level for transformation

mareksimunek added a commit that referenced this issue Mar 8, 2018
fixed tests

[euphoria-core] hints in getBasicOps are only on last operator

[euphoria-core] code style corrections

[euphoria-core] code style corrections 2
dmvk added a commit that referenced this issue Mar 8, 2018
[euphoria-core] #259 Hints are not runtime specific.
mareksimunek added a commit that referenced this issue May 4, 2018
fixed tests

[euphoria-core] hints in getBasicOps are only on last operator

[euphoria-core] code style corrections

[euphoria-core] code style corrections 2
mareksimunek pushed a commit that referenced this issue May 4, 2018
[euphoria-core] #259 Hints are not runtime specific.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants