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

Use custom version of timely, improve rule formatting. #862

Merged
merged 2 commits into from
Dec 12, 2020

Conversation

ryzhyk
Copy link
Contributor

@ryzhyk ryzhyk commented Dec 12, 2020

See individual commits.

`struct Program` generated by the compiler contains strings representing
complete rules and their fragments in every node, used to generate
human-readable profiles.  Since this struct is generated after the type
inference step, the rules contain numerous type annotations that bloat their
size.  This causes problems in two ways.  First, all these type annotations
make it hard to read the profile.  Second, for very large projects they can
significantly blow up the memory footprint of the program.

This patch addresses both issues by stripping type annotations from
rules before pretty-printing them.
Switch to using a custom version of timely and differential from:

```
differential-dataflow = { git = "https://github.com/ddlog-dev/differential-dataflow", branch = "ddlog-1" }
timely = { git = "https://github.com/ddlog-dev/timely-dataflow", branch = "ddlog-1" }
```

So far, the only customization on top of vanilla timely 0.11.1 is
modified `Message::default_size` constant.  Original value: 1024, new
value: 128.  The large default buffer size can waste a lot of memory on
static allocations in very large dataflow graphs.  The new value reduces
the waste without impacting the performance too much (based on limited
benchmarking).
@ryzhyk ryzhyk requested a review from mihaibudiu December 12, 2020 00:15
@mihaibudiu
Copy link

So what's in the custom forks?

@ryzhyk
Copy link
Contributor Author

ryzhyk commented Dec 12, 2020

So what's in the custom forks?

Just this: ddlog-dev/timely-dataflow@9e6928e
(see TimelyDataflow/timely-dataflow#346)

Copy link

@mihaibudiu mihaibudiu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you can instead submit a PR to timely to make the value configurable?

@ryzhyk ryzhyk merged commit 6692784 into vmware:master Dec 12, 2020
@ryzhyk ryzhyk deleted the timely_buffer_size branch December 12, 2020 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants