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

Reply via email to