Ignite-1.5 Release

classic Classic list List threaded Threaded
108 messages Options
123456
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

dsetrakyan
Would be nice to get an up to date picture. At this point this thread has
gotten unwieldy.

Yakov, would it be worthwhile start a new thread will all the tasks listed
again?

D.

On Mon, Nov 16, 2015 at 1:55 PM, Alexey Goncharuk <
[hidden email]> wrote:

> Igniters,
>
> I am finalizing my optimizations in tx cache (currently there are a couple
> of failing tests on CI), I am expecting these changes to be merged in
> ignite-1.5 branch tomorrow.
>
> 2015-11-16 19:23 GMT+03:00 Yakov Zhdanov <[hidden email]>:
>
> > Guys,
> >
> > Can everyone provide updates on ongoing issues status?
> >
> > Vlad, I will review Semaphore tomorrow (Russian time).
> >
> > Thanks!
> >
> > --Yakov
> >
> > 2015-11-14 15:38 GMT+03:00 Denis Magda <[hidden email]>:
> >
> > > Hi Vladislav,
> > >
> > > Most likely there is a minor issue in your test.
> > >
> > > I think Yakov would be able to run and check the test as a part of the
> > > ongoing review.
> > >
> > > Thanks,
> > >
> > > Denis
> > >
> > > On Friday, November 13, 2015, Vladisav Jelisavcic <[hidden email]
> >
> > > wrote:
> > >
> > > > Hi Denis,
> > > >
> > > > Thanks a lot, it looks like my test setup was wrong,
> > > > I added semaphore tests to
> > > GridCacheAbstractDataStructuresFailoverSelfTest
> > > > suite.
> > > > Now I have following problem:
> > > > when I run tests with TOP_CHANGE_THREAD_CNT = 3
> > > > tests fail when they reach stop() with the following exception:
> > > >
> > > > class org.apache.ignite.internal.IgniteInterruptedCheckedException:
> > Node
> > > is
> > > > stopping: 09c5e8b8-8998-468e-960d-223220354fd3
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.onKernalStop0(GridCachePartitionExchangeManager.java:382)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCacheSharedManagerAdapter.onKernalStop(GridCacheSharedManagerAdapter.java:113)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStop(GridCacheProcessor.java:946)
> > > > at
> > org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1823)
> > > > at
> org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1769)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2133)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2096)
> > > > at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:314)
> > > > at org.apache.ignite.Ignition.stop(Ignition.java:223)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:802)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:784)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest.access$500(GridCacheAbstractDataStructuresFailoverSelfTest.java:54)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest$5.apply(GridCacheAbstractDataStructuresFailoverSelfTest.java:459)
> > > >
> > > > When I run tests with TOP_CHANGE_THEAD_CNT = 1
> > > > everything is running ok;
> > > >
> > > >
> > > > @Yakov
> > > > I made a new commit to my IGNITE-638 branch,
> > > > can you please take a look?
> > > >
> > > >
> > > >
> > > > Best regards,
> > > > Vladisav
> > > >
> > > >
> > > >
> > > >
> > > > > On Wed, Nov 11, 2015 at 3:48 PM, Denis Magda <[hidden email]
> > > > <javascript:;>> wrote:
> > > > >
> > > > > > Hi Vladislav,
> > > > > >
> > > > > > Please see below..
> > > > > >
> > > > > >
> > > > > > On 11/11/2015 12:33 PM, Vladisav Jelisavcic wrote:
> > > > > >
> > > > > >> Yakov,
> > > > > >>
> > > > > >> sorry  for running a bit late.
> > > > > >>
> > > > > >> Vladislav, do you have any updates for
> > > > > >>> https://issues.apache.org/jira/browse/IGNITE-638? Or any
> > > questions?
> > > > > >>>
> > > > > >>> --Yakov
> > > > > >>>
> > > > > >> I have problems with some fail-over scenarios;
> > > > > >> It seems that if the two nodes are in the middle of acquiring or
> > > > > releasing
> > > > > >> the semaphore,
> > > > > >> and one of them fails, all nodes get:
> > > > > >>
> > > > > >>
> > [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
> > > > > >> <ignite-atomics-sys-cache> Failed to compare and set:
> > > > > >>
> > > >
> > o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
> > > > > >> class
> > > > > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > > > > >> Failed to acquire lock for keys (primary node left grid, retry
> > > > > transaction
> > > > > >> if possible) [keys=[UserKeyCacheObjectImpl
> > > > [val=GridCacheInternalKeyImpl
> > > > > >> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > > > > >> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > > > >> ...
> > > > > >> Caused by: class
> > > > > >>
> > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > > > > Failed
> > > > > >> to acquire lock for keys (primary node left grid, retry
> > transaction
> > > if
> > > > > >> possible) [keys=[UserKeyCacheObjectImpl
> > > [val=GridCacheInternalKeyImpl
> > > > > >> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > > > > >> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > > > >> at
> > > > > >>
> > > > > >>
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
> > > > > >> ... 10 more
> > > > > >>
> > > > > > You have to process this exception manually at your
> implementation
> > > > layer
> > > > > > since your data structure uses a transactional cache.
> > > > > > Below is a kind of template I used when it was required to
> process
> > > this
> > > > > > and some other exeptions. You can use it as-is.
> > > > > >
> > > > > > int retries = GridCacheAdapter.MAX_RETRIES;
> > > > > >
> > > > > > IgniteCheckedException err =null;
> > > > > >
> > > > > > for (int i =0; i < retries; i++) {
> > > > > >     try {
> > > > > >         //Your transactional code that may fail
> > > > > >     }
> > > > > >     catch (IgniteCheckedException e) {
> > > > > >         if (i == retries)
> > > > > >             throw e;
> > > > > >
> > > > > >         if (X.hasCause(e,
> ClusterTopologyCheckedException.class)) {
> > > > > >             ClusterTopologyCheckedException topErr =
> > > > > > e.getCause(ClusterTopologyCheckedException.class);
> > > > > >
> > > > > >             topErr.retryReadyFuture().get();
> > > > > >         }
> > > > > >         else if (X.hasCause(e,
> > > IgniteTxRollbackCheckedException.class))
> > > > > >             U.sleep(1);
> > > > > >         else throw e;
> > > > > >     }
> > > > > > }
> > > > > >
> > > > > >
> > > > > >
> > > > > >> I'm still trying to find out how to exactly reproduce this
> > behavior,
> > > > > >> I'll send you more details once I try few more things.
> > > > > >>
> > > > > > There is the test suite called
> > > > > > GridCacheAbstractDataStructuresFailoverSelfTest that checks
> Ignite
> > > > > atomics
> > > > > > and data structures with fail-over scenario.
> > > > > > The suite will let you reproduce ClusterTopologyCheckedException
> > > > easily.
> > > > > > Just add your tests there referring to the tests of other data
> > > > > structures.
> > > > > >
> > > > > > Presently I'm improving this test suite under my work on
> IGNITE-801
> > > and
> > > > > > IGNITE-803. If you finish your task earlier then I'll adopt your
> > > tests
> > > > > to a
> > > > > > new test approach.
> > > > > >
> > > > > >
> > > > > >> I am still using partitioned cache, does it make sense to use
> > > > replicated
> > > > > >> cache instead?
> > > > > >>
> > > > > >> Yeah, you should support this as well. Cache mode for the data
> > > > > structures
> > > > > > is changed using CollectionConfigurations while for atomics using
> > > > > > AtomicsConfiguration.
> > > > > >
> > > > > > --
> > > > > > Denis
> > > > > >
> > > > > >
> > > > > > Other than that, I'm done with everything else.
> > > > > >>
> > > > > >> Thanks,
> > > > > >> Vladisav
> > > > > >>
> > > > > >>
> > > > > >>
> > > > > >> On Tue, Nov 10, 2015 at 7:19 PM, Raul Kripalani <
> [hidden email]
> > > > <javascript:;>>
> > > > > wrote:
> > > > > >>
> > > > > >> Sorry I haven't made an appearance in this thread yet.
> > > > > >>>
> > > > > >>> 6. MQTT streamer
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-535
> > > > > >>>>
> > > > > >>> Yes, it was merged to master before the ignite-1.5 was created.
> > > > > >>>
> > > > > >>> I'd like to add:
> > > > > >>>
> > > > > >>> Camel Streamer =>
> > > https://issues.apache.org/jira/browse/IGNITE-1790
> > > > > >>> -- I'll merge this as soon as I finished with the OSGi tickets
> > with
> > > > > >>> demand.
> > > > > >>>
> > > > > >>> OSGi Manifests, Karaf features and possible ClassLoaderCodec
> SPI
> > > (or
> > > > > >>> whatever agreement we arrive to in mailing lists and Wiki)
> > > > > >>> -- https://issues.apache.org/jira/browse/IGNITE-1527
> > > > > >>> -- https://issues.apache.org/jira/browse/IGNITE-1877
> > > > > >>> -- I'm working actively on these two features.
> > > > > >>>
> > > > > >>> *Raúl Kripalani*
> > > > > >>> PMC & Committer @ Apache Ignite, Apache Camel | Integration,
> Big
> > > Data
> > > > > and
> > > > > >>> Messaging Engineer
> > > > > >>> http://about.me/raulkripalani |
> > > > > http://www.linkedin.com/in/raulkripalani
> > > > > >>> http://blog.raulkr.net | twitter: @raulvk
> > > > > >>>
> > > > > >>> On Mon, Nov 2, 2015 at 1:35 PM, Yakov Zhdanov <
> > [hidden email]
> > > > <javascript:;>>
> > > > > >>> wrote:
> > > > > >>>
> > > > > >>> Guys,
> > > > > >>>>
> > > > > >>>> I think we can start preparation to Ignite-1.5 release which
> > will
> > > > > >>>> include
> > > > > >>>> many interesting features:
> > > > > >>>>
> > > > > >>>> 1. Portable object API
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1486
> > > > > >>>>
> > > > > >>>> 2. Ignite.NET and Ignite C++
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1282
> > > > > >>>>
> > > > > >>>> 3. Optimistic serializable transactions
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1607
> > > > > >>>>
> > > > > >>>> 4. Distributed SQL joins - we will be able to query
> > non-collocated
> > > > > data
> > > > > >>>>
> > > > > >>> as
> > > > > >>>
> > > > > >>>> well
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1232
> > > > > >>>>
> > > > > >>>> 5. Enhanced Oracle and IBM JDK interoperability
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1526
> > > > > >>>>
> > > > > >>>> 6. MQTT streamer
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-535
> > > > > >>>>
> > > > > >>>> 7. Continuous query failover
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-426
> > > > > >>>>
> > > > > >>>> 8. Significant transactional cache performance optimizations
> - I
> > > > will
> > > > > >>>>
> > > > > >>> merge
> > > > > >>>
> > > > > >>>> these changes from 'ignite-1.4-slow-server-debug' today or
> > > tomorrow.
> > > > > >>>>
> > > > > >>>> 9. Many stability and fault-tolerance fixes.
> > > > > >>>>
> > > > > >>>> 10. I would also like to include distributed Semaphore.
> > Vladislav,
> > > > any
> > > > > >>>> chance you can finish with it this week?
> > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-
> > > > > >>>> <https://issues.apache.org/jira/browse/IGNITE-426>638
> > > > > >>>>
> > > > > >>>> Thanks to everyone involved! Guys, esp. assignees of mentioned
> > > > issues,
> > > > > >>>> please respond to this email and let us know when can we
> expect
> > > your
> > > > > >>>> changes being merged to master and release branch?
> > > > > >>>>
> > > > > >>>> Can someone create ignite-1.5 release branch?
> > > > > >>>>
> > > > > >>>> --Yakov
> > > > > >>>>
> > > > > >>>>
> > > > > >
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Valentin Kulichenko
Folks,

I made several enhancements in our direct marshalling protocol that will
reduce the amount of data transferred over the network. There are two main
changes:

   - Optimized encoding of integers and longs. Now small numbers (0-127)
   consume only one byte instead of four, greater number can consume 2, 3 or
   more bytes (as many as needed only).
   - Null objects are always written as one byte.

Additionally there are several fixes that should reduce the number of
created object during marshalling/unmarshalling.

I ran a simple test with tx puts and amount of bytes sent over the network
is around 1.5 times less than in current ignite-1.5.

Yakov, Alex, can you please review my changes in ignite-direct-marsh-opt
branch and check the performance?

-Val

On Mon, Nov 16, 2015 at 2:04 PM, Dmitriy Setrakyan <[hidden email]>
wrote:

> Would be nice to get an up to date picture. At this point this thread has
> gotten unwieldy.
>
> Yakov, would it be worthwhile start a new thread will all the tasks listed
> again?
>
> D.
>
> On Mon, Nov 16, 2015 at 1:55 PM, Alexey Goncharuk <
> [hidden email]> wrote:
>
> > Igniters,
> >
> > I am finalizing my optimizations in tx cache (currently there are a
> couple
> > of failing tests on CI), I am expecting these changes to be merged in
> > ignite-1.5 branch tomorrow.
> >
> > 2015-11-16 19:23 GMT+03:00 Yakov Zhdanov <[hidden email]>:
> >
> > > Guys,
> > >
> > > Can everyone provide updates on ongoing issues status?
> > >
> > > Vlad, I will review Semaphore tomorrow (Russian time).
> > >
> > > Thanks!
> > >
> > > --Yakov
> > >
> > > 2015-11-14 15:38 GMT+03:00 Denis Magda <[hidden email]>:
> > >
> > > > Hi Vladislav,
> > > >
> > > > Most likely there is a minor issue in your test.
> > > >
> > > > I think Yakov would be able to run and check the test as a part of
> the
> > > > ongoing review.
> > > >
> > > > Thanks,
> > > >
> > > > Denis
> > > >
> > > > On Friday, November 13, 2015, Vladisav Jelisavcic <
> [hidden email]
> > >
> > > > wrote:
> > > >
> > > > > Hi Denis,
> > > > >
> > > > > Thanks a lot, it looks like my test setup was wrong,
> > > > > I added semaphore tests to
> > > > GridCacheAbstractDataStructuresFailoverSelfTest
> > > > > suite.
> > > > > Now I have following problem:
> > > > > when I run tests with TOP_CHANGE_THREAD_CNT = 3
> > > > > tests fail when they reach stop() with the following exception:
> > > > >
> > > > > class org.apache.ignite.internal.IgniteInterruptedCheckedException:
> > > Node
> > > > is
> > > > > stopping: 09c5e8b8-8998-468e-960d-223220354fd3
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.onKernalStop0(GridCachePartitionExchangeManager.java:382)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCacheSharedManagerAdapter.onKernalStop(GridCacheSharedManagerAdapter.java:113)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStop(GridCacheProcessor.java:946)
> > > > > at
> > > org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:1823)
> > > > > at
> > org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:1769)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2133)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2096)
> > > > > at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:314)
> > > > > at org.apache.ignite.Ignition.stop(Ignition.java:223)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:802)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:784)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest.access$500(GridCacheAbstractDataStructuresFailoverSelfTest.java:54)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest$5.apply(GridCacheAbstractDataStructuresFailoverSelfTest.java:459)
> > > > >
> > > > > When I run tests with TOP_CHANGE_THEAD_CNT = 1
> > > > > everything is running ok;
> > > > >
> > > > >
> > > > > @Yakov
> > > > > I made a new commit to my IGNITE-638 branch,
> > > > > can you please take a look?
> > > > >
> > > > >
> > > > >
> > > > > Best regards,
> > > > > Vladisav
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > On Wed, Nov 11, 2015 at 3:48 PM, Denis Magda <
> [hidden email]
> > > > > <javascript:;>> wrote:
> > > > > >
> > > > > > > Hi Vladislav,
> > > > > > >
> > > > > > > Please see below..
> > > > > > >
> > > > > > >
> > > > > > > On 11/11/2015 12:33 PM, Vladisav Jelisavcic wrote:
> > > > > > >
> > > > > > >> Yakov,
> > > > > > >>
> > > > > > >> sorry  for running a bit late.
> > > > > > >>
> > > > > > >> Vladislav, do you have any updates for
> > > > > > >>> https://issues.apache.org/jira/browse/IGNITE-638? Or any
> > > > questions?
> > > > > > >>>
> > > > > > >>> --Yakov
> > > > > > >>>
> > > > > > >> I have problems with some fail-over scenarios;
> > > > > > >> It seems that if the two nodes are in the middle of acquiring
> or
> > > > > > releasing
> > > > > > >> the semaphore,
> > > > > > >> and one of them fails, all nodes get:
> > > > > > >>
> > > > > > >>
> > > [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
> > > > > > >> <ignite-atomics-sys-cache> Failed to compare and set:
> > > > > > >>
> > > > >
> > >
> o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
> > > > > > >> class
> > > > > >
> org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > > > > > >> Failed to acquire lock for keys (primary node left grid, retry
> > > > > > transaction
> > > > > > >> if possible) [keys=[UserKeyCacheObjectImpl
> > > > > [val=GridCacheInternalKeyImpl
> > > > > > >> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a],
> hasValBytes=true]],
> > > > > > >> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > > > > >> ...
> > > > > > >> Caused by: class
> > > > > > >>
> > > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > > > > > Failed
> > > > > > >> to acquire lock for keys (primary node left grid, retry
> > > transaction
> > > > if
> > > > > > >> possible) [keys=[UserKeyCacheObjectImpl
> > > > [val=GridCacheInternalKeyImpl
> > > > > > >> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a],
> hasValBytes=true]],
> > > > > > >> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > > > > >> at
> > > > > > >>
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
> > > > > > >> ... 10 more
> > > > > > >>
> > > > > > > You have to process this exception manually at your
> > implementation
> > > > > layer
> > > > > > > since your data structure uses a transactional cache.
> > > > > > > Below is a kind of template I used when it was required to
> > process
> > > > this
> > > > > > > and some other exeptions. You can use it as-is.
> > > > > > >
> > > > > > > int retries = GridCacheAdapter.MAX_RETRIES;
> > > > > > >
> > > > > > > IgniteCheckedException err =null;
> > > > > > >
> > > > > > > for (int i =0; i < retries; i++) {
> > > > > > >     try {
> > > > > > >         //Your transactional code that may fail
> > > > > > >     }
> > > > > > >     catch (IgniteCheckedException e) {
> > > > > > >         if (i == retries)
> > > > > > >             throw e;
> > > > > > >
> > > > > > >         if (X.hasCause(e,
> > ClusterTopologyCheckedException.class)) {
> > > > > > >             ClusterTopologyCheckedException topErr =
> > > > > > > e.getCause(ClusterTopologyCheckedException.class);
> > > > > > >
> > > > > > >             topErr.retryReadyFuture().get();
> > > > > > >         }
> > > > > > >         else if (X.hasCause(e,
> > > > IgniteTxRollbackCheckedException.class))
> > > > > > >             U.sleep(1);
> > > > > > >         else throw e;
> > > > > > >     }
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >> I'm still trying to find out how to exactly reproduce this
> > > behavior,
> > > > > > >> I'll send you more details once I try few more things.
> > > > > > >>
> > > > > > > There is the test suite called
> > > > > > > GridCacheAbstractDataStructuresFailoverSelfTest that checks
> > Ignite
> > > > > > atomics
> > > > > > > and data structures with fail-over scenario.
> > > > > > > The suite will let you reproduce
> ClusterTopologyCheckedException
> > > > > easily.
> > > > > > > Just add your tests there referring to the tests of other data
> > > > > > structures.
> > > > > > >
> > > > > > > Presently I'm improving this test suite under my work on
> > IGNITE-801
> > > > and
> > > > > > > IGNITE-803. If you finish your task earlier then I'll adopt
> your
> > > > tests
> > > > > > to a
> > > > > > > new test approach.
> > > > > > >
> > > > > > >
> > > > > > >> I am still using partitioned cache, does it make sense to use
> > > > > replicated
> > > > > > >> cache instead?
> > > > > > >>
> > > > > > >> Yeah, you should support this as well. Cache mode for the data
> > > > > > structures
> > > > > > > is changed using CollectionConfigurations while for atomics
> using
> > > > > > > AtomicsConfiguration.
> > > > > > >
> > > > > > > --
> > > > > > > Denis
> > > > > > >
> > > > > > >
> > > > > > > Other than that, I'm done with everything else.
> > > > > > >>
> > > > > > >> Thanks,
> > > > > > >> Vladisav
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > > >> On Tue, Nov 10, 2015 at 7:19 PM, Raul Kripalani <
> > [hidden email]
> > > > > <javascript:;>>
> > > > > > wrote:
> > > > > > >>
> > > > > > >> Sorry I haven't made an appearance in this thread yet.
> > > > > > >>>
> > > > > > >>> 6. MQTT streamer
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-535
> > > > > > >>>>
> > > > > > >>> Yes, it was merged to master before the ignite-1.5 was
> created.
> > > > > > >>>
> > > > > > >>> I'd like to add:
> > > > > > >>>
> > > > > > >>> Camel Streamer =>
> > > > https://issues.apache.org/jira/browse/IGNITE-1790
> > > > > > >>> -- I'll merge this as soon as I finished with the OSGi
> tickets
> > > with
> > > > > > >>> demand.
> > > > > > >>>
> > > > > > >>> OSGi Manifests, Karaf features and possible ClassLoaderCodec
> > SPI
> > > > (or
> > > > > > >>> whatever agreement we arrive to in mailing lists and Wiki)
> > > > > > >>> -- https://issues.apache.org/jira/browse/IGNITE-1527
> > > > > > >>> -- https://issues.apache.org/jira/browse/IGNITE-1877
> > > > > > >>> -- I'm working actively on these two features.
> > > > > > >>>
> > > > > > >>> *Raúl Kripalani*
> > > > > > >>> PMC & Committer @ Apache Ignite, Apache Camel | Integration,
> > Big
> > > > Data
> > > > > > and
> > > > > > >>> Messaging Engineer
> > > > > > >>> http://about.me/raulkripalani |
> > > > > > http://www.linkedin.com/in/raulkripalani
> > > > > > >>> http://blog.raulkr.net | twitter: @raulvk
> > > > > > >>>
> > > > > > >>> On Mon, Nov 2, 2015 at 1:35 PM, Yakov Zhdanov <
> > > [hidden email]
> > > > > <javascript:;>>
> > > > > > >>> wrote:
> > > > > > >>>
> > > > > > >>> Guys,
> > > > > > >>>>
> > > > > > >>>> I think we can start preparation to Ignite-1.5 release which
> > > will
> > > > > > >>>> include
> > > > > > >>>> many interesting features:
> > > > > > >>>>
> > > > > > >>>> 1. Portable object API
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1486
> > > > > > >>>>
> > > > > > >>>> 2. Ignite.NET and Ignite C++
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1282
> > > > > > >>>>
> > > > > > >>>> 3. Optimistic serializable transactions
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1607
> > > > > > >>>>
> > > > > > >>>> 4. Distributed SQL joins - we will be able to query
> > > non-collocated
> > > > > > data
> > > > > > >>>>
> > > > > > >>> as
> > > > > > >>>
> > > > > > >>>> well
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1232
> > > > > > >>>>
> > > > > > >>>> 5. Enhanced Oracle and IBM JDK interoperability
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-1526
> > > > > > >>>>
> > > > > > >>>> 6. MQTT streamer
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-535
> > > > > > >>>>
> > > > > > >>>> 7. Continuous query failover
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-426
> > > > > > >>>>
> > > > > > >>>> 8. Significant transactional cache performance optimizations
> > - I
> > > > > will
> > > > > > >>>>
> > > > > > >>> merge
> > > > > > >>>
> > > > > > >>>> these changes from 'ignite-1.4-slow-server-debug' today or
> > > > tomorrow.
> > > > > > >>>>
> > > > > > >>>> 9. Many stability and fault-tolerance fixes.
> > > > > > >>>>
> > > > > > >>>> 10. I would also like to include distributed Semaphore.
> > > Vladislav,
> > > > > any
> > > > > > >>>> chance you can finish with it this week?
> > > > > > >>>> https://issues.apache.org/jira/browse/IGNITE-
> > > > > > >>>> <https://issues.apache.org/jira/browse/IGNITE-426>638
> > > > > > >>>>
> > > > > > >>>> Thanks to everyone involved! Guys, esp. assignees of
> mentioned
> > > > > issues,
> > > > > > >>>> please respond to this email and let us know when can we
> > expect
> > > > your
> > > > > > >>>> changes being merged to master and release branch?
> > > > > > >>>>
> > > > > > >>>> Can someone create ignite-1.5 release branch?
> > > > > > >>>>
> > > > > > >>>> --Yakov
> > > > > > >>>>
> > > > > > >>>>
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

yzhdanov
In reply to this post by Vladisav Jelisavcic
Vladislav,

I started to review the latest changes and have couple of questions:

1. latest changes are here - https://github.com/apache/ignite/pull/120? Is
that correct?
2. org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.Sync#nodeMap
is accessed in both sync and unsync context. Are you sure this is fine.
3. As far as failing test - can you please isolate it into separate junit
or point out existing one?

--Yakov

2015-11-11 12:33 GMT+03:00 Vladisav Jelisavcic <[hidden email]>:

> Yakov,
>
> sorry  for running a bit late.
>
> > Vladislav, do you have any updates for
> > https://issues.apache.org/jira/browse/IGNITE-638? Or any questions?
> >
> > --Yakov
>
> I have problems with some fail-over scenarios;
> It seems that if the two nodes are in the middle of acquiring or releasing
> the semaphore,
> and one of them fails, all nodes get:
>
> [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
> <ignite-atomics-sys-cache> Failed to compare and set:
> o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
> class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> Failed to acquire lock for keys (primary node left grid, retry transaction
> if possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> ...
> Caused by: class
> org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: Failed
> to acquire lock for keys (primary node left grid, retry transaction if
> possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
> [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> at
>
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
> ... 10 more
>
>
> I'm still trying to find out how to exactly reproduce this behavior,
> I'll send you more details once I try few more things.
>
> I am still using partitioned cache, does it make sense to use replicated
> cache instead?
>
>
> Other than that, I'm done with everything else.
>
> Thanks,
> Vladisav
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Vladisav Jelisavcic
Hi Yakov,
1. Yes

2. if you mean that nodeMap is accessed in onNodeRemoved(UUID nodeID)
method of the GridCacheSemaphoreImpl class,
it shouldn't be a problem, but it can be changed easily not to do so;

3.
org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantTopologyChangeFailoverSafe()
org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantMultipleTopologyChangeFailoverSafe()

I think the problem is with the atomicity of the simulated grid failure;
once stopGrid() is called for a node, other threads on this same node start
throwing interrupted exceptions,
which are in turn not handled properly in the
GridCacheAbstractDataStructuresFailoverSelfTest;
Those exceptions shouldn't be dealt with inside the GridCacheSemaphoreImpl
itself.
In a realworld node failure scenario, all those threads would fail at the
same time
(none of them would influence the rest of the grid anymore);

I think fixing the issue Denis is working on can fix this (IGNITE-801 and
IGNITE-803)
Am i right? Does it makes sense?


Best regards,
Vladisav




On Tue, Nov 17, 2015 at 5:40 PM, Yakov Zhdanov <[hidden email]> wrote:

> Vladislav,
>
> I started to review the latest changes and have couple of questions:
>
> 1. latest changes are here - https://github.com/apache/ignite/pull/120? Is
> that correct?
> 2.
> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.Sync#nodeMap
> is accessed in both sync and unsync context. Are you sure this is fine.
> 3. As far as failing test - can you please isolate it into separate junit
> or point out existing one?
>
> --Yakov
>
> 2015-11-11 12:33 GMT+03:00 Vladisav Jelisavcic <[hidden email]>:
>
> > Yakov,
> >
> > sorry  for running a bit late.
> >
> > > Vladislav, do you have any updates for
> > > https://issues.apache.org/jira/browse/IGNITE-638? Or any questions?
> > >
> > > --Yakov
> >
> > I have problems with some fail-over scenarios;
> > It seems that if the two nodes are in the middle of acquiring or
> releasing
> > the semaphore,
> > and one of them fails, all nodes get:
> >
> > [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
> > <ignite-atomics-sys-cache> Failed to compare and set:
> > o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
> > class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > Failed to acquire lock for keys (primary node left grid, retry
> transaction
> > if possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
> > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > ...
> > Caused by: class
> > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> Failed
> > to acquire lock for keys (primary node left grid, retry transaction if
> > possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
> > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > at
> >
> >
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
> > ... 10 more
> >
> >
> > I'm still trying to find out how to exactly reproduce this behavior,
> > I'll send you more details once I try few more things.
> >
> > I am still using partitioned cache, does it make sense to use replicated
> > cache instead?
> >
> >
> > Other than that, I'm done with everything else.
> >
> > Thanks,
> > Vladisav
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Vladimir Ozerov
Folks,

I continue working on IGNITE-1917 - marshalling microoptimizations. I did a
bunch of things today which increased performance a bit, so that
unmarshalling with PortableMarshaller is now a bit faster than
OptimizedMarshaller when object has several fields, but still slower when
there are lots of small fields.

I'm going to apply the last easy optimization in the nearest time and then
will focus on merging all pending tickets to master. Once all important
things are merged, I'm going to spend some more efforts on performance
again.

On Tue, Nov 17, 2015 at 8:30 PM, Vladisav Jelisavcic <[hidden email]>
wrote:

> Hi Yakov,
> 1. Yes
>
> 2. if you mean that nodeMap is accessed in onNodeRemoved(UUID nodeID)
> method of the GridCacheSemaphoreImpl class,
> it shouldn't be a problem, but it can be changed easily not to do so;
>
> 3.
>
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantTopologyChangeFailoverSafe()
>
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantMultipleTopologyChangeFailoverSafe()
>
> I think the problem is with the atomicity of the simulated grid failure;
> once stopGrid() is called for a node, other threads on this same node start
> throwing interrupted exceptions,
> which are in turn not handled properly in the
> GridCacheAbstractDataStructuresFailoverSelfTest;
> Those exceptions shouldn't be dealt with inside the GridCacheSemaphoreImpl
> itself.
> In a realworld node failure scenario, all those threads would fail at the
> same time
> (none of them would influence the rest of the grid anymore);
>
> I think fixing the issue Denis is working on can fix this (IGNITE-801 and
> IGNITE-803)
> Am i right? Does it makes sense?
>
>
> Best regards,
> Vladisav
>
>
>
>
> On Tue, Nov 17, 2015 at 5:40 PM, Yakov Zhdanov <[hidden email]>
> wrote:
>
> > Vladislav,
> >
> > I started to review the latest changes and have couple of questions:
> >
> > 1. latest changes are here - https://github.com/apache/ignite/pull/120?
> Is
> > that correct?
> > 2.
> >
> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.Sync#nodeMap
> > is accessed in both sync and unsync context. Are you sure this is fine.
> > 3. As far as failing test - can you please isolate it into separate junit
> > or point out existing one?
> >
> > --Yakov
> >
> > 2015-11-11 12:33 GMT+03:00 Vladisav Jelisavcic <[hidden email]>:
> >
> > > Yakov,
> > >
> > > sorry  for running a bit late.
> > >
> > > > Vladislav, do you have any updates for
> > > > https://issues.apache.org/jira/browse/IGNITE-638? Or any questions?
> > > >
> > > > --Yakov
> > >
> > > I have problems with some fail-over scenarios;
> > > It seems that if the two nodes are in the middle of acquiring or
> > releasing
> > > the semaphore,
> > > and one of them fails, all nodes get:
> > >
> > > [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
> > > <ignite-atomics-sys-cache> Failed to compare and set:
> > >
> o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
> > > class
> org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > > Failed to acquire lock for keys (primary node left grid, retry
> > transaction
> > > if possible) [keys=[UserKeyCacheObjectImpl
> [val=GridCacheInternalKeyImpl
> > > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > ...
> > > Caused by: class
> > > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
> > Failed
> > > to acquire lock for keys (primary node left grid, retry transaction if
> > > possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
> > > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
> > > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
> > > at
> > >
> > >
> >
> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
> > > ... 10 more
> > >
> > >
> > > I'm still trying to find out how to exactly reproduce this behavior,
> > > I'll send you more details once I try few more things.
> > >
> > > I am still using partitioned cache, does it make sense to use
> replicated
> > > cache instead?
> > >
> > >
> > > Other than that, I'm done with everything else.
> > >
> > > Thanks,
> > > Vladisav
> > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Vladimir Ozerov
I meant "release branch", not "master".

On Tue, Nov 17, 2015 at 9:25 PM, Vladimir Ozerov <[hidden email]>
wrote:

> Folks,
>
> I continue working on IGNITE-1917 - marshalling microoptimizations. I did
> a bunch of things today which increased performance a bit, so that
> unmarshalling with PortableMarshaller is now a bit faster than
> OptimizedMarshaller when object has several fields, but still slower when
> there are lots of small fields.
>
> I'm going to apply the last easy optimization in the nearest time and then
> will focus on merging all pending tickets to master. Once all important
> things are merged, I'm going to spend some more efforts on performance
> again.
>
> On Tue, Nov 17, 2015 at 8:30 PM, Vladisav Jelisavcic <[hidden email]>
> wrote:
>
>> Hi Yakov,
>> 1. Yes
>>
>> 2. if you mean that nodeMap is accessed in onNodeRemoved(UUID nodeID)
>> method of the GridCacheSemaphoreImpl class,
>> it shouldn't be a problem, but it can be changed easily not to do so;
>>
>> 3.
>>
>> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantTopologyChangeFailoverSafe()
>>
>> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantMultipleTopologyChangeFailoverSafe()
>>
>> I think the problem is with the atomicity of the simulated grid failure;
>> once stopGrid() is called for a node, other threads on this same node
>> start
>> throwing interrupted exceptions,
>> which are in turn not handled properly in the
>> GridCacheAbstractDataStructuresFailoverSelfTest;
>> Those exceptions shouldn't be dealt with inside the GridCacheSemaphoreImpl
>> itself.
>> In a realworld node failure scenario, all those threads would fail at the
>> same time
>> (none of them would influence the rest of the grid anymore);
>>
>> I think fixing the issue Denis is working on can fix this (IGNITE-801 and
>> IGNITE-803)
>> Am i right? Does it makes sense?
>>
>>
>> Best regards,
>> Vladisav
>>
>>
>>
>>
>> On Tue, Nov 17, 2015 at 5:40 PM, Yakov Zhdanov <[hidden email]>
>> wrote:
>>
>> > Vladislav,
>> >
>> > I started to review the latest changes and have couple of questions:
>> >
>> > 1. latest changes are here - https://github.com/apache/ignite/pull/120?
>> Is
>> > that correct?
>> > 2.
>> >
>> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.Sync#nodeMap
>> > is accessed in both sync and unsync context. Are you sure this is fine.
>> > 3. As far as failing test - can you please isolate it into separate
>> junit
>> > or point out existing one?
>> >
>> > --Yakov
>> >
>> > 2015-11-11 12:33 GMT+03:00 Vladisav Jelisavcic <[hidden email]>:
>> >
>> > > Yakov,
>> > >
>> > > sorry  for running a bit late.
>> > >
>> > > > Vladislav, do you have any updates for
>> > > > https://issues.apache.org/jira/browse/IGNITE-638? Or any questions?
>> > > >
>> > > > --Yakov
>> > >
>> > > I have problems with some fail-over scenarios;
>> > > It seems that if the two nodes are in the middle of acquiring or
>> > releasing
>> > > the semaphore,
>> > > and one of them fails, all nodes get:
>> > >
>> > > [09:36:38,509][ERROR][ignite-#13%pub-null%][GridCacheSemaphoreImpl]
>> > > <ignite-atomics-sys-cache> Failed to compare and set:
>> > >
>> o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1@5528b728
>> > > class
>> org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
>> > > Failed to acquire lock for keys (primary node left grid, retry
>> > transaction
>> > > if possible) [keys=[UserKeyCacheObjectImpl
>> [val=GridCacheInternalKeyImpl
>> > > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
>> > > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
>> > > ...
>> > > Caused by: class
>> > > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException:
>> > Failed
>> > > to acquire lock for keys (primary node left grid, retry transaction if
>> > > possible) [keys=[UserKeyCacheObjectImpl [val=GridCacheInternalKeyImpl
>> > > [name=ac83b8cb-3052-49a6-9301-81b20b0ecf3a], hasValBytes=true]],
>> > > node=c321fcc4-5db5-4b03-9811-6a5587f2c253]
>> > > at
>> > >
>> > >
>> >
>> org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1199)
>> > > ... 10 more
>> > >
>> > >
>> > > I'm still trying to find out how to exactly reproduce this behavior,
>> > > I'll send you more details once I try few more things.
>> > >
>> > > I am still using partitioned cache, does it make sense to use
>> replicated
>> > > cache instead?
>> > >
>> > >
>> > > Other than that, I'm done with everything else.
>> > >
>> > > Thanks,
>> > > Vladisav
>> > >
>> > >
>> >
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

yzhdanov
In reply to this post by Vladisav Jelisavcic
1. Understood
2. Well, I understand that object gets deserialized on get from cache and
this most probably should not cause any issue. However, code does not look
healthy and someone may think that there is an issue - field is not
volatile, initialized in constructor, has sync setter, but is accessed
several times in code outside of sync. Can you please refactor this?
3. Yes, Denis is looking into this. And I think your issue will be fixed in
the scope of Denis one.

Vlad, can you please refactor [2] and I will pick it up and merge tomorrow.

Thank you for your interest and contribution!

--Yakov

2015-11-17 21:30 GMT+04:00 Vladisav Jelisavcic <[hidden email]>:

> Hi Yakov,
> 1. Yes
>
> 2. if you mean that nodeMap is accessed in onNodeRemoved(UUID nodeID)
> method of the GridCacheSemaphoreImpl class,
> it shouldn't be a problem, but it can be changed easily not to do so;
>
> 3.
>
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantTopologyChangeFailoverSafe()
>
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantMultipleTopologyChangeFailoverSafe()
>
> I think the problem is with the atomicity of the simulated grid failure;
> once stopGrid() is called for a node, other threads on this same node start
> throwing interrupted exceptions,
> which are in turn not handled properly in the
> GridCacheAbstractDataStructuresFailoverSelfTest;
> Those exceptions shouldn't be dealt with inside the GridCacheSemaphoreImpl
> itself.
> In a realworld node failure scenario, all those threads would fail at the
> same time
> (none of them would influence the rest of the grid anymore);
>
> I think fixing the issue Denis is working on can fix this (IGNITE-801 and
> IGNITE-803)
> Am i right? Does it makes sense?
>
>
> Best regards,
> Vladisav
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Roman Shtykh
In reply to this post by yzhdanov
11. Flume intergration
https://issues.apache.org/jira/browse/IGNITE-529


is done too. Thanks Anton for reviews!

Roman




On Monday, November 2, 2015 10:35 PM, Yakov Zhdanov <[hidden email]> wrote:



Guys,

I think we can start preparation to Ignite-1.5 release which will include
many interesting features:

1. Portable object API
https://issues.apache.org/jira/browse/IGNITE-1486

2. Ignite.NET and Ignite C++
https://issues.apache.org/jira/browse/IGNITE-1282

3. Optimistic serializable transactions
https://issues.apache.org/jira/browse/IGNITE-1607

4. Distributed SQL joins - we will be able to query non-collocated data as
well
https://issues.apache.org/jira/browse/IGNITE-1232

5. Enhanced Oracle and IBM JDK interoperability
https://issues.apache.org/jira/browse/IGNITE-1526

6. MQTT streamer
https://issues.apache.org/jira/browse/IGNITE-535

7. Continuous query failover
https://issues.apache.org/jira/browse/IGNITE-426

8. Significant transactional cache performance optimizations - I will merge
these changes from 'ignite-1.4-slow-server-debug' today or tomorrow.

9. Many stability and fault-tolerance fixes.

10. I would also like to include distributed Semaphore. Vladislav, any
chance you can finish with it this week?
https://issues.apache.org/jira/browse/IGNITE-
<https://issues.apache.org/jira/browse/IGNITE-426>638

Thanks to everyone involved! Guys, esp. assignees of mentioned issues,
please respond to this email and let us know when can we expect your
changes being merged to master and release branch?

Can someone create ignite-1.5 release branch?

--Yakov
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Valentin Kulichenko
Folks,

I'm currently working on finalizing optimizations in communication and
direct marshalling, as well as supporting backward compatibility. It turned
out that this requires some refactoring, so it will take one more day at
least. I hope to merge tomorrow.

On Tue, Nov 17, 2015 at 2:43 PM, Roman Shtykh <[hidden email]>
wrote:

> 11. Flume intergration
> https://issues.apache.org/jira/browse/IGNITE-529
>
>
> is done too. Thanks Anton for reviews!
>
> Roman
>
>
>
>
> On Monday, November 2, 2015 10:35 PM, Yakov Zhdanov <[hidden email]>
> wrote:
>
>
>
> Guys,
>
> I think we can start preparation to Ignite-1.5 release which will include
> many interesting features:
>
> 1. Portable object API
> https://issues.apache.org/jira/browse/IGNITE-1486
>
> 2. Ignite.NET and Ignite C++
> https://issues.apache.org/jira/browse/IGNITE-1282
>
> 3. Optimistic serializable transactions
> https://issues.apache.org/jira/browse/IGNITE-1607
>
> 4. Distributed SQL joins - we will be able to query non-collocated data as
> well
> https://issues.apache.org/jira/browse/IGNITE-1232
>
> 5. Enhanced Oracle and IBM JDK interoperability
> https://issues.apache.org/jira/browse/IGNITE-1526
>
> 6. MQTT streamer
> https://issues.apache.org/jira/browse/IGNITE-535
>
> 7. Continuous query failover
> https://issues.apache.org/jira/browse/IGNITE-426
>
> 8. Significant transactional cache performance optimizations - I will merge
> these changes from 'ignite-1.4-slow-server-debug' today or tomorrow.
>
> 9. Many stability and fault-tolerance fixes.
>
> 10. I would also like to include distributed Semaphore. Vladislav, any
> chance you can finish with it this week?
> https://issues.apache.org/jira/browse/IGNITE-
> <https://issues.apache.org/jira/browse/IGNITE-426>638
>
> Thanks to everyone involved! Guys, esp. assignees of mentioned issues,
> please respond to this email and let us know when can we expect your
> changes being merged to master and release branch?
>
> Can someone create ignite-1.5 release branch?
>
> --Yakov
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Denis Magda
In reply to this post by yzhdanov


On 11/17/2015 9:37 PM, Yakov Zhdanov wrote:
> 1. Understood
> 2. Well, I understand that object gets deserialized on get from cache and
> this most probably should not cause any issue. However, code does not look
> healthy and someone may think that there is an issue - field is not
> volatile, initialized in constructor, has sync setter, but is accessed
> several times in code outside of sync. Can you please refactor this?
> 3. Yes, Denis is looking into this. And I think your issue will be fixed in
> the scope of Denis one.
I'm afraid that my changes won't fix the issue in Vladislav's
implementation.
However, when my changes are merged we will be able to rework these
semaphore failover tests and fix any issue in the semaphore impl related
to failover. I can take care of this.

--
Denis

>
> Vlad, can you please refactor [2] and I will pick it up and merge tomorrow.
>
> Thank you for your interest and contribution!
>
> --Yakov
>
> 2015-11-17 21:30 GMT+04:00 Vladisav Jelisavcic <[hidden email]>:
>
>> Hi Yakov,
>> 1. Yes
>>
>> 2. if you mean that nodeMap is accessed in onNodeRemoved(UUID nodeID)
>> method of the GridCacheSemaphoreImpl class,
>> it shouldn't be a problem, but it can be changed easily not to do so;
>>
>> 3.
>>
>> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantTopologyChangeFailoverSafe()
>>
>> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest#testSemaphoreConstantMultipleTopologyChangeFailoverSafe()
>>
>> I think the problem is with the atomicity of the simulated grid failure;
>> once stopGrid() is called for a node, other threads on this same node start
>> throwing interrupted exceptions,
>> which are in turn not handled properly in the
>> GridCacheAbstractDataStructuresFailoverSelfTest;
>> Those exceptions shouldn't be dealt with inside the GridCacheSemaphoreImpl
>> itself.
>> In a realworld node failure scenario, all those threads would fail at the
>> same time
>> (none of them would influence the rest of the grid anymore);
>>
>> I think fixing the issue Denis is working on can fix this (IGNITE-801 and
>> IGNITE-803)
>> Am i right? Does it makes sense?
>>
>>
>> Best regards,
>> Vladisav
>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Semyon Boikov
In reply to this post by yzhdanov
Hi,

Yesterday I merged optimizations for tx update operations working single
key, got ~7% improvement in tx-put benchmark.

And today I finished to implement optimization for cache 'get' operation
with single key. Got another benchmark results improvements: ~10% with
atomic-put-get, ~5% with tx-put-get. Need to verify TC and hopefully will
merge these changes tomorrow.


Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Alexey Goncharuk
Hi folks,

I merged performance optimizations for tx mode which gave up to 5%
improvement for tx-put benchmark to ignite-1.5.

I also pushed finalizaing changes to Binary configuration in ignite-1945
branch and currently waiting for TC. If all is ok, will cooperate with
Vladimir Ozerov and merge changes tomorrow.

2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:

> Hi,
>
> Yesterday I merged optimizations for tx update operations working single
> key, got ~7% improvement in tx-put benchmark.
>
> And today I finished to implement optimization for cache 'get' operation
> with single key. Got another benchmark results improvements: ~10% with
> atomic-put-get, ~5% with tx-put-get. Need to verify TC and hopefully will
> merge these changes tomorrow.
>
> ​
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Vladimir Ozerov
Hi Alex,

Today I marged several big things into 1282 - reworked metadat and
compacted footers optimization. I have on big ticket left - IGNITE-1917 -
with marshalling microoptimizations. They should not conflict with anything
and I expect them to be finalized tomorrow. All optimizations are ready, I
just need to perform some cleanup and refactoring.

On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
[hidden email]> wrote:

> Hi folks,
>
> I merged performance optimizations for tx mode which gave up to 5%
> improvement for tx-put benchmark to ignite-1.5.
>
> I also pushed finalizaing changes to Binary configuration in ignite-1945
> branch and currently waiting for TC. If all is ok, will cooperate with
> Vladimir Ozerov and merge changes tomorrow.
>
> 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
>
> > Hi,
> >
> > Yesterday I merged optimizations for tx update operations working single
> > key, got ~7% improvement in tx-put benchmark.
> >
> > And today I finished to implement optimization for cache 'get' operation
> > with single key. Got another benchmark results improvements: ~10% with
> > atomic-put-get, ~5% with tx-put-get. Need to verify TC and hopefully will
> > merge these changes tomorrow.
> >
> > ​
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Raul Kripalani-2
I merged the Camel Streamer today and I hope to finish the first phase of
OSGi tomorrow.

I'll need someone to review the latter quickly if we want it merged for
1.5... No code changes in existing codebase. Just a new osgi module and
many POM changes mainly to generate the manifests.

Should be a quick task.

Regards,
Raúl.
On 18 Nov 2015 20:38, "Vladimir Ozerov" <[hidden email]> wrote:

> Hi Alex,
>
> Today I marged several big things into 1282 - reworked metadat and
> compacted footers optimization. I have on big ticket left - IGNITE-1917 -
> with marshalling microoptimizations. They should not conflict with anything
> and I expect them to be finalized tomorrow. All optimizations are ready, I
> just need to perform some cleanup and refactoring.
>
> On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
> [hidden email]> wrote:
>
> > Hi folks,
> >
> > I merged performance optimizations for tx mode which gave up to 5%
> > improvement for tx-put benchmark to ignite-1.5.
> >
> > I also pushed finalizaing changes to Binary configuration in ignite-1945
> > branch and currently waiting for TC. If all is ok, will cooperate with
> > Vladimir Ozerov and merge changes tomorrow.
> >
> > 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
> >
> > > Hi,
> > >
> > > Yesterday I merged optimizations for tx update operations working
> single
> > > key, got ~7% improvement in tx-put benchmark.
> > >
> > > And today I finished to implement optimization for cache 'get'
> operation
> > > with single key. Got another benchmark results improvements: ~10% with
> > > atomic-put-get, ~5% with tx-put-get. Need to verify TC and hopefully
> will
> > > merge these changes tomorrow.
> > >
> > > ​
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

dsetrakyan
On Wed, Nov 18, 2015 at 2:17 PM, Raul Kripalani <[hidden email]> wrote:

> I merged the Camel Streamer today and I hope to finish the first phase of
> OSGi tomorrow.
>
> I'll need someone to review the latter quickly if we want it merged for
> 1.5... No code changes in existing codebase. Just a new osgi module and
> many POM changes mainly to generate the manifests.
>

Raul, did you create a patch or a PR? I can’t find it anywhere.


>
> Should be a quick task.
>
> Regards,
> Raúl.
> On 18 Nov 2015 20:38, "Vladimir Ozerov" <[hidden email]> wrote:
>
> > Hi Alex,
> >
> > Today I marged several big things into 1282 - reworked metadat and
> > compacted footers optimization. I have on big ticket left - IGNITE-1917 -
> > with marshalling microoptimizations. They should not conflict with
> anything
> > and I expect them to be finalized tomorrow. All optimizations are ready,
> I
> > just need to perform some cleanup and refactoring.
> >
> > On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
> > [hidden email]> wrote:
> >
> > > Hi folks,
> > >
> > > I merged performance optimizations for tx mode which gave up to 5%
> > > improvement for tx-put benchmark to ignite-1.5.
> > >
> > > I also pushed finalizaing changes to Binary configuration in
> ignite-1945
> > > branch and currently waiting for TC. If all is ok, will cooperate with
> > > Vladimir Ozerov and merge changes tomorrow.
> > >
> > > 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
> > >
> > > > Hi,
> > > >
> > > > Yesterday I merged optimizations for tx update operations working
> > single
> > > > key, got ~7% improvement in tx-put benchmark.
> > > >
> > > > And today I finished to implement optimization for cache 'get'
> > operation
> > > > with single key. Got another benchmark results improvements: ~10%
> with
> > > > atomic-put-get, ~5% with tx-put-get. Need to verify TC and hopefully
> > will
> > > > merge these changes tomorrow.
> > > >
> > > > ​
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Romain Gilles-2
Hi Raul,
Could you please give the pull request or the branch or the ignite ticket
number?
I will be please to have a look to your pull request.

Thanks,

Romain

Le jeu. 19 nov. 2015 à 04:01, Dmitriy Setrakyan <[hidden email]> a
écrit :

> On Wed, Nov 18, 2015 at 2:17 PM, Raul Kripalani <[hidden email]> wrote:
>
> > I merged the Camel Streamer today and I hope to finish the first phase of
> > OSGi tomorrow.
> >
> > I'll need someone to review the latter quickly if we want it merged for
> > 1.5... No code changes in existing codebase. Just a new osgi module and
> > many POM changes mainly to generate the manifests.
> >
>
> Raul, did you create a patch or a PR? I can’t find it anywhere.
>
>
> >
> > Should be a quick task.
> >
> > Regards,
> > Raúl.
> > On 18 Nov 2015 20:38, "Vladimir Ozerov" <[hidden email]> wrote:
> >
> > > Hi Alex,
> > >
> > > Today I marged several big things into 1282 - reworked metadat and
> > > compacted footers optimization. I have on big ticket left -
> IGNITE-1917 -
> > > with marshalling microoptimizations. They should not conflict with
> > anything
> > > and I expect them to be finalized tomorrow. All optimizations are
> ready,
> > I
> > > just need to perform some cleanup and refactoring.
> > >
> > > On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
> > > [hidden email]> wrote:
> > >
> > > > Hi folks,
> > > >
> > > > I merged performance optimizations for tx mode which gave up to 5%
> > > > improvement for tx-put benchmark to ignite-1.5.
> > > >
> > > > I also pushed finalizaing changes to Binary configuration in
> > ignite-1945
> > > > branch and currently waiting for TC. If all is ok, will cooperate
> with
> > > > Vladimir Ozerov and merge changes tomorrow.
> > > >
> > > > 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
> > > >
> > > > > Hi,
> > > > >
> > > > > Yesterday I merged optimizations for tx update operations working
> > > single
> > > > > key, got ~7% improvement in tx-put benchmark.
> > > > >
> > > > > And today I finished to implement optimization for cache 'get'
> > > operation
> > > > > with single key. Got another benchmark results improvements: ~10%
> > with
> > > > > atomic-put-get, ~5% with tx-put-get. Need to verify TC and
> hopefully
> > > will
> > > > > merge these changes tomorrow.
> > > > >
> > > > > ​
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Raul Kripalani
In reply to this post by dsetrakyan
Branch ignite-1790 merged into ignite-1.5 with --squash. Like it was
requested previous on previous occasions.
On 19 Nov 2015 03:01, "Dmitriy Setrakyan" <[hidden email]> wrote:

> On Wed, Nov 18, 2015 at 2:17 PM, Raul Kripalani <[hidden email]> wrote:
>
> > I merged the Camel Streamer today and I hope to finish the first phase of
> > OSGi tomorrow.
> >
> > I'll need someone to review the latter quickly if we want it merged for
> > 1.5... No code changes in existing codebase. Just a new osgi module and
> > many POM changes mainly to generate the manifests.
> >
>
> Raul, did you create a patch or a PR? I can’t find it anywhere.
>
>
> >
> > Should be a quick task.
> >
> > Regards,
> > Raúl.
> > On 18 Nov 2015 20:38, "Vladimir Ozerov" <[hidden email]> wrote:
> >
> > > Hi Alex,
> > >
> > > Today I marged several big things into 1282 - reworked metadat and
> > > compacted footers optimization. I have on big ticket left -
> IGNITE-1917 -
> > > with marshalling microoptimizations. They should not conflict with
> > anything
> > > and I expect them to be finalized tomorrow. All optimizations are
> ready,
> > I
> > > just need to perform some cleanup and refactoring.
> > >
> > > On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
> > > [hidden email]> wrote:
> > >
> > > > Hi folks,
> > > >
> > > > I merged performance optimizations for tx mode which gave up to 5%
> > > > improvement for tx-put benchmark to ignite-1.5.
> > > >
> > > > I also pushed finalizaing changes to Binary configuration in
> > ignite-1945
> > > > branch and currently waiting for TC. If all is ok, will cooperate
> with
> > > > Vladimir Ozerov and merge changes tomorrow.
> > > >
> > > > 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
> > > >
> > > > > Hi,
> > > > >
> > > > > Yesterday I merged optimizations for tx update operations working
> > > single
> > > > > key, got ~7% improvement in tx-put benchmark.
> > > > >
> > > > > And today I finished to implement optimization for cache 'get'
> > > operation
> > > > > with single key. Got another benchmark results improvements: ~10%
> > with
> > > > > atomic-put-get, ~5% with tx-put-get. Need to verify TC and
> hopefully
> > > will
> > > > > merge these changes tomorrow.
> > > > >
> > > > > ​
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Raul Kripalani
In reply to this post by Romain Gilles-2
The code was already reviewed and merged with squash. IGNITE-1790.
On 19 Nov 2015 08:30, "Romain Gilles" <[hidden email]> wrote:

> Hi Raul,
> Could you please give the pull request or the branch or the ignite ticket
> number?
> I will be please to have a look to your pull request.
>
> Thanks,
>
> Romain
>
> Le jeu. 19 nov. 2015 à 04:01, Dmitriy Setrakyan <[hidden email]> a
> écrit :
>
> > On Wed, Nov 18, 2015 at 2:17 PM, Raul Kripalani <[hidden email]>
> wrote:
> >
> > > I merged the Camel Streamer today and I hope to finish the first phase
> of
> > > OSGi tomorrow.
> > >
> > > I'll need someone to review the latter quickly if we want it merged for
> > > 1.5... No code changes in existing codebase. Just a new osgi module and
> > > many POM changes mainly to generate the manifests.
> > >
> >
> > Raul, did you create a patch or a PR? I can’t find it anywhere.
> >
> >
> > >
> > > Should be a quick task.
> > >
> > > Regards,
> > > Raúl.
> > > On 18 Nov 2015 20:38, "Vladimir Ozerov" <[hidden email]> wrote:
> > >
> > > > Hi Alex,
> > > >
> > > > Today I marged several big things into 1282 - reworked metadat and
> > > > compacted footers optimization. I have on big ticket left -
> > IGNITE-1917 -
> > > > with marshalling microoptimizations. They should not conflict with
> > > anything
> > > > and I expect them to be finalized tomorrow. All optimizations are
> > ready,
> > > I
> > > > just need to perform some cleanup and refactoring.
> > > >
> > > > On Wed, Nov 18, 2015 at 7:22 PM, Alexey Goncharuk <
> > > > [hidden email]> wrote:
> > > >
> > > > > Hi folks,
> > > > >
> > > > > I merged performance optimizations for tx mode which gave up to 5%
> > > > > improvement for tx-put benchmark to ignite-1.5.
> > > > >
> > > > > I also pushed finalizaing changes to Binary configuration in
> > > ignite-1945
> > > > > branch and currently waiting for TC. If all is ok, will cooperate
> > with
> > > > > Vladimir Ozerov and merge changes tomorrow.
> > > > >
> > > > > 2015-11-18 17:58 GMT+03:00 Semyon Boikov <[hidden email]>:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > Yesterday I merged optimizations for tx update operations working
> > > > single
> > > > > > key, got ~7% improvement in tx-put benchmark.
> > > > > >
> > > > > > And today I finished to implement optimization for cache 'get'
> > > > operation
> > > > > > with single key. Got another benchmark results improvements: ~10%
> > > with
> > > > > > atomic-put-get, ~5% with tx-put-get. Need to verify TC and
> > hopefully
> > > > will
> > > > > > merge these changes tomorrow.
> > > > > >
> > > > > > ​
> > > > > >
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

yzhdanov
Hey guys!

We are getting closer to the release! Thanks to everyone making this closer!

Let's update status info.

My understanding is that the following major parts are still not merged.
Can everyone mentioned provide ticket number(s) and estimates on when the
functionality will be merged.

1. Data grid performance optimizations: single get/put - Semyon
2. Direct marshalling compactions: communication optimization - Valentin
3. Introduce new binary format - Alexey Goncharuk and Vladimir Ozerov
4. Data grid performance optimizations: SQL queries - Sergi and Semyon

Thanks!

--Yakov
Reply | Threaded
Open this post in threaded view
|

Re: Ignite-1.5 Release

Semyon Boikov
Just merged single get optimizations (improvements in the last benchmarks
run: ~10% for atomic-put-get, ~5% for tx-put-get).
123456