Skip to content

Build out more Benchmark framework + porting over existing benchmarks#73

Merged
erichwang merged 11 commits into
prestodb:masterfrom
erichwang:master
Oct 18, 2012
Merged

Build out more Benchmark framework + porting over existing benchmarks#73
erichwang merged 11 commits into
prestodb:masterfrom
erichwang:master

Conversation

@erichwang

Copy link
Copy Markdown
Contributor
  • Abstracted TupleStreamBenchmark framework + converted benchmarks
  • Add default serdes to TupleStreamSerdes
  • Add StatsCollectingTupleStreamSerde
  • Added SelfIdTupleStreamSerde + some other fixes
  • Improve BlockBuilder resizing behavior

Summary:
The most common pattern for BlockBuilder is to specify a max size, and then keep appending until it reports full before doing something with it. This is inherently inefficient because every time the underlying ByteArraySlice hits the full mark, it will resize and do a full copy of its contents. This means that that for most of the current use cases, we are double copying the data in the BlockBuilder. We can minimize this effect by using a slightly larger underlying storage size.
- fix some bugs in SliceInput
- Improve encoding enum
- Rename encodings
- Refactor Serde to have serializer and deserializer interfaces
- Add SelfIdTupleStreamSerde
- Collects stats when serializing, which become available whe deserializing
Summary:
Inline operators are operators that process tuples value by value without using a splitter (which requires materialization).
They can be inserted inline into a tuplestream with an InlinedOperatorHook. Wrapping an inlined operator with FullInlinedOperatorTupleStream
or PartialInlinedOperatorTupleStream gives the view of it as a tuplestream that produces some values.

In the stats case, we can produce partial results by querying the results before the full stream has been processed.
@erichwang

Copy link
Copy Markdown
Contributor Author

Any other comments on this?

@martint

martint commented Oct 18, 2012

Copy link
Copy Markdown
Contributor

looks good

Summary:
- Class renames
- Removed the ability to read out the results of an InlinedOperator/TupleValueSink in a generic format. We can figure out how we want to expose this information at a later time.
@erichwang erichwang merged commit 8add0ca into prestodb:master Oct 18, 2012
wraymo pushed a commit to wraymo/presto that referenced this pull request Oct 6, 2025
… for CLP's `FormattedFloat` and `DictionaryFloat` types. (prestodb#73)
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