Skip to content

Conversation

@buchireddy
Copy link
Contributor

PR for the feature mentioned in #4317

Seunghyun Lee and others added 30 commits February 14, 2019 21:50
…e#4041) (#4)

* Use hex string as the representation of byte array for queries

* Adding test for indexing hexstring

* Address comments
* Support Bytes type in sorted column

* Fixing type casting issue for BYTES type values during realtime segment persistence (apache#3992)

* Adding BYTES support for sorted column from query side with predicate.
Reducing the number of objects created during sorting and removing bo…
* Fixing byte[] as groupby value

* Default PinotAdmin Commands to not use System.exit(...). (apache#4110)

* Default PinotAdmin Commands to not use System.exit(...).

* Adding comments for pinot-admin cmd
#11)

* Adding map reader writer for batch and realtime. Supports map<int,int>

* Fixing license header
* Adding pinot query to broker request converter

* Addressing review comments and fixing bug in handling filter expression

* Adding license header
* Adding AST parser to PinotQuery insider BrokerRequest

* Fixing Predicate implementation
… is not set by config (#10)

* Adding config to use hostname over ip as part of pinot default instancd id

* Exit 1 when caught exception in Pinot Admin command. (apache#4065)

* Exit 1 when caught exception in Pinot Admin command.

* Only exit(1) for failure requets

* Infer hostname for controller in possible
* Adding validation mode to compare broker request and pinot query

* Fixing the logic to assign ids to sub filter in the current code

* Logging PQL when conversion fails

* Adding SelectionSort and make standardizeExpression to take one more paramter to single quote non-string literal inside functions

* ignore test of having queries

* Minor clean. Warning on mismatch instead of throwing exception

* Adding license header

* Addressing review comments
* Adding support for udfs in Selection

* Addressing review comments

* Adding license headers

* Adding support for bytes type in order by
variable length byte dictionary.

In the next iteration, we'll be deciding dynamically whether to use
fixed or variable length impl.
Also fixed other review comments from Kishore.
for a column configurable through TableConfig.
@snleee
Copy link
Contributor

snleee commented Jun 14, 2019

@buchireddy Can you rebase the code from apache/incubator-pinot's master branch? Also, it seems that your pr includes some other commits from winedepot branch. If would be great if you can cherry pick the commits so that this pr only includes the code changes related to variable length byte & string support for dictionary.

@buchireddy buchireddy closed this Jun 14, 2019
@buchireddy
Copy link
Contributor Author

@snleee Closing this PR since I don't want to merge all other changes from winedepot fork. I've open #4321 with the intended changes only.

@mcvsubbu
Copy link
Contributor

@buchireddy did you consider the use of MutableOffheapByteArrayStore? I am not able to readily say whether your implementation is based on that or is something parallel.

@buchireddy
Copy link
Contributor Author

@mcvsubbu I did look at MutableOffheapByteArrayStore and took some concepts from it while implementing VarLengthBytesValueReaderWriter too. However, I haven't used the former fully because of the following reasons:

  • In order to support a seamless transition from fixed length to variable length offline dictionary, we need a special magic header to be added at the beginning, which needs some changes to MutableOffheapByteArrayStore.
  • MutableOffheapByteArrayStore is handling the buffer expansions, multiple buffers logic because it needs to be mutable but the immutable one doesn't need all those.

So, it's a trade-off b/w simple code vs avoiding the code duplication (though we anyways need a new class for variable length dictionary class implementation). I'm open for debate and for further brainstorming.

P.S: This is my first time going through Pinot code so please let me know if I'm missing any aspects here.

@mcvsubbu
Copy link
Contributor

Mutable byte array store can be modified to have a header, no problem. It is currently used as a volatile store for comsuming segments, so changing it to include a header is not backward incompatible.

Why not modify it to have the header and also derive an unmutable class from it to be used during segment generation?

@kishoreg
Copy link
Member

Let’s move the discussion to the issue #4317.

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.

5 participants