By the way, did we have a change to run some existing benchmarks
against proposed implementation?

пт, 11 окт. 2019 г. в 17:49, Alexey Goncharuk <alexey.goncha...@gmail.com>:
>
> Hello Mulugeta, Igniters.
>
> Thanks for your interest and efforts in integrating the persistent memory
> to Ignite. Here are my thoughts on the PR:
>
> First of all I was questioning whether we want to use the integration with
> the pmem library via JNI. Java 14 will have native support for NVME via
> native mapped byte buffers [1] since the corresponding tickets are already
> resolved [2],[3]. The suggested integration uses JNI calls quite often (if
> I read the PR right, there will be tens of JNI calls per a single
> operation), which may and most likely will undermine the benefits of using
> PM. On the other hand, there is a PoC/project [4] which successfully
> demonstrates how the new integration can be used to natively access
> persistent memory from Java. Additionally, new Unsafe have several
> performance issues - each put* methods has a map lookup, and CAS method
> uses a global lock. Removing these issues will change the PR and
> architecture dramatically.
>
> Other than performance and an extra library dependency, there are
> additional reasons to use custom implementation of PM persistence
> primitives:
>
>    - Ignite significantly benefits from having WAL as a single point of
>    data for both failure recovery and historical rebalance. As far as I can
>    guess, the suggested library also uses some sort of journaling in order to
>    support crash recovery. Since we do not want give up on the historical
>    rebalance, we would need to write an additional journal, which then raises
>    a question of how to transact between this journal.
>    - Ignite is supposed to work with large indexes, a I not aware how LLPL
>    handles them. Several researches [5],[6] show that since PM memory has
>    larger access latency than regular RAM, it is beneficial to buffer index
>    pages in regular memory and store leaf pages in PM. There is a generic
>    approach to convert in-memory indexes to PM ones [7], I think it makes
>    sense to investigate whether our existing indexes can be converted to PM.
>    - There is an active IEP which is targeted for a file-based rebalancing.
>    In the suggested implementation this optimization would not work. A better
>    integration should allow to take a snapshot of a partition and transfer it
>    to another node for fast rebalancing.
>
> Overall, I think we may take the following path:
>
>    - Target JEP352 APIs; for now keep using the whole region msync for flush
>    - Introduce PM-based isolated components to support WAL iterator and
>    transaction management. We can start with WAL, then implement a PM-based
>    index based on current research, then a tuple heap with free space
>    management. Each of the components may be developed and tested 
> independently
>    - Do Ignite internals refactoring to properly abstract storage layer
>    from transactions/communication. Currently, there is an abstraction leak in
>    the storage layer, which makes it aware of particular Ignite implementation
>    details (Binary Objects, partition eviction, etc)
>    - Once the storage is separated, we should be able to plug the new
>    components instead of the "classical" ones
>
> WDYT? I believe we should create a detailed IEP with concrete proposals on
> both PM structures design and Ignite internals changes before making any
> further code changes.
>
> [1] https://openjdk.java.net/jeps/352
> [2] https://bugs.openjdk.java.net/browse/JDK-8221397
> [3] https://bugs.openjdk.java.net/browse/JDK-8221696
> [4] https://github.com/jhalliday/mashona
> [5] https://www.usenix.org/system/files/conference/fast17/fast17-lee.pdf
> [6] http://www.vldb.org/pvldb/vol8/p786-chen.pdf
> [7] https://www.cs.utexas.edu/~vijay/papers/sosp19-recipe.pdf
> [8]
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-16%3A+Optimization+of+rebalancing
>
> вт, 8 окт. 2019 г. в 08:15, Alexey Goncharuk <alexey.goncha...@gmail.com>:
>
> > Igniters,
> >
> > I would like to resurrect this discussion and will review the change again
> > shortly. If anyone want to join the review - you are welcome!
> >
> > ср, 22 авг. 2018 г. в 18:49, Denis Magda <dma...@apache.org>:
> >
> >> Hi Dmitry,
> >>
> >> That's a BSD-3-Clause license if to believe this statement
> >> "SPDX-License-Identifier: BSD-3-Clause":
> >> https://github.com/pmem/llpl/blob/master/LICENSE
> >>
> >> This license can be used with ASF software:
> >> https://www.apache.org/legal/resolved.html#category-a
> >>
> >> --
> >> Denis
> >>
> >> On Wed, Aug 22, 2018 at 9:28 AM Dmitriy Pavlov <dpavlov....@gmail.com>
> >> wrote:
> >>
> >> > Hi Denis,
> >> >
> >> > Could you please double check if we can refer to any library licensed to
> >> > Intel. Can we develop code only version of this support (without
> >> shipping
> >> > it in release)?
> >> >
> >> > https://github.com/apache/ignite/pull/4381 is quite huge change,
> >> > including 128 files changed, patch review will require resources from
> >> > community members to review. I would like to be sure we can include this
> >> > patch from the legal point of view.
> >> >
> >> > Sincerely,
> >> > Dmitriy Pavlov
> >> >
> >> > пт, 3 авг. 2018 г. в 19:23, Dmitriy Pavlov <dpavlov....@gmail.com>:
> >> >
> >> >> Hi Mulugeta,
> >> >>
> >> >> I appologise, I've missed that license is already there. So I guess it
> >> is
> >> >> not standard open-source license, it is seems it is not listed in
> >> >> https://www.apache.org/legal/resolved.html#category-a
> >> >>
> >> >> So there can be legal concern related to including this lib as
> >> dependency
> >> >> into Apache product. It should not block review, we can later
> >> >> consult Secretary/Legal to find out how we can correctly include
> >> reference
> >> >> to lib.
> >> >>
> >> >> Sincerely,
> >> >> Dmitriy Pavlov
> >> >>
> >> >> чт, 2 авг. 2018 г. в 0:24, Mammo, Mulugeta <mulugeta.ma...@intel.com>:
> >> >>
> >> >>> Hi Dmitriy,
> >> >>>
> >> >>> Do you mean our LLPL library? It has a license, please look here:
> >> >>> https://github.com/pmem/llpl
> >> >>>
> >> >>> Regarding the changes made to Ignite, you may refer to the pull
> >> request
> >> >>> here: https://github.com/apache/ignite/pull/4381
> >> >>>
> >> >>> Thanks,
> >> >>> Mulugeta
> >> >>>
> >> >>> -----Original Message-----
> >> >>> From: Dmitriy Pavlov [mailto:dpavlov....@gmail.com]
> >> >>> Sent: Wednesday, August 1, 2018 10:49 AM
> >> >>> To: dev@ignite.apache.org
> >> >>> Subject: Re: Adding experimental support for Intel Optane DC
> >> Persistent
> >> >>> Memory
> >> >>>
> >> >>> Hi Mulugeta Mammo,
> >> >>>
> >> >>> I've just noticed that repository, what you refer is full fork of
> >> Ignite.
> >> >>> How can I see differences with original Ignite?
> >> >>>
> >> >>> One more thing, library which you're referencing seems to not contain
> >> >>> license, at least github can not parse it. Apache product has
> >> limitations
> >> >>> which libraries may be used (see
> >> >>> https://www.apache.org/legal/resolved.html#category-a and
> >> >>> https://www.apache.org/legal/resolved.html#category-b)
> >> >>>
> >> >>> Could you please comment if there is some legal risk?
> >> >>>
> >> >>> Sincerely,
> >> >>> Dmitriy Pavlov
> >> >>>
> >> >>> ср, 1 авг. 2018 г. в 20:43, Dmitriy Pavlov <dpavlov....@gmail.com>:
> >> >>>
> >> >>> > Hi,
> >> >>> >
> >> >>> > This link works for me
> >> >>> >
> >> >>> >
> >> https://cwiki.apache.org/confluence/display/IGNITE/IEP-26%3A+Adding+Ex
> >> >>> > perimental+Support+for+Intel+Optane+DC+Persistent+Memory
> >> >>> >
> >> >>> > Sincerely,
> >> >>> > Dmitriy Pavlov
> >> >>> >
> >> >>> > чт, 26 июл. 2018 г. в 15:31, Stanislav Lukyanov <
> >> >>> stanlukya...@gmail.com>:
> >> >>> >
> >> >>> >> Ah, ok, it’s just the ‘.’ at the end of the link. Removed it and
> >> it’s
> >> >>> >> fine.
> >> >>> >>
> >> >>> >> From: Stanislav Lukyanov
> >> >>> >> Sent: 26 июля 2018 г. 15:12
> >> >>> >> To: dev@ignite.apache.org
> >> >>> >> Subject: RE: Adding experimental support for Intel Optane DC
> >> >>> >> Persistent Memory
> >> >>> >>
> >> >>> >> Hi,
> >> >>> >>
> >> >>> >> The link you’ve shared gives me 404.
> >> >>> >> Perhaps you need to add a permission for everyone to access the
> >> page?
> >> >>> >>
> >> >>> >> Thanks,
> >> >>> >> Stan
> >> >>> >>
> >> >>> >> From: Mammo, Mulugeta
> >> >>> >> Sent: 26 июля 2018 г. 2:44
> >> >>> >> To: dev@ignite.apache.org
> >> >>> >> Subject: Adding experimental support for Intel Optane DC Persistent
> >> >>> >> Memory
> >> >>> >>
> >> >>> >> Hi,
> >> >>> >>
> >> >>> >> I have added a new proposal to support Intel Optane DC Persistent
> >> >>> >> Memory for Ignite here:
> >> >>> >>
> >> https://cwiki.apache.org/confluence/display/IGNITE/Adding+Experimenta
> >> >>> >> l+Support+for+Intel+Optane+DC+Persistent+Memory
> >> >>> >> .
> >> >>> >>
> >> >>> >> I'm looking forward to your feedback and collaboration on this.
> >> >>> >>
> >> >>> >> Thanks,
> >> >>> >> Mulugeta
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>>
> >> >>
> >>
> >



-- 
Best regards,
Ivan Pavlukhin

Reply via email to