Skip to content

Prepare "immer vs classic" demo.#7

Closed
kosak wants to merge 1 commit intokosak_nextgenfrom
kosak_immer-vs-classic-for-cristian
Closed

Prepare "immer vs classic" demo.#7
kosak wants to merge 1 commit intokosak_nextgenfrom
kosak_immer-vs-classic-for-cristian

Conversation

@kosak
Copy link
Copy Markdown
Owner

@kosak kosak commented Jun 23, 2022

Putting this in a PR for Cristian to review

@jcferretti
Copy link
Copy Markdown
Collaborator

Thanks! I'm in!

@jcferretti jcferretti marked this pull request as draft June 23, 2022 03:37
Copy link
Copy Markdown
Collaborator

@jcferretti jcferretti left a comment

Choose a reason for hiding this comment

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

A kind of general comment... seems like the Context arguments to fillChunk and friends are never used? Should we just get rid of them, or do they have some future intended value?


void fillChunkUnordered(Context *context, const UInt64Chunk &rowKeys, Chunk *dest) const final {
using deephaven::client::utility::stringf;
throw std::runtime_error(stringf("TODO(kosak): %o", DEEPHAVEN_PRETTY_FUNCTION));
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this TODO safe for us to merge/move on to next task?

};

template<typename T>
void ImmerColumnSource<T>::fillChunk(Context *context, const RowSequence &rows, Chunk *dest) const {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Context is unused here, should we remove the name?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We discussed on VC, we agreed to remove Context.

@@ -2,16 +2,13 @@

#include <memory>
#include <vector>
#include "deephaven/client/highlevel/columns.h"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I just noticed that you got rid of "highlevel" etc; care to elaborate a bit?

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

In the previous version of the C++ library (the one that spoke the GWT protocol to Deephaven Enterprise) there was a pretty clear distinction between "low level" and "high level" interactions. In low-level interactions you could issue server commands yourself (various GWT calls... where I interpret GWT as the precursor to GRPC). In high-level interactions you would get your data wrapped up in ColumnSources, have Table abstractions, have automatic lazy evaluation, and also you would get all stuff in the "fluent" layer (the operator overloading stuff). The highlevel stuff was a layer on top of the lowlevel stuff.

For this version I decided that we weren't really getting any value out of the distinction between highlevel vs lowlevel. For example, we're not offering our users the ability to send their own GRPC messages to the server via our library. So for these reasons I ripped it out.

@jcferretti
Copy link
Copy Markdown
Collaborator

From the point of view of considering this "user ready" I think we are going to need to make a decision in terms of if we want to devote some amount of effort to build a minimal unit test suite (I think at this point we don't have any unit tests; in terms of testing (understood as exercising the code), we only have the small examples/driver code we have been using to experiment/measure, correct?). A possible way to go here would be to say "we want to invest X days building unit tests", and then use that time to build, value for effort, tests for the things that would add more value. We should discuss.

@kosak kosak closed this Jul 25, 2022
@kosak kosak deleted the kosak_immer-vs-classic-for-cristian branch July 25, 2022 22:41
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