Pavel, There are 2 PR's for the ticket[1] with two different APIs suggested. Please, take a look at PR [2].
[1] https://issues.apache.org/jira/browse/IGNITE-14035 [2] https://github.com/apache/ignite-3/pull/69 On Wed, Mar 17, 2021 at 11:11 AM Pavel Tupitsyn <ptupit...@apache.org> wrote: > Andrey, I can't find any async methods, > can you please check if the changes are pushed? > > On Tue, Mar 16, 2021 at 10:06 PM Andrey Mashenkov < > andrey.mashen...@gmail.com> wrote: > > > Pavel, good point. > > Thanks. I've added async methods. > > > > On Fri, Mar 12, 2021 at 2:29 PM Pavel Tupitsyn <ptupit...@apache.org> > > wrote: > > > > > Andrey, > > > > > > What about corresponding async APIs, do we add them now or later? > > > > > > On Thu, Mar 11, 2021 at 8:11 PM Andrey Mashenkov < > > > andrey.mashen...@gmail.com> > > > wrote: > > > > > > > Hi Igniters. > > > > > > > > I've created a PR for Table access API [1]. > > > > This is an initial version. So, any suggestions\objections are > > welcomed. > > > > Please, do not hesitate to write your comments and\or examples to the > > PR. > > > > > > > > Ignite-api module contains API classes, e.g. TableView classes as > > > > projections for a table for different purposes. > > > > Ignite-table contains dummy implementation and Example class > explained > > > how > > > > it is supposed to be used. > > > > > > > > > > > > Also, I'm still waiting for any feedback for Schema configuration > > public > > > > API PR [2]. > > > > > > > > [1] https://github.com/apache/ignite-3/pull/33 > > > > [2] https://github.com/apache/ignite-3/pull/2 > > > > > > > > On Wed, Jan 20, 2021 at 6:05 PM Andrey Mashenkov < > > > > andrey.mashen...@gmail.com> > > > > wrote: > > > > > > > > > > > > > > I've updated a PR regarding your feedback [1]. > > > > > > > > > > [1] https://github.com/apache/ignite-3/pull/2 > > > > > > > > > > On Mon, Jan 11, 2021 at 10:58 AM Alexey Goncharuk < > > > > > alexey.goncha...@gmail.com> wrote: > > > > > > > > > >> Folks, > > > > >> > > > > >> I updated the IEP to contain the missing pieces; actually, most of > > the > > > > >> questions here were covered by the text. Please let me know if > there > > > is > > > > >> something still missing or unclear. > > > > >> > > > > >> чт, 31 дек. 2020 г. в 12:48, Alexey Goncharuk < > > > > alexey.goncha...@gmail.com > > > > >> >: > > > > >> > > > > >> > Mikhail and Igniters, > > > > >> > > > > > >> > Thanks for your comments. The questions are reasonable, though I > > > think > > > > >> all > > > > >> > concerns are addressed by the IEP as Val mentioned. I will > update > > > the > > > > >> > document according to your questions in the following week or > so, > > so > > > > we > > > > >> can > > > > >> > have a constructive discussion further. > > > > >> > > > > > >> > ср, 30 дек. 2020 г. в 11:45, Michael Cherkasov < > > > > >> > michael.cherka...@gmail.com>: > > > > >> > > > > > >> >> Hi Val, Andrey, > > > > >> >> > > > > >> >> thank you for clarifying. > > > > >> >> > > > > >> >> I still have a few comments. > > > > >> >> > > > > >> >> 1. one table == one schema. KV vs SQL: > > > > >> >> Looks like all agreed that KV is just a special case of a > regular > > > > table > > > > >> >> with (blob,blob) schema. > > > > >> >> I worry about the case when the user starts from KV case and > > later > > > > will > > > > >> >> try > > > > >> >> to expand it and try to leverage SQL for the existing KV table > it > > > > >> won't be > > > > >> >> able to do so and will require to reload data. which isn't > > > convenient > > > > >> and > > > > >> >> sometimes not even possible. Is it possible to extract a new > > field > > > > from > > > > >> >> (blob, blob) schema and apply index on it? > > > > >> >> > > > > >> >> 2. Could you please also list all ways of schema definition in > > the > > > > >> IEP? It > > > > >> >> significant change and I bet the main point of this IEP, > everyone > > > > hates > > > > >> >> QueryEntities, they are difficult to manage and in general, > it's > > > very > > > > >> >> confusing to have a data model(schemas) and node/cluster > > > > configuration > > > > >> in > > > > >> >> one place. > > > > >> >> > > > > >> >> So there will be SchemaBuilder and SQL to define schemas, but > > > Andrey > > > > >> also > > > > >> >> mentioned annotations. > > > > >> >> > > > > >> >> I personally against configuration via annotations, while it's > > > > >> convenient > > > > >> >> for development, it difficult to manage because different > classes > > > can > > > > >> be > > > > >> >> deployed on different clients/servers nodes and it can lead to > > > > >> >> unpredictable results. > > > > >> >> > > > > >> >> 3. IEP doesn't mention field type changes, only drop/add > fields. > > > > Field > > > > >> >> type > > > > >> >> changes are extremely painful right now(if even possible), so > it > > > > would > > > > >> be > > > > >> >> nice if some scenarios would be supported(like int8->int16, or > > > > >> >> int8->String). > > > > >> >> > > > > >> >> 4. got it, I thought IEP will have more details about the > > > > >> implementation. > > > > >> >> I've seen Andrey even sent benchmark results for a new > > > serialization, > > > > >> will > > > > >> >> ping him about this. > > > > >> >> > > > > >> >> 5. Thanks for the clarification. I had a wrong understanding of > > > > strick > > > > >> >> mode. > > > > >> >> > > > > >> >> > > > > >> >> вт, 29 дек. 2020 г. в 19:32, Valentin Kulichenko < > > > > >> >> valentin.kuliche...@gmail.com>: > > > > >> >> > > > > >> >> > Hi Mike, > > > > >> >> > > > > > >> >> > Thanks for providing your feedback. Please see my comments > > below. > > > > >> >> > > > > > >> >> > I would also encourage you to go through the IEP-54 [1] - it > > has > > > a > > > > >> lot > > > > >> >> of > > > > >> >> > detail on the topic. > > > > >> >> > > > > > >> >> > [1] > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > >> > > > > > > > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach > > > > >> >> > > > > > >> >> > -Val > > > > >> >> > > > > > >> >> > On Mon, Dec 28, 2020 at 11:22 PM Michael Cherkasov < > > > > >> >> > michael.cherka...@gmail.com> wrote: > > > > >> >> > > > > > >> >> > > Hi all, > > > > >> >> > > > > > > >> >> > > I reviewed the mail thread and proposal page and I still > > don't > > > > >> fully > > > > >> >> > > understand what is going to be changed, I would really > > > appreciate > > > > >> it > > > > >> >> if > > > > >> >> > you > > > > >> >> > > will answer a few questions: > > > > >> >> > > > > > > >> >> > > 1. Are you going to leave only one schema per cache? if so, > > > will > > > > be > > > > >> >> there > > > > >> >> > > an option to have a table with arbitrary objects(pure KV > > case)? > > > > >> >> > > > > > > >> >> > > > > > >> >> > My opinion is that KV case should be natively supported. I > > think > > > > this > > > > >> >> still > > > > >> >> > needs to be thought over, my current view on this is that we > > > should > > > > >> have > > > > >> >> > separate APIs for KV and more generic storages. KV storage > can > > be > > > > >> >> > implemented as a "table" with two BLOB fields where we will > > store > > > > >> >> > serialized key-value pairs. That would imply deserialization > on > > > > read, > > > > >> >> but I > > > > >> >> > believe this is OK for KV use cases. I'm happy to hear other > > > ideas > > > > >> >> though > > > > >> >> > :) > > > > >> >> > > > > > >> >> > > > > > >> >> > > 2. What options will Apache Ignite 3.0 have to define > schema? > > > > >> >> > SchemaBuilder > > > > >> >> > > and SQL only? Is there an option to put the schema > definition > > > to > > > > >> the > > > > >> >> > > configuration?(I really don't like this, I would prefer to > > have > > > > >> >> > > separate scripts to create schemas) > > > > >> >> > > > > > > >> >> > > > > > >> >> > There will be no such thing as a static configuration in the > > > first > > > > >> >> place. > > > > >> >> > Tables and schemas are created in runtime. Even if there is a > > > file > > > > >> >> provided > > > > >> >> > on node startup, this file is only applied in the scope of > the > > > > >> 'start' > > > > >> >> > operation. All configurations will be stored in a meta > storage > > > > >> >> available to > > > > >> >> > all nodes, as opposed to individual files. > > > > >> >> > > > > > >> >> > > > > > >> >> > > 3. Is there a way to change field type? if yes, can it be > > done > > > in > > > > >> >> > runtime? > > > > >> >> > > > > > > >> >> > > > > > >> >> > Absolutely! IEP-54 has a whole section about schema > evolution. > > > > >> >> > > > > > >> >> > > > > > >> >> > > 4. Looks like BinaryMarshaller is going to be re-worked > too, > > is > > > > >> there > > > > >> >> any > > > > >> >> > > IEP for this? > > > > >> >> > > > > > > >> >> > > > > > >> >> > BinaryMarshaller as a tool for arbitrary object serialization > > > will > > > > be > > > > >> >> gone, > > > > >> >> > but we will reuse a lot of its concept to implement an > internal > > > > tuple > > > > >> >> > serialization mechanism. IEP-54 has the description of the > > > proposed > > > > >> data > > > > >> >> > format. > > > > >> >> > > > > > >> >> > > > > > >> >> > > 5. I don't like automatic schema evaluation when a new > field > > is > > > > >> added > > > > >> >> > > automatically on record put, so is there a way to prohibit > > this > > > > >> >> behavior? > > > > >> >> > > I think all schema changes should be done only explicitly > > > except > > > > >> >> initial > > > > >> >> > > schema creation. > > > > >> >> > > > > > > >> >> > > > > > >> >> > The way I see it is that we should have two modes: > schema-first > > > and > > > > >> >> > schema-last. Schema-first means exactly what you've > described - > > > > >> schemas > > > > >> >> are > > > > >> >> > defined and updated explicitly by the user. In the > schema-last > > > > mode, > > > > >> >> > the user does not deal with schemas, as they are inferred > from > > > the > > > > >> data > > > > >> >> > inserted into tables. We should definitely not mix these > modes > > - > > > it > > > > >> has > > > > >> >> to > > > > >> >> > be one or another. And it probably makes sense to discuss > which > > > > mode > > > > >> >> should > > > > >> >> > be the default one. > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > > >> >> > > Thanks, > > > > >> >> > > Mike. > > > > >> >> > > > > > > >> >> > > пн, 21 дек. 2020 г. в 06:40, Andrey Mashenkov < > > > > >> >> > andrey.mashen...@gmail.com > > > > >> >> > > >: > > > > >> >> > > > > > > >> >> > > > Hi, Igniters. > > > > >> >> > > > > > > > >> >> > > > We all know that the current QueryEntity API is not > > > convenient > > > > >> and > > > > >> >> > needs > > > > >> >> > > to > > > > >> >> > > > be reworked. > > > > >> >> > > > So, I'm glad to share PR [1] with schema configuration > > public > > > > API > > > > >> >> for > > > > >> >> > > > Ignite 3.0. > > > > >> >> > > > > > > > >> >> > > > New schema configuration uses Builder pattern, which > looks > > > more > > > > >> >> > > comfortable > > > > >> >> > > > to use. > > > > >> >> > > > > > > > >> >> > > > In the PR you will find a 'schema' package with the API > > > itself, > > > > >> and > > > > >> >> a > > > > >> >> > > draft > > > > >> >> > > > implementation in 'internal' sub-package, > > > > >> >> > > > and a test that demonstrates how the API could be used. > > > > >> >> > > > > > > > >> >> > > > Please note: > > > > >> >> > > > > > > > >> >> > > > * Entrypoint is 'SchemaBuilders' class with static > factory > > > > >> methods. > > > > >> >> > > > * The implementation is decoupled and can be easily > > extracted > > > > to > > > > >> >> > separate > > > > >> >> > > > module if we decide to do so. > > > > >> >> > > > * Some columns types (e.g. Date/Time) are missed, they > will > > > be > > > > >> added > > > > >> >> > > lately > > > > >> >> > > > in separate tickes. > > > > >> >> > > > * Index configuration extends marker interface that makes > > > > >> possible > > > > >> >> to > > > > >> >> > > > implement indexes of new types in plugins. > > > > >> >> > > > Hopfully, we could add a persistent geo-indices support > in > > > > >> future. > > > > >> >> > > > * Supposedly, current table schema can be changed via > > > > >> builder-like > > > > >> >> > > > structure as it is done if JOOQ project. See > > > > >> >> 'TableModificationBuilder' > > > > >> >> > > for > > > > >> >> > > > details. > > > > >> >> > > > I'm not sure 'SchemaTable' should have 'toBuilder()' > > > converter > > > > >> for > > > > >> >> that > > > > >> >> > > > purpose as it is a Schema Manager responsibility to > create > > > > >> mutator > > > > >> >> > > objects > > > > >> >> > > > from the current schema, > > > > >> >> > > > but implementing the Schema manager is out of scope and > > will > > > be > > > > >> >> > designed > > > > >> >> > > > within the next task. > > > > >> >> > > > * Interfaces implementations are out of scope. I did not > > > intend > > > > >> to > > > > >> >> > merge > > > > >> >> > > > them right now, but for test/demostration purposes. > > > > >> >> > > > > > > > >> >> > > > It is NOT the final version and some may be changed > before > > > the > > > > >> first > > > > >> >> > > > release of course. > > > > >> >> > > > For now, we have to agree if we can proceed with this > > > approach > > > > or > > > > >> >> some > > > > >> >> > > > issues should be resolved at first. > > > > >> >> > > > > > > > >> >> > > > Any thoughts or objections? > > > > >> >> > > > Are interfaces good enough to be merged within the > current > > > > >> ticket? > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > https://issues.apache.org/jira/browse/IGNITE-13748 > > > > >> >> > > > > > > > >> >> > > > On Thu, Nov 26, 2020 at 2:33 PM Юрий < > > > > >> jury.gerzhedow...@gmail.com> > > > > >> >> > > wrote: > > > > >> >> > > > > > > > >> >> > > > > A little bit my thoughts about unsigned types: > > > > >> >> > > > > > > > > >> >> > > > > 1. Seems we may support unsign types > > > > >> >> > > > > 2. It requires adding new types to the internal > > > > representation, > > > > >> >> > > protocol, > > > > >> >> > > > > e.t.c. > > > > >> >> > > > > 3. internal representation should be the same as we > keep > > > sign > > > > >> >> types. > > > > >> >> > So > > > > >> >> > > > it > > > > >> >> > > > > will not requires more memory > > > > >> >> > > > > 4. User should be aware of specifics such types for > > > platforms > > > > >> >> which > > > > >> >> > not > > > > >> >> > > > > support unsigned types. For example, a user could > derive > > -6 > > > > >> value > > > > >> >> in > > > > >> >> > > Java > > > > >> >> > > > > for 250 unsigned byte value (from bits perspective will > > be > > > > >> >> right). I > > > > >> >> > > > think > > > > >> >> > > > > We shouldn't use more wide type for such cases, > > especially > > > it > > > > >> >> will be > > > > >> >> > > bad > > > > >> >> > > > > for unsigned long when we require returns BigInteger > > type. > > > > >> >> > > > > 5. Possible it requires some suffix/preffix for new > types > > > > like > > > > >> a > > > > >> >> > > '250u' - > > > > >> >> > > > > it means that 250 is an unsigned value type. > > > > >> >> > > > > 6. It requires a little bit more expensive comparison > > logic > > > > for > > > > >> >> > indexes > > > > >> >> > > > > 7. It requires new comparison logic for expressions. I > > > think > > > > it > > > > >> >> not > > > > >> >> > > > > possible for the current H2 engine and probably > possible > > > for > > > > >> the > > > > >> >> new > > > > >> >> > > > > Calcite engine. Need clarification from anybody who > > > involved > > > > in > > > > >> >> this > > > > >> >> > > part > > > > >> >> > > > > > > > > >> >> > > > > WDYT? > > > > >> >> > > > > > > > > >> >> > > > > вт, 24 нояб. 2020 г. в 18:36, Alexey Goncharuk < > > > > >> >> > > > alexey.goncha...@gmail.com > > > > >> >> > > > > >: > > > > >> >> > > > > > > > > >> >> > > > > > Actually, we can support comparisons in 3.0: once we > > the > > > > >> actual > > > > >> >> > type > > > > >> >> > > > > > information, we can make proper runtime adjustments > and > > > > >> >> conversions > > > > >> >> > > to > > > > >> >> > > > > > treat those values as unsigned - it will be just a > bit > > > more > > > > >> >> > > expensive. > > > > >> >> > > > > > > > > > >> >> > > > > > вт, 24 нояб. 2020 г. в 18:32, Pavel Tupitsyn < > > > > >> >> ptupit...@apache.org > > > > >> >> > >: > > > > >> >> > > > > > > > > > >> >> > > > > > > > SQL range queries it will break > > > > >> >> > > > > > > > WHERE x > y may return wrong results > > > > >> >> > > > > > > > > > > >> >> > > > > > > Yes, range queries, inequality comparisons and so > on > > > are > > > > >> >> broken > > > > >> >> > > > > > > for unsigned data types, I think I mentioned this > > > > somewhere > > > > >> >> > above. > > > > >> >> > > > > > > > > > > >> >> > > > > > > Again, in my opinion, we can document that SQL is > not > > > > >> >> supported > > > > >> >> > on > > > > >> >> > > > > those > > > > >> >> > > > > > > types, > > > > >> >> > > > > > > end of story. > > > > >> >> > > > > > > > > > > >> >> > > > > > > On Tue, Nov 24, 2020 at 6:25 PM Alexey Goncharuk < > > > > >> >> > > > > > > alexey.goncha...@gmail.com> > > > > >> >> > > > > > > wrote: > > > > >> >> > > > > > > > > > > >> >> > > > > > > > Folks, I think this is a reasonable request. I > > > thought > > > > >> about > > > > >> >> > this > > > > >> >> > > > > when > > > > >> >> > > > > > I > > > > >> >> > > > > > > > was drafting the IEP, but hesitated to add these > > > types > > > > >> right > > > > >> >> > > away. > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > That is how it works in Ignite since the > > beginning > > > > with > > > > >> >> .NET > > > > >> >> > > and > > > > >> >> > > > > C++ > > > > >> >> > > > > > :) > > > > >> >> > > > > > > > I have some doubts that it actually works as > > > expected, > > > > it > > > > >> >> needs > > > > >> >> > > > some > > > > >> >> > > > > > > > checking (will be glad if my concerns are false): > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > - It's true that equality check works > properly, > > > but > > > > >> for > > > > >> >> SQL > > > > >> >> > > > range > > > > >> >> > > > > > > > queries it will break unless some special care > > is > > > > >> taken > > > > >> >> on > > > > >> >> > > Java > > > > >> >> > > > > > side: > > > > >> >> > > > > > > > for > > > > >> >> > > > > > > > u8 255 > 10, but in Java (byte)255 will be > > > converted > > > > >> to > > > > >> >> -1, > > > > >> >> > > > which > > > > >> >> > > > > > will > > > > >> >> > > > > > > > break the comparison. Since we don't have > > unsigned > > > > >> types > > > > >> >> > now, > > > > >> >> > > I > > > > >> >> > > > > > doubt > > > > >> >> > > > > > > it > > > > >> >> > > > > > > > works. > > > > >> >> > > > > > > > - There is an obvious cross-platform data loss > > > when > > > > >> >> > > "intuitive" > > > > >> >> > > > > type > > > > >> >> > > > > > > > mapping is used by a user (u8 corresponds to > > byte > > > > >> type in > > > > >> >> > > .NET, > > > > >> >> > > > > but > > > > >> >> > > > > > to > > > > >> >> > > > > > > > avoid values loss, a user will have to use > short > > > > type > > > > >> in > > > > >> >> > Java, > > > > >> >> > > > and > > > > >> >> > > > > > > > Ignite > > > > >> >> > > > > > > > will also need to take care of the range check > > > > during > > > > >> >> > > > > > serialization). > > > > >> >> > > > > > > I > > > > >> >> > > > > > > > think we can even allow to try to deserialize > a > > > > value > > > > >> >> into > > > > >> >> > > > > arbitrary > > > > >> >> > > > > > > > type, > > > > >> >> > > > > > > > but throw an exception if the range is out of > > > > bounds. > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > Overall, I agree with Andrey's comments. > > > > >> >> > > > > > > > Andrey, do you mind updating the IEP once all the > > > > details > > > > >> >> are > > > > >> >> > > > settled > > > > >> >> > > > > > > here? > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > вт, 24 нояб. 2020 г. в 18:19, Andrey Mashenkov < > > > > >> >> > > > > > > andrey.mashen...@gmail.com > > > > >> >> > > > > > > > >: > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > Pavel, > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > I believe uLong values beyond 2^63 can't be > > treated > > > > >> >> correctly > > > > >> >> > > for > > > > >> >> > > > > now > > > > >> >> > > > > > > > > (WHERE x > y may return wrong results) > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > I think we could make "true" support for > unsigned > > > > >> types, > > > > >> >> but > > > > >> >> > > they > > > > >> >> > > > > > will > > > > >> >> > > > > > > > have > > > > >> >> > > > > > > > > limitations on the Java side. > > > > >> >> > > > > > > > > Thus, the one will not be able to map uint64 to > > > Java > > > > >> long > > > > >> >> > > > > primitive, > > > > >> >> > > > > > > but > > > > >> >> > > > > > > > to > > > > >> >> > > > > > > > > BigInteger only. > > > > >> >> > > > > > > > > As for indices, we could read uint64 to Java > > long, > > > > but > > > > >> >> treat > > > > >> >> > > > > negative > > > > >> >> > > > > > > > > values in a different way to preserve correct > > > > ordering. > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > These limitations will affect only mixed > > > environments > > > > >> when > > > > >> >> > .Net > > > > >> >> > > > and > > > > >> >> > > > > > > Java > > > > >> >> > > > > > > > > used to access the data. > > > > >> >> > > > > > > > > Will this solution address your issues? > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > On Tue, Nov 24, 2020 at 5:45 PM Pavel Tupitsyn > < > > > > >> >> > > > > ptupit...@apache.org > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > That way is impossible. > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > That is how it works in Ignite since the > > > beginning > > > > >> with > > > > >> >> > .NET > > > > >> >> > > > and > > > > >> >> > > > > > C++ > > > > >> >> > > > > > > :) > > > > >> >> > > > > > > > > > You can use unsigned primitives as cache keys > > and > > > > >> >> values, > > > > >> >> > as > > > > >> >> > > > > fields > > > > >> >> > > > > > > and > > > > >> >> > > > > > > > > > properties, > > > > >> >> > > > > > > > > > and in SQL queries (even in WHERE x=y > clauses) > > - > > > it > > > > >> >> works > > > > >> >> > > > > > > transparently > > > > >> >> > > > > > > > > for > > > > >> >> > > > > > > > > > the users. > > > > >> >> > > > > > > > > > Java side knows nothing and treats those > values > > > as > > > > >> >> > > > corresponding > > > > >> >> > > > > > > signed > > > > >> >> > > > > > > > > > types. > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > However, this abstraction leaks in some cases > > > only > > > > >> >> because > > > > >> >> > > > there > > > > >> >> > > > > > are > > > > >> >> > > > > > > no > > > > >> >> > > > > > > > > > corresponding type ids. > > > > >> >> > > > > > > > > > That is why I'm proposing a very simple > change > > to > > > > the > > > > >> >> > > protocol > > > > >> >> > > > - > > > > >> >> > > > > > add > > > > >> >> > > > > > > > type > > > > >> >> > > > > > > > > > ids, but handle them the same way as signed > > > > >> >> counterparts. > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > On Tue, Nov 24, 2020 at 5:00 PM Andrey > > Mashenkov > > > < > > > > >> >> > > > > > > > > > andrey.mashen...@gmail.com> > > > > >> >> > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > Pavel, > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > - Treat uLong as long in Java (bitwise > > > > >> representation > > > > >> >> is > > > > >> >> > > the > > > > >> >> > > > > > same) > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > That way is impossible. > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > Assume, you have a .NET class with a uByte > > > field > > > > >> and > > > > >> >> map > > > > >> >> > it > > > > >> >> > > > to > > > > >> >> > > > > > > > 'uint8' > > > > >> >> > > > > > > > > > > column. > > > > >> >> > > > > > > > > > > Then you set the field value to "250" and > put > > > the > > > > >> >> object > > > > >> >> > > > into a > > > > >> >> > > > > > > > table, > > > > >> >> > > > > > > > > > > field value perfectly fits to a single byte > > > > 'int8' > > > > >> >> > column. > > > > >> >> > > > > > > > > > > But in Java you can't deserialize it to > > > directly > > > > >> the > > > > >> >> Java > > > > >> >> > > > > object > > > > >> >> > > > > > > > field > > > > >> >> > > > > > > > > of > > > > >> >> > > > > > > > > > > 'byte' type, so we should map uint8 type to > > > Java > > > > >> >> 'short' > > > > >> >> > > type > > > > >> >> > > > > > > > > > > because the one expected to see "250" as a > > > value > > > > >> which > > > > >> >> > > > doesn't > > > > >> >> > > > > > fit > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > the > > > > >> >> > > > > > > > > > > signed type. > > > > >> >> > > > > > > > > > > For uLong the one will need a BigInteger > > field > > > in > > > > >> >> Java. > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > SQL index either can't treat column value > as > > > Java > > > > >> >> 'byte' > > > > >> >> > as > > > > >> >> > > > is, > > > > >> >> > > > > > > > because > > > > >> >> > > > > > > > > > > after reading you will get a negative > value, > > so > > > > it > > > > >> >> should > > > > >> >> > > be > > > > >> >> > > > > cast > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > > short > > > > >> >> > > > > > > > > > > at first. (converted to BigInteger for > > uint64) > > > > >> >> > > > > > > > > > > So, index on signed type will require a > > > different > > > > >> >> > > comparator. > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > That way doesn't look simpler. > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > On Tue, Nov 24, 2020 at 4:23 PM Pavel > > Tupitsyn > > > < > > > > >> >> > > > > > > ptupit...@apache.org > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > Andrey, > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > I don't think range narrowing is a good > > idea. > > > > >> >> > > > > > > > > > > > Do you see any problems with the simple > > > > approach > > > > >> I > > > > >> >> > > > described? > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > On Tue, Nov 24, 2020 at 4:01 PM Andrey > > > > Mashenkov > > > > >> < > > > > >> >> > > > > > > > > > > > andrey.mashen...@gmail.com> > > > > >> >> > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > Pavel, > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > If you are ok with narrowing range for > > > > unsigned > > > > >> >> types > > > > >> >> > > > then > > > > >> >> > > > > we > > > > >> >> > > > > > > > could > > > > >> >> > > > > > > > > > > add a > > > > >> >> > > > > > > > > > > > > constraint for unsigned types on schema > > > level > > > > >> >> (like > > > > >> >> > > > > > nullability > > > > >> >> > > > > > > > > flag) > > > > >> >> > > > > > > > > > > > > and treat them as signed types in > > storage. > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > We are going with a separate storage > > > > >> type-system > > > > >> >> and > > > > >> >> > > > binary > > > > >> >> > > > > > > > > protocol > > > > >> >> > > > > > > > > > > > > type-system, however most of type will > > > match > > > > 1 > > > > >> to > > > > >> >> 1 > > > > >> >> > > with > > > > >> >> > > > > > > storage > > > > >> >> > > > > > > > > > > (native) > > > > >> >> > > > > > > > > > > > > type. > > > > >> >> > > > > > > > > > > > > On .Net side you will either have a > > > separate > > > > >> type > > > > >> >> id > > > > >> >> > or > > > > >> >> > > > > treat > > > > >> >> > > > > > > > > > > serialized > > > > >> >> > > > > > > > > > > > > value regarding a schema (signed or > > > unsigned > > > > >> >> flag). > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > Igor, > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > I'm not sure users can ever foresee the > > > > >> >> consequences > > > > >> >> > of > > > > >> >> > > > > using > > > > >> >> > > > > > > > > > unsigned > > > > >> >> > > > > > > > > > > > > types. > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > Assume, a user used to unsigned types > > > > perfectly > > > > >> >> works > > > > >> >> > > > with > > > > >> >> > > > > > some > > > > >> >> > > > > > > > > > > database, > > > > >> >> > > > > > > > > > > > > then he turns into Ignite successor > > > > confession > > > > >> >> with > > > > >> >> > our > > > > >> >> > > > > > > "native" > > > > >> >> > > > > > > > > > > > > unsigned-types support. > > > > >> >> > > > > > > > > > > > > But later, he finds that he can use the > > > power > > > > >> of > > > > >> >> > Ignite > > > > >> >> > > > > > Compute > > > > >> >> > > > > > > > on > > > > >> >> > > > > > > > > > Java > > > > >> >> > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > some tasks or a new app. > > > > >> >> > > > > > > > > > > > > Finally, the user will either fail to > use > > > his > > > > >> >> > unsigned > > > > >> >> > > > data > > > > >> >> > > > > > on > > > > >> >> > > > > > > > Java > > > > >> >> > > > > > > > > > due > > > > >> >> > > > > > > > > > > > or > > > > >> >> > > > > > > > > > > > > face performance issues due to natural > > Java > > > > >> type > > > > >> >> > system > > > > >> >> > > > > > > > limitations > > > > >> >> > > > > > > > > > > e.g. > > > > >> >> > > > > > > > > > > > > conversion uLong to BigInteger. > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > I believe that natively supported types > > > with > > > > >> >> possible > > > > >> >> > > > value > > > > >> >> > > > > > > > ranges > > > > >> >> > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > limitations should be known. > > > > >> >> > > > > > > > > > > > > So, the only question is what trade-off > > we > > > > >> found > > > > >> >> > > > > acceptable: > > > > >> >> > > > > > > > > > narrowing > > > > >> >> > > > > > > > > > > > > unsigned type range or use types of > wider > > > > >> range on > > > > >> >> > > > systems > > > > >> >> > > > > > like > > > > >> >> > > > > > > > > Java. > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > On Tue, Nov 24, 2020 at 3:25 PM Igor > > > Sapego < > > > > >> >> > > > > > > isap...@apache.org> > > > > >> >> > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > Actually, I think it is not so hard > to > > > > >> implement > > > > >> >> > > > > comparison > > > > >> >> > > > > > > of > > > > >> >> > > > > > > > > > > unsigned > > > > >> >> > > > > > > > > > > > > > numbers in > > > > >> >> > > > > > > > > > > > > > SQL even in Java, so it does not seem > > to > > > > be a > > > > >> >> big > > > > >> >> > > issue > > > > >> >> > > > > > from > > > > >> >> > > > > > > my > > > > >> >> > > > > > > > > > > > > > perspective. > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > Now to the usage of unsigned types > from > > > > Java > > > > >> - I > > > > >> >> > > think, > > > > >> >> > > > > if > > > > >> >> > > > > > a > > > > >> >> > > > > > > > user > > > > >> >> > > > > > > > > > > uses > > > > >> >> > > > > > > > > > > > > > unsigned type > > > > >> >> > > > > > > > > > > > > > in a schema and is going to interact > > with > > > > it > > > > >> >> from > > > > >> >> > > Java > > > > >> >> > > > he > > > > >> >> > > > > > > knows > > > > >> >> > > > > > > > > > what > > > > >> >> > > > > > > > > > > he > > > > >> >> > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > doing. > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > Mostly they are for use from > platforms > > > > where > > > > >> >> they > > > > >> >> > > have > > > > >> >> > > > > > native > > > > >> >> > > > > > > > > > support > > > > >> >> > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > widely > > > > >> >> > > > > > > > > > > > > > used, like in C++ or .NET, where > users > > > > >> currently > > > > >> >> > have > > > > >> >> > > > to > > > > >> >> > > > > > > make a > > > > >> >> > > > > > > > > > > manual > > > > >> >> > > > > > > > > > > > > type > > > > >> >> > > > > > > > > > > > > > casting > > > > >> >> > > > > > > > > > > > > > or even just stop using unsigned > types > > > when > > > > >> they > > > > >> >> > use > > > > >> >> > > > > > Ignite. > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > Best Regards, > > > > >> >> > > > > > > > > > > > > > Igor > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 3:06 PM Pavel > > > > >> Tupitsyn < > > > > >> >> > > > > > > > > > ptupit...@apache.org > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > Andrey, > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > I think it is much simpler: > > > > >> >> > > > > > > > > > > > > > > - Add protocol support for those > > types > > > > >> >> > (basically, > > > > >> >> > > > just > > > > >> >> > > > > > add > > > > >> >> > > > > > > > > more > > > > >> >> > > > > > > > > > > type > > > > >> >> > > > > > > > > > > > > > ids) > > > > >> >> > > > > > > > > > > > > > > - Treat uLong as long in Java > > (bitwise > > > > >> >> > > representation > > > > >> >> > > > > is > > > > >> >> > > > > > > the > > > > >> >> > > > > > > > > > same) > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > ANSI SQL does not have unsigned > > > integers, > > > > >> so > > > > >> >> we > > > > >> >> > can > > > > >> >> > > > > > simply > > > > >> >> > > > > > > > say > > > > >> >> > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > > unsigned value relative comparison > is > > > not > > > > >> >> > supported > > > > >> >> > > > in > > > > >> >> > > > > > SQL > > > > >> >> > > > > > > > > > > (equality > > > > >> >> > > > > > > > > > > > > will > > > > >> >> > > > > > > > > > > > > > > work). > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 2:40 PM > > Andrey > > > > >> >> Mashenkov > > > > >> >> > < > > > > >> >> > > > > > > > > > > > > > > andrey.mashen...@gmail.com> > > > > >> >> > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > Thanks, Pavel and Igor. > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > I like your ideas to have i8 or > > int8 > > > > >> >> instead of > > > > >> >> > > > > > Integer. > > > > >> >> > > > > > > > > > > > > > > > But the naming doesn't address > the > > > > issue. > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > I agree internal types should be > > > > portable > > > > >> >> > across > > > > >> >> > > > > > > different > > > > >> >> > > > > > > > > > > systems > > > > >> >> > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > without unsigned type support. > > > > >> >> > > > > > > > > > > > > > > > The only issue here is that > > unsigned > > > > >> types > > > > >> >> > cover > > > > >> >> > > > > > > different > > > > >> >> > > > > > > > > > > ranges. > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > Let's assume we want to > introduce a > > > > >> uLong. > > > > >> >> > > > > > > > > > > > > > > > It doesn't look like a big deal > to > > > add > > > > >> uLong > > > > >> >> > type > > > > >> >> > > > > > support > > > > >> >> > > > > > > > at > > > > >> >> > > > > > > > > > > > storage > > > > >> >> > > > > > > > > > > > > > > level > > > > >> >> > > > > > > > > > > > > > > > and fit it to a 8 bytes and then > > use > > > it > > > > >> in > > > > >> >> e.g. > > > > >> >> > > > .Net > > > > >> >> > > > > > > only. > > > > >> >> > > > > > > > > > > > > > > > But how we could support it in > e.g. > > > > Java? > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > Let's keep in mind Long range is > > > about > > > > >> >> (2^-63 > > > > >> >> > .. > > > > >> >> > > > > 2^63) > > > > >> >> > > > > > > and > > > > >> >> > > > > > > > > > uLong > > > > >> >> > > > > > > > > > > > > range > > > > >> >> > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > (0 .. 2^64) > > > > >> >> > > > > > > > > > > > > > > > 1. The first option is to > restrict > > > > range > > > > >> to > > > > >> >> (0 > > > > >> >> > .. > > > > >> >> > > > > > 2^63). > > > > >> >> > > > > > > > This > > > > >> >> > > > > > > > > > > > allows > > > > >> >> > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > use > > > > >> >> > > > > > > > > > > > > > > > signed in e.g. > > > > >> >> > > > > > > > > > > > > > > > Java with no conversion, but > > doesn't > > > > look > > > > >> >> like > > > > >> >> > a > > > > >> >> > > > > 'real' > > > > >> >> > > > > > > > > > unsigned > > > > >> >> > > > > > > > > > > > > uLong > > > > >> >> > > > > > > > > > > > > > > > support. Things go worse when the > > > user > > > > >> will > > > > >> >> use > > > > >> >> > > > > uByte, > > > > >> >> > > > > > as > > > > >> >> > > > > > > > > > > > limitation > > > > >> >> > > > > > > > > > > > > > can > > > > >> >> > > > > > > > > > > > > > > > make uByte totally unusable. > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > 2. The second one is to map > > unsigned > > > > >> types > > > > >> >> to a > > > > >> >> > > > type > > > > >> >> > > > > of > > > > >> >> > > > > > > > wider > > > > >> >> > > > > > > > > > > type > > > > >> >> > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > add > > > > >> >> > > > > > > > > > > > > > > > a constraint for negative values. > > > E.g. > > > > >> >> uLong to > > > > >> >> > > > > > > BigInteger. > > > > >> >> > > > > > > > > > > > > > > > So, we can't use primitive Java > > type > > > > for > > > > >> >> Long > > > > >> >> > > here. > > > > >> >> > > > > > > > However, > > > > >> >> > > > > > > > > it > > > > >> >> > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > still > > > > >> >> > > > > > > > > > > > > > > > possible to store uLong in 8 > bytes, > > > but > > > > >> >> have a > > > > >> >> > > > > special > > > > >> >> > > > > > > > > > comparator > > > > >> >> > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > > > > unsigned types to avoid unwanted > > > > >> >> > deserialization. > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > WDYT? > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 2:04 PM > > Pavel > > > > >> >> Tupitsyn > > > > >> >> > < > > > > >> >> > > > > > > > > > > > ptupit...@apache.org > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > Agree, let's get rid of "long, > > > short, > > > > >> >> byte" > > > > >> >> > in > > > > >> >> > > > the > > > > >> >> > > > > > > > protocol > > > > >> >> > > > > > > > > > > > > > definition. > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > We can use Rust style, which is > > > > concise > > > > >> >> and > > > > >> >> > > > > > > unambiguous: > > > > >> >> > > > > > > > > > > > > > > > > i8, u8, i16, u16, etc > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 1:58 PM > > > Igor > > > > >> >> Sapego < > > > > >> >> > > > > > > > > > > isap...@apache.org> > > > > >> >> > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > Pavel, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > I totally support that. Also, > > if > > > we > > > > >> are > > > > >> >> > > aiming > > > > >> >> > > > > for > > > > >> >> > > > > > > > > > > > > > > > > > stronger > platform-independance, > > > > >> >> > > > > > > > > > > > > > > > > > in our schemas we may want to > > > > support > > > > >> >> > > > > bit-notation > > > > >> >> > > > > > > > > (int32, > > > > >> >> > > > > > > > > > > > > uint64)? > > > > >> >> > > > > > > > > > > > > > > For > > > > >> >> > > > > > > > > > > > > > > > > > example > > > > >> >> > > > > > > > > > > > > > > > > > "long" can mean a different > > type > > > on > > > > >> >> > different > > > > >> >> > > > > > > platforms > > > > >> >> > > > > > > > > and > > > > >> >> > > > > > > > > > > > it's > > > > >> >> > > > > > > > > > > > > > easy > > > > >> >> > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > confuse > > > > >> >> > > > > > > > > > > > > > > > > > them (happens often when > using > > > ODBC > > > > >> for > > > > >> >> > > > example). > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > Best Regards, > > > > >> >> > > > > > > > > > > > > > > > > > Igor > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 1:34 > PM > > > > Pavel > > > > >> >> > > Tupitsyn > > > > >> >> > > > < > > > > >> >> > > > > > > > > > > > > > ptupit...@apache.org > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > Igniters, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > I think we should support > > > > unsigned > > > > >> >> data > > > > >> >> > > > types: > > > > >> >> > > > > > > > > > > > > > > > > > > uByte, uShort, uInt, uLong > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > Java does not have them, > but > > > many > > > > >> >> other > > > > >> >> > > > > languages > > > > >> >> > > > > > > do, > > > > >> >> > > > > > > > > > > > > > > > > > > and with the growing number > > of > > > > thin > > > > >> >> > clients > > > > >> >> > > > > this > > > > >> >> > > > > > is > > > > >> >> > > > > > > > > > > > important. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > For example, in current > > > > Ignite.NET > > > > >> >> > > > > implementation > > > > >> >> > > > > > > we > > > > >> >> > > > > > > > > > store > > > > >> >> > > > > > > > > > > > > > unsigned > > > > >> >> > > > > > > > > > > > > > > > > > values > > > > >> >> > > > > > > > > > > > > > > > > > > as signed internally, > > > > >> >> > > > > > > > > > > > > > > > > > > but this is a huge pain > when > > it > > > > >> comes > > > > >> >> to > > > > >> >> > > > > > metadata, > > > > >> >> > > > > > > > > binary > > > > >> >> > > > > > > > > > > > > > objects, > > > > >> >> > > > > > > > > > > > > > > > etc. > > > > >> >> > > > > > > > > > > > > > > > > > > (it is easy to deserialize > > int > > > as > > > > >> uint > > > > >> >> > when > > > > >> >> > > > you > > > > >> >> > > > > > > have > > > > >> >> > > > > > > > a > > > > >> >> > > > > > > > > > > class, > > > > >> >> > > > > > > > > > > > > but > > > > >> >> > > > > > > > > > > > > > > not > > > > >> >> > > > > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > > BinaryObject.GetField) > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > Any objections? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at > 12:28 > > > PM > > > > >> >> Andrey > > > > >> >> > > > > > Mashenkov < > > > > >> >> > > > > > > > > > > > > > > > > > > andrey.mashen...@gmail.com > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > Denis, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > Good point. Both > > serializers > > > > use > > > > >> >> > > reflection > > > > >> >> > > > > > API. > > > > >> >> > > > > > > > > > > > > > > > > > > > However, we will allow > > users > > > to > > > > >> >> > configure > > > > >> >> > > > > > static > > > > >> >> > > > > > > > > schema > > > > >> >> > > > > > > > > > > > along > > > > >> >> > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > > 'strict' > > > > >> >> > > > > > > > > > > > > > > > > > > > schema mode, we still > need > > to > > > > >> >> validate > > > > >> >> > > user > > > > >> >> > > > > > > classes > > > > >> >> > > > > > > > > on > > > > >> >> > > > > > > > > > > > client > > > > >> >> > > > > > > > > > > > > > > nodes > > > > >> >> > > > > > > > > > > > > > > > > > > against > > > > >> >> > > > > > > > > > > > > > > > > > > > the latest schema in the > > grid > > > > >> and > > > > >> >> > > > reflection > > > > >> >> > > > > > API > > > > >> >> > > > > > > > is > > > > >> >> > > > > > > > > > the > > > > >> >> > > > > > > > > > > > only > > > > >> >> > > > > > > > > > > > > > way > > > > >> >> > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > do > > > > >> >> > > > > > > > > > > > > > > > > > > it. > > > > >> >> > > > > > > > > > > > > > > > > > > > One can find a few > articles > > > on > > > > >> the > > > > >> >> > > internet > > > > >> >> > > > > on > > > > >> >> > > > > > > how > > > > >> >> > > > > > > > to > > > > >> >> > > > > > > > > > > > enable > > > > >> >> > > > > > > > > > > > > > > > > reflection > > > > >> >> > > > > > > > > > > > > > > > > > > in > > > > >> >> > > > > > > > > > > > > > > > > > > > GraalVM. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > I'll create a task for > > > > supporting > > > > >> >> > > GraalVM, > > > > >> >> > > > > and > > > > >> >> > > > > > > > maybe > > > > >> >> > > > > > > > > > > > someone > > > > >> >> > > > > > > > > > > > > > who > > > > >> >> > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > familiar with GraalVM > will > > > > >> suggest a > > > > >> >> > > > solution > > > > >> >> > > > > > or > > > > >> >> > > > > > > a > > > > >> >> > > > > > > > > > proper > > > > >> >> > > > > > > > > > > > > > > > workaround. > > > > >> >> > > > > > > > > > > > > > > > > > Or > > > > >> >> > > > > > > > > > > > > > > > > > > > I'll do it a bit later. > > > > >> >> > > > > > > > > > > > > > > > > > > > If no workaround is > found, > > we > > > > >> could > > > > >> >> > allow > > > > >> >> > > > > users > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > > write > > > > >> >> > > > > > > > > > > > it's > > > > >> >> > > > > > > > > > > > > > own > > > > >> >> > > > > > > > > > > > > > > > > > > > serializer, but I don't > > think > > > > it > > > > >> is > > > > >> >> a > > > > >> >> > > good > > > > >> >> > > > > idea > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > > expose > > > > >> >> > > > > > > > > > > > any > > > > >> >> > > > > > > > > > > > > > > > > internal > > > > >> >> > > > > > > > > > > > > > > > > > > > classes to the public. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at > > 2:55 > > > AM > > > > >> >> Denis > > > > >> >> > > > Magda < > > > > >> >> > > > > > > > > > > > > dma...@apache.org > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > Andrey, thanks for the > > > > update, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > Does any of the > > serializers > > > > >> take > > > > >> >> into > > > > >> >> > > > > > > > consideration > > > > >> >> > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > native-image-generation > > > > >> feature of > > > > >> >> > > > GraalVM? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> https://www.graalvm.org/reference-manual/native-image/ > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > With the current binary > > > > >> >> marshaller, > > > > >> >> > we > > > > >> >> > > > > can't > > > > >> >> > > > > > > even > > > > >> >> > > > > > > > > > > > generate > > > > >> >> > > > > > > > > > > > > a > > > > >> >> > > > > > > > > > > > > > > > native > > > > >> >> > > > > > > > > > > > > > > > > > > image > > > > >> >> > > > > > > > > > > > > > > > > > > > > for the code using our > > thin > > > > >> client > > > > >> >> > > APIs. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > - > > > > >> >> > > > > > > > > > > > > > > > > > > > > Denis > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > On Mon, Nov 23, 2020 at > > > 4:39 > > > > AM > > > > >> >> > Andrey > > > > >> >> > > > > > > Mashenkov > > > > >> >> > > > > > > > < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > andrey.mashen...@gmail.com > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Hi Igniters, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > I'd like to continue > > > > >> discussion > > > > >> >> of > > > > >> >> > > > IEP-54 > > > > >> >> > > > > > > > > > > (Schema-first > > > > >> >> > > > > > > > > > > > > > > > > approach). > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Hope everyone who is > > > > >> interested > > > > >> >> > had a > > > > >> >> > > > > > chance > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > get > > > > >> >> > > > > > > > > > > > > > familiar > > > > >> >> > > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > proposal [1]. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Please, do not > hesitate > > > to > > > > >> ask > > > > >> >> > > > questions > > > > >> >> > > > > > and > > > > >> >> > > > > > > > > share > > > > >> >> > > > > > > > > > > your > > > > >> >> > > > > > > > > > > > > > > ideas. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > I've prepared a > > prototype > > > > of > > > > >> >> > > serializer > > > > >> >> > > > > [2] > > > > >> >> > > > > > > for > > > > >> >> > > > > > > > > the > > > > >> >> > > > > > > > > > > > data > > > > >> >> > > > > > > > > > > > > > > layout > > > > >> >> > > > > > > > > > > > > > > > > > > > described > > > > >> >> > > > > > > > > > > > > > > > > > > > > > in the proposal. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > In prototy, I > compared > > 2 > > > > >> >> approaches > > > > >> >> > > to > > > > >> >> > > > > > > > > > (de)serialize > > > > >> >> > > > > > > > > > > > > > objects, > > > > >> >> > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > first > > > > >> >> > > > > > > > > > > > > > > > > > > > > one > > > > >> >> > > > > > > > > > > > > > > > > > > > > > uses java > > > reflection/unsafe > > > > >> API > > > > >> >> and > > > > >> >> > > > > similar > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > one > > > > >> >> > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > already > > > > >> >> > > > > > > > > > > > > > > > use > > > > >> >> > > > > > > > > > > > > > > > > > in > > > > >> >> > > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > and the second one > > > > generates > > > > >> >> > > serializer > > > > >> >> > > > > for > > > > >> >> > > > > > > > > > > particular > > > > >> >> > > > > > > > > > > > > user > > > > >> >> > > > > > > > > > > > > > > > class > > > > >> >> > > > > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > uses > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Janino library for > > > > >> compilation. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Second one shows > better > > > > >> results > > > > >> >> in > > > > >> >> > > > > > > benchmarks. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > I think we can go > with > > it > > > > as > > > > >> >> > default > > > > >> >> > > > > > > serializer > > > > >> >> > > > > > > > > and > > > > >> >> > > > > > > > > > > > have > > > > >> >> > > > > > > > > > > > > > > > > > > > reflection-based > > > > >> >> > > > > > > > > > > > > > > > > > > > > > implementation as a > > > > fallback > > > > >> if > > > > >> >> > > someone > > > > >> >> > > > > > will > > > > >> >> > > > > > > > have > > > > >> >> > > > > > > > > > > > issues > > > > >> >> > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > first > > > > >> >> > > > > > > > > > > > > > > > > > > > > > one. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > WDYT? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > There are a number of > > > tasks > > > > >> >> under > > > > >> >> > the > > > > >> >> > > > > > > umbrella > > > > >> >> > > > > > > > > > ticket > > > > >> >> > > > > > > > > > > > [3] > > > > >> >> > > > > > > > > > > > > > > > waiting > > > > >> >> > > > > > > > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > assignee. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > BTW, I'm going to > > create > > > > more > > > > >> >> > tickets > > > > >> >> > > > for > > > > >> >> > > > > > > > schema > > > > >> >> > > > > > > > > > > > manager > > > > >> >> > > > > > > > > > > > > > > modes > > > > >> >> > > > > > > > > > > > > > > > > > > > > > implementation, but > > would > > > > >> like > > > > >> >> to > > > > >> >> > > > clarify > > > > >> >> > > > > > > some > > > > >> >> > > > > > > > > > > details. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > I thought > schemaManager > > > on > > > > >> each > > > > >> >> > node > > > > >> >> > > > > should > > > > >> >> > > > > > > > held: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > 1. Local mapping of > > > > "schema > > > > >> >> > > version" > > > > >> >> > > > > <--> > > > > >> >> > > > > > > > > > validated > > > > >> >> > > > > > > > > > > > > local > > > > >> >> > > > > > > > > > > > > > > > > > key/value > > > > >> >> > > > > > > > > > > > > > > > > > > > > > classes pair. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > 2. Cluster-wide > > schema > > > > >> changes > > > > >> >> > > > history. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > On the client side. > > > Before > > > > >> any > > > > >> >> > > > key-value > > > > >> >> > > > > > API > > > > >> >> > > > > > > > > > > operation > > > > >> >> > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > should > > > > >> >> > > > > > > > > > > > > > > > > > > > > validate a > > > > >> >> > > > > > > > > > > > > > > > > > > > > > schema for a given > > > > key-value > > > > >> >> pair. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > If there is no > > > > local-mapping > > > > >> >> exists > > > > >> >> > > > for a > > > > >> >> > > > > > > given > > > > >> >> > > > > > > > > > > > key-value > > > > >> >> > > > > > > > > > > > > > > pair > > > > >> >> > > > > > > > > > > > > > > > or > > > > >> >> > > > > > > > > > > > > > > > > > if > > > > >> >> > > > > > > > > > > > > > > > > > > a > > > > >> >> > > > > > > > > > > > > > > > > > > > > > cluster wide schema > > has a > > > > >> more > > > > >> >> > recent > > > > >> >> > > > > > version > > > > >> >> > > > > > > > > then > > > > >> >> > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > key-value > > > > >> >> > > > > > > > > > > > > > > > > > pair > > > > >> >> > > > > > > > > > > > > > > > > > > > > > should be validated > > > against > > > > >> the > > > > >> >> > > latest > > > > >> >> > > > > > > version > > > > >> >> > > > > > > > > and > > > > >> >> > > > > > > > > > > > local > > > > >> >> > > > > > > > > > > > > > > > mapping > > > > >> >> > > > > > > > > > > > > > > > > > > should > > > > >> >> > > > > > > > > > > > > > > > > > > > > be > > > > >> >> > > > > > > > > > > > > > > > > > > > > > updated/actualized. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > If an object doesn't > > fit > > > to > > > > >> the > > > > >> >> > > latest > > > > >> >> > > > > > schema > > > > >> >> > > > > > > > > then > > > > >> >> > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > depends > > > > >> >> > > > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > mode: either fail the > > > > >> operation > > > > >> >> > > > ('strict' > > > > >> >> > > > > > > mode) > > > > >> >> > > > > > > > > or > > > > >> >> > > > > > > > > > a > > > > >> >> > > > > > > > > > > > new > > > > >> >> > > > > > > > > > > > > > > > mapping > > > > >> >> > > > > > > > > > > > > > > > > > > should > > > > >> >> > > > > > > > > > > > > > > > > > > > > be > > > > >> >> > > > > > > > > > > > > > > > > > > > > > created and a new > > schema > > > > >> version > > > > >> >> > > should > > > > >> >> > > > > be > > > > >> >> > > > > > > > > > propagated > > > > >> >> > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > cluster. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > On the server side we > > > > usually > > > > >> >> have > > > > >> >> > no > > > > >> >> > > > > > > key-value > > > > >> >> > > > > > > > > > > classes > > > > >> >> > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > > > > operate > > > > >> >> > > > > > > > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > > > > > tuples. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > As schema change > > history > > > is > > > > >> >> > available > > > > >> >> > > > > and a > > > > >> >> > > > > > > > tuple > > > > >> >> > > > > > > > > > has > > > > >> >> > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > version, > > > > >> >> > > > > > > > > > > > > > > > > > > > > then > > > > >> >> > > > > > > > > > > > > > > > > > > > > > it is possible to > > upgrade > > > > any > > > > >> >> > > received > > > > >> >> > > > > > tuple > > > > >> >> > > > > > > to > > > > >> >> > > > > > > > > the > > > > >> >> > > > > > > > > > > > last > > > > >> >> > > > > > > > > > > > > > > > version > > > > >> >> > > > > > > > > > > > > > > > > > > > without > > > > >> >> > > > > > > > > > > > > > > > > > > > > > desialization. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Thus we could allow > > nodes > > > > to > > > > >> >> send > > > > >> >> > > > > key-value > > > > >> >> > > > > > > > pairs > > > > >> >> > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > previous > > > > >> >> > > > > > > > > > > > > > > > > > > versions > > > > >> >> > > > > > > > > > > > > > > > > > > > > (if > > > > >> >> > > > > > > > > > > > > > > > > > > > > > they didn't receive a > > > > schema > > > > >> >> update > > > > >> >> > > > yet) > > > > >> >> > > > > > > > without > > > > >> >> > > > > > > > > > > > > reverting > > > > >> >> > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > changes > > > > >> >> > > > > > > > > > > > > > > > > > > > > > made by a node with > > newer > > > > >> >> classes. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Alex, Val, Ivan did > you > > > > mean > > > > >> the > > > > >> >> > > same? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > [1] > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> > > > > > > > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach > > > > >> >> > > > > > > > > > > > > > > > > > > > > > [2] > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > >> > https://github.com/apache/ignite/tree/ignite-13618/modules/commons > > > > >> >> > > > > > > > > > > > > > > > > > > > > > [3] > > > > >> >> > > > > > > > > > > > > > > https://issues.apache.org/jira/browse/IGNITE-13616 > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > On Thu, Sep 17, 2020 > at > > > > 9:21 > > > > >> AM > > > > >> >> > Ivan > > > > >> >> > > > > > > Pavlukhin > > > > >> >> > > > > > > > < > > > > >> >> > > > > > > > > > > > > > > > > > vololo...@gmail.com> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > Folks, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > Please do not > ignore > > > > >> history. > > > > >> >> We > > > > >> >> > > had > > > > >> >> > > > a > > > > >> >> > > > > > > thread > > > > >> >> > > > > > > > > [1] > > > > >> >> > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > many > > > > >> >> > > > > > > > > > > > > > > > > > bright > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > ideas. We can > resume > > > it. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > [1] > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> > > > > > > > > > > http://apache-ignite-developers.2346864.n4.nabble.com/Applicability-of-term-cache-to-Apache-Ignite-td36541.html > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > 2020-09-10 0:08 > > > > GMT+03:00, > > > > >> >> Denis > > > > >> >> > > > Magda > > > > >> >> > > > > < > > > > >> >> > > > > > > > > > > > > > dma...@apache.org > > > > >> >> > > > > > > > > > > > > > > >: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > Val, makes sense, > > > > thanks > > > > >> for > > > > >> >> > > > > > explaining. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > Agree that we > need > > to > > > > >> have a > > > > >> >> > > > separate > > > > >> >> > > > > > > > > > discussion > > > > >> >> > > > > > > > > > > > > thread > > > > >> >> > > > > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > "table" > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > "cache" terms > > > > >> substitution. > > > > >> >> > I'll > > > > >> >> > > > > > > appreciate > > > > >> >> > > > > > > > > it > > > > >> >> > > > > > > > > > if > > > > >> >> > > > > > > > > > > > you > > > > >> >> > > > > > > > > > > > > > > start > > > > >> >> > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > thread > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > sharing pointers > to > > > any > > > > >> >> > relevant > > > > >> >> > > > IEPs > > > > >> >> > > > > > and > > > > >> >> > > > > > > > > > > reasoning > > > > >> >> > > > > > > > > > > > > > > behind > > > > >> >> > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > suggested > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > change. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > - > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > Denis > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > On Tue, Sep 8, > 2020 > > > at > > > > >> 6:01 > > > > >> >> PM > > > > >> >> > > > > Valentin > > > > >> >> > > > > > > > > > > Kulichenko > > > > >> >> > > > > > > > > > > > < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> valentin.kuliche...@gmail.com> > > > > >> >> > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> Hi Denis, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> I guess the > > wording > > > in > > > > >> the > > > > >> >> IEP > > > > >> >> > > is > > > > >> >> > > > a > > > > >> >> > > > > > > little > > > > >> >> > > > > > > > > bit > > > > >> >> > > > > > > > > > > > > > > confusing. > > > > >> >> > > > > > > > > > > > > > > > > All > > > > >> >> > > > > > > > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > > > > > > means > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> that you should > > not > > > > >> create > > > > >> >> > > nested > > > > >> >> > > > > > POJOs, > > > > >> >> > > > > > > > but > > > > >> >> > > > > > > > > > > > rather > > > > >> >> > > > > > > > > > > > > > > inline > > > > >> >> > > > > > > > > > > > > > > > > > > fields > > > > >> >> > > > > > > > > > > > > > > > > > > > > > into a > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> single POJO that > > is > > > > >> mapped > > > > >> >> to > > > > >> >> > a > > > > >> >> > > > > > > particular > > > > >> >> > > > > > > > > > > schema. > > > > >> >> > > > > > > > > > > > > In > > > > >> >> > > > > > > > > > > > > > > > other > > > > >> >> > > > > > > > > > > > > > > > > > > words, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > nested > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> POJOs are not > > > > supported. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> Alex, is this > > > correct? > > > > >> >> Please > > > > >> >> > > let > > > > >> >> > > > me > > > > >> >> > > > > > > know > > > > >> >> > > > > > > > if > > > > >> >> > > > > > > > > > I'm > > > > >> >> > > > > > > > > > > > > > missing > > > > >> >> > > > > > > > > > > > > > > > > > > > something. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> As for the > "cache" > > > > >> term, I > > > > >> >> > agree > > > > >> >> > > > > that > > > > >> >> > > > > > it > > > > >> >> > > > > > > > is > > > > >> >> > > > > > > > > > > > > outdated, > > > > >> >> > > > > > > > > > > > > > > but > > > > >> >> > > > > > > > > > > > > > > > > I'm > > > > >> >> > > > > > > > > > > > > > > > > > > not > > > > >> >> > > > > > > > > > > > > > > > > > > > > sure > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> what we can > > replace > > > it > > > > >> >> with. > > > > >> >> > > > "Table" > > > > >> >> > > > > > is > > > > >> >> > > > > > > > > > tightly > > > > >> >> > > > > > > > > > > > > > > associated > > > > >> >> > > > > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > > > SQL, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > but > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> SQL is optional > in > > > our > > > > >> >> case. > > > > >> >> > Do > > > > >> >> > > > you > > > > >> >> > > > > > want > > > > >> >> > > > > > > > to > > > > >> >> > > > > > > > > > > > create a > > > > >> >> > > > > > > > > > > > > > > > > separate > > > > >> >> > > > > > > > > > > > > > > > > > > > > > discussion > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> about this? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> -Val > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> On Tue, Sep 8, > > 2020 > > > at > > > > >> >> 4:37 PM > > > > >> >> > > > Denis > > > > >> >> > > > > > > > Magda < > > > > >> >> > > > > > > > > > > > > > > > > dma...@apache.org > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Val, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> I've checked > the > > > IEP > > > > >> again > > > > >> >> > and > > > > >> >> > > > > have a > > > > >> >> > > > > > > few > > > > >> >> > > > > > > > > > > > > questions. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Arbitrary > nested > > > > >> objects > > > > >> >> and > > > > >> >> > > > > > > collections > > > > >> >> > > > > > > > > are > > > > >> >> > > > > > > > > > > not > > > > >> >> > > > > > > > > > > > > > > allowed > > > > >> >> > > > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > > > > > column > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> values. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Nested POJOs > > > should > > > > >> >> either > > > > >> >> > be > > > > >> >> > > > > > inlined > > > > >> >> > > > > > > > > into > > > > >> >> > > > > > > > > > > > > schema, > > > > >> >> > > > > > > > > > > > > > or > > > > >> >> > > > > > > > > > > > > > > > > > stored > > > > >> >> > > > > > > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > > > > > > > BLOBs > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Could you > > provide a > > > > DDL > > > > >> >> code > > > > >> >> > > > > snippet > > > > >> >> > > > > > > > > showing > > > > >> >> > > > > > > > > > > how > > > > >> >> > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > inlining > > > > >> >> > > > > > > > > > > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > > > > > > > > > POJOs > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> supposed to > work? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Also, we keep > > using > > > > the > > > > >> >> terms > > > > >> >> > > > > "cache" > > > > >> >> > > > > > > and > > > > >> >> > > > > > > > > > > "table" > > > > >> >> > > > > > > > > > > > > > > > > throughout > > > > >> >> > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > IEP. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > Is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> it > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> the right time > to > > > > >> discuss > > > > >> >> an > > > > >> >> > > > > > alternate > > > > >> >> > > > > > > > name > > > > >> >> > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > would > > > > >> >> > > > > > > > > > > > > > > > > > replace > > > > >> >> > > > > > > > > > > > > > > > > > > > > those > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> too? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Personally, the > > > > "table" > > > > >> >> > should > > > > >> >> > > > stay > > > > >> >> > > > > > and > > > > >> >> > > > > > > > the > > > > >> >> > > > > > > > > > > > "cache" > > > > >> >> > > > > > > > > > > > > > > > should > > > > >> >> > > > > > > > > > > > > > > > > go > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> considering > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> that SQL is one > > of > > > > the > > > > >> >> > primary > > > > >> >> > > > APIs > > > > >> >> > > > > > in > > > > >> >> > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > > > DDL > > > > >> >> > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > supported > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> out-of-the-box. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> - > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Denis > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> On Mon, Sep 7, > > 2020 > > > > at > > > > >> >> 12:26 > > > > >> >> > PM > > > > >> >> > > > > > > Valentin > > > > >> >> > > > > > > > > > > > > Kulichenko < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > valentin.kuliche...@gmail.com> > > > > >> >> > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ivan, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > I see your > > > point. I > > > > >> >> agree > > > > >> >> > > that > > > > >> >> > > > > with > > > > >> >> > > > > > > the > > > > >> >> > > > > > > > > > > > automatic > > > > >> >> > > > > > > > > > > > > > > > updates > > > > >> >> > > > > > > > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > > > > > step > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > into > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > schema-last > > > > >> territory. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Actually, if > we > > > > >> support > > > > >> >> > > > automatic > > > > >> >> > > > > > > > > > evolution, > > > > >> >> > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > can > > > > >> >> > > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > > well > > > > >> >> > > > > > > > > > > > > > > > > > > > > support > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > creating a > > cache > > > > >> without > > > > >> >> > > schema > > > > >> >> > > > > and > > > > >> >> > > > > > > > > > inferring > > > > >> >> > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > from > > > > >> >> > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > first > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > insert. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> In > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > other words, > we > > > can > > > > >> have > > > > >> >> > both > > > > >> >> > > > > > > > > > "schema-first" > > > > >> >> > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > "schema-last" > > > > >> >> > > > > > > > > > > > > > > > > > > > > > modes. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Alexey, what > do > > > you > > > > >> >> think? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > -Val > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > On Mon, Sep > 7, > > > 2020 > > > > >> at > > > > >> >> 5:59 > > > > >> >> > > AM > > > > >> >> > > > > > Alexey > > > > >> >> > > > > > > > > > > > Goncharuk < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> alexey.goncha...@gmail.com > > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > Ivan, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > Thank you, > I > > > got > > > > >> your > > > > >> >> > > concern > > > > >> >> > > > > > now. > > > > >> >> > > > > > > As > > > > >> >> > > > > > > > > it > > > > >> >> > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > mostly > > > > >> >> > > > > > > > > > > > > > > > > > > regarding > > > > >> >> > > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > terminology, > > I > > > am > > > > >> >> > > absolutely > > > > >> >> > > > > fine > > > > >> >> > > > > > > > with > > > > >> >> > > > > > > > > > > > changing > > > > >> >> > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > name > > > > >> >> > > > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > whatever > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> fits > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > the > approach > > > > best. > > > > >> >> > Dynamic > > > > >> >> > > or > > > > >> >> > > > > > > > evolving > > > > >> >> > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > sounds > > > > >> >> > > > > > > > > > > > > > > > > > > great. I > > > > >> >> > > > > > > > > > > > > > > > > > > > > > will > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> make > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > corresponding > > > > >> changes > > > > >> >> to > > > > >> >> > > the > > > > >> >> > > > > IEP > > > > >> >> > > > > > > once > > > > >> >> > > > > > > > > we > > > > >> >> > > > > > > > > > > > settle > > > > >> >> > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > name. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > пн, 7 сент. > > > 2020 > > > > >> г. в > > > > >> >> > > 11:33, > > > > >> >> > > > > Ivan > > > > >> >> > > > > > > > > > > Pavlukhin < > > > > >> >> > > > > > > > > > > > > > > > > > > > > vololo...@gmail.com > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Hi Val, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Thank you > > for > > > > >> your > > > > >> >> > > answer! > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > My > > > > understanding > > > > >> is > > > > >> >> a > > > > >> >> > > > little > > > > >> >> > > > > > bit > > > > >> >> > > > > > > > > > > different. > > > > >> >> > > > > > > > > > > > > > Yes, > > > > >> >> > > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > evolution > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > definitely > > > > >> should be > > > > >> >> > > > > possible. > > > > >> >> > > > > > > But > > > > >> >> > > > > > > > I > > > > >> >> > > > > > > > > > see > > > > >> >> > > > > > > > > > > a > > > > >> >> > > > > > > > > > > > > main > > > > >> >> > > > > > > > > > > > > > > > > > > difference > > > > >> >> > > > > > > > > > > > > > > > > > > > in > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > "how > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > schema is > > > > >> updated". > > > > >> >> I > > > > >> >> > > > treat a > > > > >> >> > > > > > > > common > > > > >> >> > > > > > > > > > SQL > > > > >> >> > > > > > > > > > > > > > approach > > > > >> >> > > > > > > > > > > > > > > > > > > > > schema-first. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and data > > > > >> >> manipulation > > > > >> >> > > > > > operations > > > > >> >> > > > > > > > are > > > > >> >> > > > > > > > > > > > clearly > > > > >> >> > > > > > > > > > > > > > > > > separated > > > > >> >> > > > > > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> enables > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > interesting > > > > >> >> > capabilities, > > > > >> >> > > > > e.g. > > > > >> >> > > > > > > > > > preventing > > > > >> >> > > > > > > > > > > > > > > untended > > > > >> >> > > > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > changes > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > by > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > mistaken > > data > > > > >> >> > operations, > > > > >> >> > > > > > > > restricting > > > > >> >> > > > > > > > > > > user > > > > >> >> > > > > > > > > > > > > > > > > permissions > > > > >> >> > > > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > change > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > schema. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > Schema-first > > > > >> means > > > > >> >> > that > > > > >> >> > > > > > schema > > > > >> >> > > > > > > > > exists > > > > >> >> > > > > > > > > > > in > > > > >> >> > > > > > > > > > > > > > > advance > > > > >> >> > > > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > all > > > > >> >> > > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> stored > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > data > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > is > > compliant > > > > with > > > > >> >> it - > > > > >> >> > > > that's > > > > >> >> > > > > > > > exactly > > > > >> >> > > > > > > > > > > what > > > > >> >> > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > proposed. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > A > > schema-last > > > > >> >> approach > > > > >> >> > > > > > mentioned > > > > >> >> > > > > > > in > > > > >> >> > > > > > > > > [1] > > > > >> >> > > > > > > > > > > > also > > > > >> >> > > > > > > > > > > > > > > > assumes > > > > >> >> > > > > > > > > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > exists, > but > > > it > > > > is > > > > >> >> > > inferred > > > > >> >> > > > > from > > > > >> >> > > > > > > > data. > > > > >> >> > > > > > > > > > Is > > > > >> >> > > > > > > > > > > > not > > > > >> >> > > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > more > > > > >> >> > > > > > > > > > > > > > > > > > > > similar > > > > >> >> > > > > > > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > proposing > > > > >> approach? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > And I > would > > > > like > > > > >> to > > > > >> >> > say, > > > > >> >> > > > that > > > > >> >> > > > > > my > > > > >> >> > > > > > > > main > > > > >> >> > > > > > > > > > > > concern > > > > >> >> > > > > > > > > > > > > > so > > > > >> >> > > > > > > > > > > > > > > > far > > > > >> >> > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > mostly > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > about > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > terminology. > > > > And > > > > >> I > > > > >> >> > > suppose > > > > >> >> > > > if > > > > >> >> > > > > > it > > > > >> >> > > > > > > > > > confuses > > > > >> >> > > > > > > > > > > > me > > > > >> >> > > > > > > > > > > > > > then > > > > >> >> > > > > > > > > > > > > > > > > > others > > > > >> >> > > > > > > > > > > > > > > > > > > > > might > > > > >> >> > > > > > > > > > > > > > > > > > > > > > be > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > confused > as > > > > >> well. My > > > > >> >> > > > feeling > > > > >> >> > > > > is > > > > >> >> > > > > > > > > closer > > > > >> >> > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > "dynamic > > > > >> >> > > > > > > > > > > > > > > > or > > > > >> >> > > > > > > > > > > > > > > > > > > > liquid > > > > >> >> > > > > > > > > > > > > > > > > > > > > or > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > may > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> be > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > evolving > > > > schema". > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > [1] > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > > >> > > > > https://people.cs.umass.edu/~yanlei/courses/CS691LL-f06/papers/SH05.pdf > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > 2020-09-07 > > > 0:47 > > > > >> >> > > GMT+03:00, > > > > >> >> > > > > > > Valentin > > > > >> >> > > > > > > > > > > > > Kulichenko > > > > >> >> > > > > > > > > > > > > > < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > valentin.kuliche...@gmail.com > > > > >> >> > > > > > >: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > Hi > Ivan, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > I don't > > see > > > > an > > > > >> >> issue > > > > >> >> > > with > > > > >> >> > > > > > that. > > > > >> >> > > > > > > > > > > > > Schema-first > > > > >> >> > > > > > > > > > > > > > > > means > > > > >> >> > > > > > > > > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > > > > > > > > > schema > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> exists > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > in > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > advance > > and > > > > all > > > > >> >> the > > > > >> >> > > > stored > > > > >> >> > > > > > data > > > > >> >> > > > > > > > is > > > > >> >> > > > > > > > > > > > > compliant > > > > >> >> > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > > > - > > > > >> >> > > > > > > > > > > > > > > > > > > > > that's > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> exactly > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > what > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > is > > > proposed. > > > > >> There > > > > >> >> > are > > > > >> >> > > no > > > > >> >> > > > > > > > > > restrictions > > > > >> >> > > > > > > > > > > > > > > > prohibiting > > > > >> >> > > > > > > > > > > > > > > > > > > > changes > > > > >> >> > > > > > > > > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > schema. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > -Val > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > On Sat, > > Sep > > > > 5, > > > > >> >> 2020 > > > > >> >> > at > > > > >> >> > > > 9:52 > > > > >> >> > > > > > PM > > > > >> >> > > > > > > > Ivan > > > > >> >> > > > > > > > > > > > > > Pavlukhin < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > vololo...@gmail.com> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Alexey, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> I am a > > > > little > > > > >> bit > > > > >> >> > > > confused > > > > >> >> > > > > > > with > > > > >> >> > > > > > > > > > > > > terminology. > > > > >> >> > > > > > > > > > > > > > > My > > > > >> >> > > > > > > > > > > > > > > > > > > > > > understanding > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > conforms > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> to a > > > survey > > > > >> [1] > > > > >> >> (see > > > > >> >> > > > part > > > > >> >> > > > > X > > > > >> >> > > > > > > Semi > > > > >> >> > > > > > > > > > > > > Structured > > > > >> >> > > > > > > > > > > > > > > > Data). > > > > >> >> > > > > > > > > > > > > > > > > > Can > > > > >> >> > > > > > > > > > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> really > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > treat > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> a > > "dynamic > > > > >> >> schema" > > > > >> >> > > > > approach > > > > >> >> > > > > > > as a > > > > >> >> > > > > > > > > > kind > > > > >> >> > > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > > > > > > "schema-first"? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> [1] > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > > >> > > > > https://people.cs.umass.edu/~yanlei/courses/CS691LL-f06/papers/SH05.pdf > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > 2020-09-02 > > > > >> 1:53 > > > > >> >> > > > GMT+03:00, > > > > >> >> > > > > > > Denis > > > > >> >> > > > > > > > > > > Magda < > > > > >> >> > > > > > > > > > > > > > > > > > > > dma...@apache.org > > > > >> >> > > > > > > > > > > > > > > > > > > > > >: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > However, > > > > >> could > > > > >> >> > you > > > > >> >> > > > > please > > > > >> >> > > > > > > > > > elaborate > > > > >> >> > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > relation > > > > >> >> > > > > > > > > > > > > > > > > > > > > > between > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > ORM? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Is > > > there > > > > a > > > > >> use > > > > >> >> > case > > > > >> >> > > > for > > > > >> >> > > > > > > > > Hibernate > > > > >> >> > > > > > > > > > > > > running > > > > >> >> > > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > > top > > > > >> >> > > > > > > > > > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> (I > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > haven't > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > seen > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> one > > so > > > > >> far)? > > > > >> >> If > > > > >> >> > so, > > > > >> >> > > > > what > > > > >> >> > > > > > is > > > > >> >> > > > > > > > > > missing > > > > >> >> > > > > > > > > > > > > > exactly > > > > >> >> > > > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> side to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > support > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > this? > > > In > > > > my > > > > >> >> > > > > > understanding, > > > > >> >> > > > > > > > all > > > > >> >> > > > > > > > > > you > > > > >> >> > > > > > > > > > > > need > > > > >> >> > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > SQL > > > > >> >> > > > > > > > > > > > > > > > > > API > > > > >> >> > > > > > > > > > > > > > > > > > > > > which > > > > >> >> > > > > > > > > > > > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > already > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> have. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Am > I > > > > >> missing > > > > >> >> > > > something? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Good > > > > point, > > > > >> >> yes, > > > > >> >> > if > > > > >> >> > > > all > > > > >> >> > > > > > the > > > > >> >> > > > > > > > ORM > > > > >> >> > > > > > > > > > > > > > integrations > > > > >> >> > > > > > > > > > > > > > > > use > > > > >> >> > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > SQL > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> APIs > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > internally, > > > > >> >> then > > > > >> >> > > they > > > > >> >> > > > > can > > > > >> >> > > > > > > > easily > > > > >> >> > > > > > > > > > > > > translate > > > > >> >> > > > > > > > > > > > > > > an > > > > >> >> > > > > > > > > > > > > > > > > > Entity > > > > >> >> > > > > > > > > > > > > > > > > > > > > > object > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> into > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > an > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> INSERT/UPDATE > > > > >> >> > > > statement > > > > >> >> > > > > > that > > > > >> >> > > > > > > > > lists > > > > >> >> > > > > > > > > > > all > > > > >> >> > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > object's > > > > >> >> > > > > > > > > > > > > > > > > > > > > > fields. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Luckily, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > our > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > Spring > > > > Data > > > > >> >> > > > integration > > > > >> >> > > > > is > > > > >> >> > > > > > > > > already > > > > >> >> > > > > > > > > > > > based > > > > >> >> > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > SQL > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > APIs > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > needs > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > to > be > > > > >> improved > > > > >> >> > once > > > > >> >> > > > the > > > > >> >> > > > > > > > > > schema-first > > > > >> >> > > > > > > > > > > > > > > approach > > > > >> >> > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > supported. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> That > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > would > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > solve > > a > > > > ton > > > > >> of > > > > >> >> > > > usability > > > > >> >> > > > > > > > issues. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > I > > would > > > > >> revise > > > > >> >> the > > > > >> >> > > > > > Hibernate > > > > >> >> > > > > > > > > > > > integration > > > > >> >> > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > well > > > > >> >> > > > > > > > > > > > > > > > > > > > during > > > > >> >> > > > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > 3.0 > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> dev > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > phase. > > > > Can't > > > > >> >> say > > > > >> >> > if > > > > >> >> > > > it's > > > > >> >> > > > > > > used > > > > >> >> > > > > > > > a > > > > >> >> > > > > > > > > > lot > > > > >> >> > > > > > > > > > > > but > > > > >> >> > > > > > > > > > > > > > > Spring > > > > >> >> > > > > > > > > > > > > > > > > > Data > > > > >> >> > > > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > getting > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > traction > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> for > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > sure. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > @Michael > > > > >> >> Pollind, > > > > >> >> > > I'll > > > > >> >> > > > > > loop > > > > >> >> > > > > > > > you > > > > >> >> > > > > > > > > in > > > > >> >> > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > long > > > > >> >> > > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > > > you've > > > > >> >> > > > > > > > > > > > > > > > > > > > > > started > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > working > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > on > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > Ignite > > > > >> support > > > > >> >> for > > > > >> >> > > > > > Micornaut > > > > >> >> > > > > > > > > Data > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > >> >> > > https://micronaut-projects.github.io/micronaut-data/latest/guide/> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > came > > > > across > > > > >> >> some > > > > >> >> > > > > > challenges. > > > > >> >> > > > > > > > > Just > > > > >> >> > > > > > > > > > > > watch > > > > >> >> > > > > > > > > > > > > > this > > > > >> >> > > > > > > > > > > > > > > > > > > > discussion. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > That's > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > what > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > coming > > > in > > > > >> >> Ignite > > > > >> >> > > 3.0. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > - > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > Denis > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > On > > Mon, > > > > Aug > > > > >> 31, > > > > >> >> > 2020 > > > > >> >> > > > at > > > > >> >> > > > > > 5:11 > > > > >> >> > > > > > > > PM > > > > >> >> > > > > > > > > > > > Valentin > > > > >> >> > > > > > > > > > > > > > > > > > Kulichenko > > > > >> >> > > > > > > > > > > > > > > > > > > < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > valentin.kuliche...@gmail.com > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Hi > > > Denis, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > Generally > > > > >> >> > > speaking, I > > > > >> >> > > > > > > believe > > > > >> >> > > > > > > > > > that > > > > >> >> > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > schema-first > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > approach > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > natively > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > addresses > > > > >> the > > > > >> >> > issue > > > > >> >> > > > if > > > > >> >> > > > > > > > > duplicate > > > > >> >> > > > > > > > > > > > fields > > > > >> >> > > > > > > > > > > > > > in > > > > >> >> > > > > > > > > > > > > > > > key > > > > >> >> > > > > > > > > > > > > > > > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > value > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> objects, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > because > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > schema > > > > >> will be > > > > >> >> > > > created > > > > >> >> > > > > > for > > > > >> >> > > > > > > a > > > > >> >> > > > > > > > > > cache, > > > > >> >> > > > > > > > > > > > not > > > > >> >> > > > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > > > > an > > > > >> >> > > > > > > > > > > > > > > > > > > > object, > > > > >> >> > > > > > > > > > > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > happens > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> now. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > Basically, > > > > >> the > > > > >> >> > > schema > > > > >> >> > > > > > will > > > > >> >> > > > > > > > > define > > > > >> >> > > > > > > > > > > > > whether > > > > >> >> > > > > > > > > > > > > > > > there > > > > >> >> > > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > a > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > primary > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> key > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > or > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > not, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> and > > > which > > > > >> >> fields > > > > >> >> > > are > > > > >> >> > > > > > > included > > > > >> >> > > > > > > > > in > > > > >> >> > > > > > > > > > > case > > > > >> >> > > > > > > > > > > > > > there > > > > >> >> > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > one. > > > > >> >> > > > > > > > > > > > > > > > > > > > Any > > > > >> >> > > > > > > > > > > > > > > > > > > > > > API > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> that > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > we > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> would > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > have > > > must > > > > >> be > > > > >> >> > > > compliant > > > > >> >> > > > > > with > > > > >> >> > > > > > > > > this, > > > > >> >> > > > > > > > > > > so > > > > >> >> > > > > > > > > > > > it > > > > >> >> > > > > > > > > > > > > > > > becomes > > > > >> >> > > > > > > > > > > > > > > > > > > > fairly > > > > >> >> > > > > > > > > > > > > > > > > > > > > > easy > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > work > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > with > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > data > > as > > > > >> with a > > > > >> >> > set > > > > >> >> > > of > > > > >> >> > > > > > > > records, > > > > >> >> > > > > > > > > > > rather > > > > >> >> > > > > > > > > > > > > > than > > > > >> >> > > > > > > > > > > > > > > > > > > key-value > > > > >> >> > > > > > > > > > > > > > > > > > > > > > pairs. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > However, > > > > >> could > > > > >> >> > you > > > > >> >> > > > > please > > > > >> >> > > > > > > > > > elaborate > > > > >> >> > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > relation > > > > >> >> > > > > > > > > > > > > > > > > > > > > > between > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > ORM? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Is > > > there > > > > a > > > > >> use > > > > >> >> > case > > > > >> >> > > > for > > > > >> >> > > > > > > > > Hibernate > > > > >> >> > > > > > > > > > > > > running > > > > >> >> > > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > > top > > > > >> >> > > > > > > > > > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> (I > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > haven't > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > seen > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> one > > so > > > > >> far)? > > > > >> >> If > > > > >> >> > so, > > > > >> >> > > > > what > > > > >> >> > > > > > is > > > > >> >> > > > > > > > > > missing > > > > >> >> > > > > > > > > > > > > > exactly > > > > >> >> > > > > > > > > > > > > > > > on > > > > >> >> > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> side to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > support > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > this? > > > In > > > > my > > > > >> >> > > > > > understanding, > > > > >> >> > > > > > > > all > > > > >> >> > > > > > > > > > you > > > > >> >> > > > > > > > > > > > need > > > > >> >> > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > SQL > > > > >> >> > > > > > > > > > > > > > > > > > API > > > > >> >> > > > > > > > > > > > > > > > > > > > > which > > > > >> >> > > > > > > > > > > > > > > > > > > > > > we > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > already > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> have. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Am > I > > > > >> missing > > > > >> >> > > > something? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > -Val > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> On > > Mon, > > > > Aug > > > > >> >> 31, > > > > >> >> > > 2020 > > > > >> >> > > > at > > > > >> >> > > > > > > 2:08 > > > > >> >> > > > > > > > PM > > > > >> >> > > > > > > > > > > Denis > > > > >> >> > > > > > > > > > > > > > > Magda < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > dma...@apache.org> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > Val, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > I > > > would > > > > >> >> propose > > > > >> >> > > > > adding > > > > >> >> > > > > > > > > another > > > > >> >> > > > > > > > > > > > point > > > > >> >> > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > motivations > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > list > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > which > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > related > > > > >> to > > > > >> >> the > > > > >> >> > > ORM > > > > >> >> > > > > > > > frameworks > > > > >> >> > > > > > > > > > > such > > > > >> >> > > > > > > > > > > > as > > > > >> >> > > > > > > > > > > > > > > > Spring > > > > >> >> > > > > > > > > > > > > > > > > > > Data, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Hibernate, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > Micronaut > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> and > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > many > > > > >> others. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> Presently, > > > > >> >> the > > > > >> >> > > > > storage > > > > >> >> > > > > > > > engine > > > > >> >> > > > > > > > > > > > > requires > > > > >> >> > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > > > > > distinguish > > > > >> >> > > > > > > > > > > > > > > > > > > > > > key > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > objects > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > from > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > value > > > > >> ones > > > > >> >> that > > > > >> >> > > > > > > complicate > > > > >> >> > > > > > > > > the > > > > >> >> > > > > > > > > > > > usage > > > > >> >> > > > > > > > > > > > > of > > > > >> >> > > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > with > > > > >> >> > > > > > > > > > > > > > > > > > > > > > those > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> ORM > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> frameworks > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> (especially > > > > >> >> if > > > > >> >> > a > > > > >> >> > > > key > > > > >> >> > > > > > > object > > > > >> >> > > > > > > > > > > > comprises > > > > >> >> > > > > > > > > > > > > > > > several > > > > >> >> > > > > > > > > > > > > > > > > > > > > fields). > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > More > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> on > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > this > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> can > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> be > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > found > > > > >> here: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> > > > > > > > > > > http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Key-and-Value-fields-with-same-name-and-SQL-DML-td47557.html > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > It > > > will > > > > >> be > > > > >> >> nice > > > > >> >> > > if > > > > >> >> > > > > the > > > > >> >> > > > > > > new > > > > >> >> > > > > > > > > > > > > schema-first > > > > >> >> > > > > > > > > > > > > > > > > > approach > > > > >> >> > > > > > > > > > > > > > > > > > > > > allows > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > us > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > work > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> with > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > a > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > single > > > > >> >> entity > > > > >> >> > > > object > > > > >> >> > > > > > when > > > > >> >> > > > > > > > it > > > > >> >> > > > > > > > > > > comes > > > > >> >> > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > ORMs. > > > > >> >> > > > > > > > > > > > > > > > > > > > With > > > > >> >> > > > > > > > > > > > > > > > > > > > > no > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> need to > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > split > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > entity > > > > >> into > > > > >> >> a > > > > >> >> > key > > > > >> >> > > > and > > > > >> >> > > > > > > > value. > > > > >> >> > > > > > > > > > Just > > > > >> >> > > > > > > > > > > > > want > > > > >> >> > > > > > > > > > > > > > to > > > > >> >> > > > > > > > > > > > > > > > be > > > > >> >> > > > > > > > > > > > > > > > > > sure > > > > >> >> > > > > > > > > > > > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > 3.0 > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > has > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > all > > > the > > > > >> >> > essential > > > > >> >> > > > > > public > > > > >> >> > > > > > > > APIs > > > > >> >> > > > > > > > > > > that > > > > >> >> > > > > > > > > > > > > > would > > > > >> >> > > > > > > > > > > > > > > > > > support > > > > >> >> > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > single-entity > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > based > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > approach. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > What > > > do > > > > >> you > > > > >> >> > > think? > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > - > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > Denis > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > On > > > Fri, > > > > >> Aug > > > > >> >> 28, > > > > >> >> > > > 2020 > > > > >> >> > > > > at > > > > >> >> > > > > > > > 3:50 > > > > >> >> > > > > > > > > PM > > > > >> >> > > > > > > > > > > > > > Valentin > > > > >> >> > > > > > > > > > > > > > > > > > > > Kulichenko < > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > valentin.kuliche...@gmail.com> > > > > >> >> > > > > > > > > > > > > wrote: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> Igniters, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > One > > > > of > > > > >> the > > > > >> >> > big > > > > >> >> > > > > > changes > > > > >> >> > > > > > > > > > proposed > > > > >> >> > > > > > > > > > > > for > > > > >> >> > > > > > > > > > > > > > > > Ignite > > > > >> >> > > > > > > > > > > > > > > > > > 3.0 > > > > >> >> > > > > > > > > > > > > > > > > > > is > > > > >> >> > > > > > > > > > > > > > > > > > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > so-called > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> "schema-first > > > > >> >> > > > > > > approach". > > > > >> >> > > > > > > > To > > > > >> >> > > > > > > > > > add > > > > >> >> > > > > > > > > > > > > more > > > > >> >> > > > > > > > > > > > > > > > > clarity, > > > > >> >> > > > > > > > > > > > > > > > > > > > I've > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > started > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > writing > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > the > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > IEP > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > for > > > > >> this > > > > >> >> > > change: > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> > > > > > > > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > Please > > > > >> >> take a > > > > >> >> > > > look > > > > >> >> > > > > > and > > > > >> >> > > > > > > > let > > > > >> >> > > > > > > > > me > > > > >> >> > > > > > > > > > > > know > > > > >> >> > > > > > > > > > > > > if > > > > >> >> > > > > > > > > > > > > > > > there > > > > >> >> > > > > > > > > > > > > > > > > > are > > > > >> >> > > > > > > > > > > > > > > > > > > > any > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> immediate > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> thoughts, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> suggestions, > > > > >> >> > or > > > > >> >> > > > > > > > objections. > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > -Val > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> -- > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Best > > > > regards, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Ivan > > > > Pavlukhin > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > -- > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Best > > regards, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Ivan > > > Pavlukhin > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > Ivan Pavlukhin > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > > > > > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > > > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > -- > > > > >> >> > > > > > > > > > > Best regards, > > > > >> >> > > > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > > > >> >> > > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > -- > > > > >> >> > > > > > > > > Best regards, > > > > >> >> > > > > > > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > -- > > > > >> >> > > > > Живи с улыбкой! :D > > > > >> >> > > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > -- > > > > >> >> > > > Best regards, > > > > >> >> > > > Andrey V. Mashenkov > > > > >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> > > > > > >> > > > > > > > > > > > > > > > -- > > > > > Best regards, > > > > > Andrey V. Mashenkov > > > > > > > > > > > > > > > > > -- > > > > Best regards, > > > > Andrey V. Mashenkov > > > > > > > > > > > > > -- > > Best regards, > > Andrey V. Mashenkov > > > -- Best regards, Andrey V. Mashenkov