Re: [NOTICE] TeamCity is down

2015-09-24 Thread Konstantin Boudnik
On Wed, Sep 23, 2015 at 10:20PM, Yakov Zhdanov wrote:
> Cos, is it ok that none of the domain names mentioned in ticket responds?
> Even those with "dig" output.

Looks like our CI master is down as well ;( Will look at it, thanks!

> 
> Created ticket for Ignite -
> https://issues.apache.org/jira/browse/INFRA-10484
> 
> 
> --Yakov
> 
> 2015-09-22 21:01 GMT+03:00 Konstantin Boudnik :
> 
> > Something like this could be arranged with INFRA
> > https://issues.apache.org/jira/browse/INFRA-10092
> > so there's an official CNAME for the CI server.
> >
> > Cos
> >
> > On Tue, Sep 22, 2015 at 11:31AM, Raul Kripalani wrote:
> > > Hey guys,
> > >
> > > (Continuing "Maybe review my first commits" thread here).
> > >
> > > I updated the Wiki in several places to point to .153:
> > >
> > > - Frontpage
> > > - Git process
> > > - How to Contribute
> > >
> > > Are there any plans to create a hostname for TeamCity? Else we can
> > create a
> > > page at http://ignite.apache.org/teamcity that redirects to the right
> > place.
> > >
> > > Thanks,
> > >
> > > *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 Tue, Sep 22, 2015 at 6:05 AM, Denis Magda 
> > wrote:
> > >
> > > > Hi Raul,
> > > >
> > > > That server got down almost a month ago.
> > > > There is a secondary one - http://204.14.53.153/
> > > >
> > > > Are we going to recover .152 server? If we don't then we have to update
> > > > our wiki and refer to .153.
> > > >
> > > > --
> > > > Denis
> > > >
> > > >
> > > > On 9/22/2015 12:25 AM, Raúl Kripalani wrote:
> > > >
> > > >> I'm trying to access TeamCity via the URL in the Wiki (
> > > >> http://204.14.53.152/)
> > > >> but it seems to be down...
> > > >>
> > > >> http://downforeveryoneorjustme.com/http://204.14.53.152/
> > > >>
> > > >> Could someone please check?
> > > >>
> > > >> Thanks,
> > > >> Raúl.
> > > >>
> > > >>
> > > >
> >


[jira] [Created] (IGNITE-1547) NPE if using HTTP REST

2015-09-24 Thread Pavel Konstantinov (JIRA)
Pavel Konstantinov created IGNITE-1547:
--

 Summary: NPE if using HTTP REST
 Key: IGNITE-1547
 URL: https://issues.apache.org/jira/browse/IGNITE-1547
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: ignite-1.4
Reporter: Pavel Konstantinov
Assignee: Yakov Zhdanov
 Fix For: ignite-1.5


I'm tested Ignite Console SQL feature and got NPE on node start if web agent 
trying to get cache information at this moment
{code}
[13:25:56,761][SEVERE][qtp79785210-70][GridJettyRestProtocol] Failed to process 
HTTP request [action=/ignite, req=(GET 
/ignite?cmd=top&attr=true&mtr=false)@1215478528 
org.eclipse.jetty.server.Request@
4872bb00]
class org.apache.ignite.IgniteCheckedException: null
at 
org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6979)
at 
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:150)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.rest.handlers.top.GridTopologyCommandHandler.createNodeBean(GridTopologyCommandHandler.java:208)
at 
org.apache.ignite.internal.processors.rest.handlers.top.GridTopologyCommandHandler.handleAsync(GridTopologyCommandHandler.java:107)
at 
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:226)
at 
org.apache.ignite.internal.processors.rest.GridRestProcessor.access$100(GridRestProcessor.java:79)
at 
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:133)
... 4 more
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1546) Rework XML for DB2

2015-09-24 Thread Pavel Konstantinov (JIRA)
Pavel Konstantinov created IGNITE-1546:
--

 Summary: Rework XML for DB2
 Key: IGNITE-1546
 URL: https://issues.apache.org/jira/browse/IGNITE-1546
 Project: Ignite
  Issue Type: Sub-task
  Components: wizards
Reporter: Pavel Konstantinov
Assignee: Vasiliy Sisko
Priority: Trivial


Bean which we generates now is incorrect - node cannot start with it
I found another notation we should implement:











--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1545) Java8 MessagingExample should be optimized

2015-09-24 Thread Vasilisa Sidorova (JIRA)
Vasilisa  Sidorova created IGNITE-1545:
--

 Summary: Java8 MessagingExample should be optimized
 Key: IGNITE-1545
 URL: https://issues.apache.org/jira/browse/IGNITE-1545
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: ignite-1.4
 Environment: Ubuntu 14.04, community build 1.4.0 #305
Reporter: Vasilisa  Sidorova
Priority: Trivial


-
DESCRIPTION
-
When Java8 MessagingExample start without remote nodes it's get "Please start 
at least 2 cluster nodes to run example." twice. There is 3 needless 
system.out.println as the same print is in checkMinTopologySize method
-
STEPS FOR REPRODUCE
-
1. Run Java8 MessagingExample
-
ACTUAL RESULT
-
{noformat}
>>> Please start at least 2 cluster nodes to run example.

>>> Please start at least 2 cluster nodes to run example.
{noformat}
-
EXPECTED RESULT
-
{noformat}
>>> Please start at least 2 cluster nodes to run example.
{noformat}

like for all anothers Java7 and Java8 Messaging Examples



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1544) Make sure objects number stored in a cache can be bigger than Integer.MAX_INT

2015-09-24 Thread Denis Magda (JIRA)
Denis Magda created IGNITE-1544:
---

 Summary: Make sure objects number stored in a cache can be bigger 
than Integer.MAX_INT
 Key: IGNITE-1544
 URL: https://issues.apache.org/jira/browse/IGNITE-1544
 Project: Ignite
  Issue Type: Bug
  Components: cache
Affects Versions: ignite-1.4
Reporter: Denis Magda
Assignee: Yakov Zhdanov
Priority: Blocker
 Fix For: ignite-1.5


Make sure that a cache (partitioned) can actually hold number of objects bigger 
than Integer.MAX_INT. Because Integer.MAX_INT is not enough for some life use 
cases and business domains.

At least the following should be done:
- IgniteCache must return cache size as a {{long}} value;
- Make sure (make a test) that a partitioned cache can store number of objects 
much bigger than Integer.MAX_INT;
- find and edit info regarding this limitation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1543) SqlQuery returns empty result set when custome PortableIdMapper

2015-09-24 Thread Denis Magda (JIRA)
Denis Magda created IGNITE-1543:
---

 Summary: SqlQuery returns empty result set when custome 
PortableIdMapper
 Key: IGNITE-1543
 URL: https://issues.apache.org/jira/browse/IGNITE-1543
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: ignite-1.4
Reporter: Denis Magda
Priority: Critical
 Fix For: ignite-1.5


Set custom {{PortableIdMapper}} for a type. Let this mapper to return some 
predefined id for this type (like 12345).

Then execute SQL to get all the entries of this type. The query will return an 
empty result set. 
Seems that at some point of execution SQL engine or some other part of the 
platform uses default type to id mapping ignoring given {{PotableIdMapper}}.

To reproduce:
- Start a server node with portable marshaller enabled;
- run the code attached (ClientTest.java).

Add a test to our test suites.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1542) MetaDataEnabled flag is partially ignored when set in PortableTypeConfiguration

2015-09-24 Thread Denis Magda (JIRA)
Denis Magda created IGNITE-1542:
---

 Summary: MetaDataEnabled flag is partially ignored when set in 
PortableTypeConfiguration
 Key: IGNITE-1542
 URL: https://issues.apache.org/jira/browse/IGNITE-1542
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: ignite-1.4
Reporter: Denis Magda
Assignee: Denis Magda
Priority: Critical
 Fix For: ignite-1.5


Define a type using {{PortableTypeConfiguration}} and disable meta data for the 
type by setting {{metaDataEnabled}} flag to false.

Then set this portable type configuration in {{PortableMarshaller's}} 
configuration list and start a node.

Despite of the fact that the metadata is disable for the type it will be added 
to the metadata handler.

The fix is trivial.
Change last line of {{PortableContext.registerUserType()}} to:

{noformat}
if (metadataenabled)
metaHnd.addMeta(id, new PortableMetaDataImpl(typeName, fieldsMeta, 
affKeyFieldName));
{noformat}

Add tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] ignite pull request: Ignite 1515 b

2015-09-24 Thread iveselovskiy
GitHub user iveselovskiy opened a pull request:

https://github.com/apache/ignite/pull/105

Ignite 1515 b

https://issues.apache.org/jira/browse/IGNITE-1515

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/iveselovskiy/ignite ignite-1515-b

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/105.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #105


commit 61859f90130c95f4bb9f4bd721f70e9b067068ef
Author: iveselovskiy 
Date:   2015-09-24T13:24:59Z

1515: workable version, needs cleanup.

commit 7cad4c35bd301d53544ad35a32e2cc7bd1d473e7
Author: iveselovskiy 
Date:   2015-09-24T14:14:16Z

ignite-1515: cleanup.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Created] (IGNITE-1541) IGFS: mkdirs operation should be truly thread-safe.

2015-09-24 Thread Ivan Veselovsky (JIRA)
Ivan Veselovsky created IGNITE-1541:
---

 Summary: IGFS: mkdirs operation should be truly thread-safe.
 Key: IGNITE-1541
 URL: https://issues.apache.org/jira/browse/IGNITE-1541
 Project: Ignite
  Issue Type: Bug
Reporter: Ivan Veselovsky
Assignee: Ivan Veselovsky


In IGNITE-1515 we made delete thread-safe. 
But experience shows that concurrent delete + mkdirs operations nevertheless 
cause file system structure corruption, see test 
org.apache.ignite.internal.processors.igfs.IgfsAbstractSelfTest#testDeadlocksDeleteMkdirs
 . 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: After setting streamer and ignite,getting NULL

2015-09-24 Thread Anton Vinogradov
Chandresh,
As far as understand IBolt implementation should setup all external
connections at .prepare() method.
So, better way is to get existing Ignite instance or create new at .prepare()
method.


On Thu, Sep 24, 2015 at 10:55 AM, Gianfranco Murador <
murador.gianfra...@gmail.com> wrote:

> Chandresh,
> I will launch the unit test later this week , if the problem persists. I
> think that you should instantiate Ignite through the start() method of
> Ignition class
> and retrieve the Ignite cache specifying a name for the default cache. You
> should provide a name also for data streamer, not passing null.
> Could you do this and run again the unit test ?
> Thank you,
> Regards,
>  Gianfranco
>
>
> 2015-09-24 5:40 GMT+02:00 chandresh pancholi <
> chandreshpancholi...@gmail.com
> >:
>
> > Anton,
> >
> > Clone this repo https://github.com/chandresh-pancholi/ignite and run
> this
> > class
> >
> >
> https://github.com/chandresh-pancholi/ignite/blob/master/modules/storm/src/test/java/org/apache/ignite/stream/storm/IgniteStormStreamerSelfTestSuite.java
> >
> > You will get the Error saying "Oouch,Argument is Null" for getStreamer().
> >
> > On Wed, Sep 23, 2015 at 9:46 PM, Anton Vinogradov <
> > avinogra...@gridgain.com>
> > wrote:
> >
> > > Chandresh,
> > > I'm trying to analize problem.
> > > Could you please provide more details and explain step-by-step how can
> I
> > > reproduce problem?
> > >
> > > On Tue, Sep 22, 2015 at 11:06 PM, chandresh pancholi <
> > > chandreshpancholi...@gmail.com> wrote:
> > >
> > > > Not yet.
> > > > Still doing brainstorming why StormStreamer object is getting NULLL
> > > > in-spite setting up ignite and streamer instances.
> > > >
> > > > On Tue, Sep 22, 2015 at 7:22 PM, Vishal Garg 
> > wrote:
> > > >
> > > > > Did you figure it out? Something related to your storm integration?
> > > > > Vishal
> > > > >
> > > > > Sent from my iPhone
> > > > >
> > > > > > On Sep 22, 2015, at 4:50 AM, chandresh pancholi <
> > > > > chandreshpancholi...@gmail.com> wrote:
> > > > > >
> > > > > > Problem here is with Storm. Its making streamer object null once
> it
> > > > goes
> > > > > > into submit topology.
> > > > > >
> > > > > > On Mon, Sep 21, 2015 at 7:13 PM, Lalit Kumar Jha <
> > > lalitj@gmail.com
> > > > >
> > > > > > wrote:
> > > > > >
> > > > > >> Hi Chandresh,
> > > > > >>
> > > > > >> See test suite class here, its based on annotations
> > > > > >>
> > > > > >>
> > > > >
> > > >
> > >
> >
> https://github.com/sylentprayer/ignite/blob/ignite-530/modules/twitter/src/test/java/org/apache/ignite/stream/twitter/IgniteTwitterStreamerTestSuite.java
> > > > > >>
> > > > > >> No code required in class body.
> > > > > >>
> > > > > >> On Mon, Sep 21, 2015 at 6:24 PM, chandresh pancholi <
> > > > > >> chandreshpancholi...@gmail.com> wrote:
> > > > > >>
> > > > > >>> Hi Gian/Vishal/Lalit,
> > > > > >>>
> > > > > >>> You guys have worked on Streamer integration with Ignite. I am
> > > > working
> > > > > on
> > > > > >>> Storm-ignite integration.
> > > > > >>>
> > > > > >>> I am setting up setStreamer() and setIgnite() in Test class and
> > > > sending
> > > > > >>> this object to setBolt() method.
> > > > > >>>
> > > > > >>> When i try to read via gettreamer() and getIgnite() i am
> getting
> > > > NULL.
> > > > > I
> > > > > >> am
> > > > > >>> trying to find out why is it happening but No Luck.
> > > > > >>>
> > > > > >>> If any one of you find some time and look into the code and
> help
> > me
> > > > to
> > > > > >>> resolve this. It would be great.
> > > > > >>>
> > > > > >>> Git : https://github.com/chandresh-pancholi/ignite
> > > > > >>> Module : storm
> > > > > >>>
> > > > > >>> --
> > > > > >>> Chandresh Pancholi
> > > > > >>> Senior Software Engineer
> > > > > >>> Flipkart.com
> > > > > >>> Email-id:chandresh.panch...@flipkart.com
> > > > > >>> Contact:08951803660
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Chandresh Pancholi
> > > > > > Senior Software Engineer
> > > > > > Flipkart.com
> > > > > > Email-id:chandresh.panch...@flipkart.com
> > > > > > Contact:08951803660
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Chandresh Pancholi
> > > > Senior Software Engineer
> > > > Flipkart.com
> > > > Email-id:chandresh.panch...@flipkart.com
> > > > Contact:08951803660
> > > >
> > >
> >
> >
> >
> > --
> > Chandresh Pancholi
> > Senior Software Engineer
> > Flipkart.com
> > Email-id:chandresh.panch...@flipkart.com
> > Contact:08951803660
> >
>


Re: Pull Request Merge Process

2015-09-24 Thread Anton Vinogradov
Hello,
I've made initial review.
Comments was added to issue, please have a look.

On Tue, Sep 22, 2015 at 10:15 AM, Lalit Kumar Jha 
wrote:

> I submitted pull request for IGNITE-530 (Twitter streamer).
>
> What is the proceess for reviewing and merging?
>


[jira] [Created] (IGNITE-1540) Unexpected cache value in IgniteCacheSslStartStopSelfTest.testInvokeAll

2015-09-24 Thread Semen Boikov (JIRA)
Semen Boikov created IGNITE-1540:


 Summary: Unexpected cache value in 
IgniteCacheSslStartStopSelfTest.testInvokeAll
 Key: IGNITE-1540
 URL: https://issues.apache.org/jira/browse/IGNITE-1540
 Project: Ignite
  Issue Type: Sub-task
  Components: cache
Reporter: Semen Boikov
Assignee: Semen Boikov
Priority: Critical
 Fix For: ignite-1.5


Test IgniteCacheSslStartStopSelfTest.testInvokeAll sometimes fails on TC 
(cache.get returns old value after update):
{noformat}
unit.framework.AssertionFailedError: expected:<30> but was:<29>
at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.Assert.failNotEquals(Assert.java:329)
at junit.framework.Assert.assertEquals(Assert.java:78)
at junit.framework.Assert.assertEquals(Assert.java:86)
at junit.framework.TestCase.assertEquals(TestCase.java:253)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAbstractSelfTest.checkRetry(IgniteCachePutRetryAbstractSelfTest.java:403)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAbstractSelfTest.testInvokeAll(IgniteCachePutRetryAbstractSelfTest.java:214)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: IGFS concurrency issue

2015-09-24 Thread Vladimir Ozerov
This is how we fixed it for now. But it requires paths locking starting
from the root. Otherwise they can become parent-child in a moment after
sucessfull check.

On Thu, Sep 24, 2015 at 11:28 AM, Sergi Vladykin 
wrote:

> May be just check that they are not parent-child within the tx?
>
> Sergi
> Igniters,
>
> We revealed concurrency problem in IGFS and I would like to discuss
> possible solutions to it.
>
> Consider the following file system structure:
> root
> |-- A
> |   |-- B
> |   |   |-- C
> |   |-- D
>
> ... two concurrent operations in different threads:
> T1: move(/A/B, /A/D);
> T2: move(/A/D, /A/B/C);
>
> ... and how IGFS handles it now:
> T1: verify that "/A/B" and "/A/D" exist, they are not child-parent to each
> other, etc. -> OK.
> T2: do the same for "A/D" and "A/B/C" -> OK.
> T1: get IDs of "/A", "/A/B" and "/A/D" to lock them later inside tx.
> T2: get IDs of "/A", "/A/D", "/A/B" and "/A/B/C" to lock them later inside
> tx.
>
> T1: Start pessimistic tx, lock IDs of "/A", "/A/B", "/A/D", perform move ->
> OK.
> root
> |-- A
> |   |-- D
> |   |   |-- B
> |   |   |   |-- C
>
> T2: Start pessimistic tx, lock IDs of "/A", "/A/D", "/A/B" and
> "/A/B/C" (*directory
> structure already changed at this time!*), perform move -> OK.
> root
> |-- A
> B
> |-- D
> |   |-- C
> |   |   |-- B (loop!)
>
> File system is corrupted. Folders B, C and D are not reacheable from root.
>
> To fix this now we additionaly check if directory structure is still
> valid *inside
> transaction*. It works, no more corruptions. But it requres taking locks on
> the whole paths *including root*. So move, delete and mkdirs opeartions
> *can
> no longer be concurrent*.
>
> Probably there is a way to relax this while still ensuring consistency, but
> I do not see how. One idea is to store real path inside each entry. This
> way we will be able to ensure that it is still at a valid location without
> blocking parents, so concurrnecy will be restored. But we will have to
> propagate strucutral changes to children. E.g. move of a folder with 100
> items will lead to update of >100 cache entries. Not so good.
>
> Any other ideas?
>
> Vladimir.
>


Re: IGFS concurrency issue

2015-09-24 Thread Sergi Vladykin
May be just check that they are not parent-child within the tx?

Sergi
Igniters,

We revealed concurrency problem in IGFS and I would like to discuss
possible solutions to it.

Consider the following file system structure:
root
|-- A
|   |-- B
|   |   |-- C
|   |-- D

... two concurrent operations in different threads:
T1: move(/A/B, /A/D);
T2: move(/A/D, /A/B/C);

... and how IGFS handles it now:
T1: verify that "/A/B" and "/A/D" exist, they are not child-parent to each
other, etc. -> OK.
T2: do the same for "A/D" and "A/B/C" -> OK.
T1: get IDs of "/A", "/A/B" and "/A/D" to lock them later inside tx.
T2: get IDs of "/A", "/A/D", "/A/B" and "/A/B/C" to lock them later inside
tx.

T1: Start pessimistic tx, lock IDs of "/A", "/A/B", "/A/D", perform move ->
OK.
root
|-- A
|   |-- D
|   |   |-- B
|   |   |   |-- C

T2: Start pessimistic tx, lock IDs of "/A", "/A/D", "/A/B" and
"/A/B/C" (*directory
structure already changed at this time!*), perform move -> OK.
root
|-- A
B
|-- D
|   |-- C
|   |   |-- B (loop!)

File system is corrupted. Folders B, C and D are not reacheable from root.

To fix this now we additionaly check if directory structure is still
valid *inside
transaction*. It works, no more corruptions. But it requres taking locks on
the whole paths *including root*. So move, delete and mkdirs opeartions *can
no longer be concurrent*.

Probably there is a way to relax this while still ensuring consistency, but
I do not see how. One idea is to store real path inside each entry. This
way we will be able to ensure that it is still at a valid location without
blocking parents, so concurrnecy will be restored. But we will have to
propagate strucutral changes to children. E.g. move of a folder with 100
items will lead to update of >100 cache entries. Not so good.

Any other ideas?

Vladimir.


Re: After setting streamer and ignite,getting NULL

2015-09-24 Thread Gianfranco Murador
Chandresh,
I will launch the unit test later this week , if the problem persists. I
think that you should instantiate Ignite through the start() method of
Ignition class
and retrieve the Ignite cache specifying a name for the default cache. You
should provide a name also for data streamer, not passing null.
Could you do this and run again the unit test ?
Thank you,
Regards,
 Gianfranco


2015-09-24 5:40 GMT+02:00 chandresh pancholi :

> Anton,
>
> Clone this repo https://github.com/chandresh-pancholi/ignite and run this
> class
>
> https://github.com/chandresh-pancholi/ignite/blob/master/modules/storm/src/test/java/org/apache/ignite/stream/storm/IgniteStormStreamerSelfTestSuite.java
>
> You will get the Error saying "Oouch,Argument is Null" for getStreamer().
>
> On Wed, Sep 23, 2015 at 9:46 PM, Anton Vinogradov <
> avinogra...@gridgain.com>
> wrote:
>
> > Chandresh,
> > I'm trying to analize problem.
> > Could you please provide more details and explain step-by-step how can I
> > reproduce problem?
> >
> > On Tue, Sep 22, 2015 at 11:06 PM, chandresh pancholi <
> > chandreshpancholi...@gmail.com> wrote:
> >
> > > Not yet.
> > > Still doing brainstorming why StormStreamer object is getting NULLL
> > > in-spite setting up ignite and streamer instances.
> > >
> > > On Tue, Sep 22, 2015 at 7:22 PM, Vishal Garg 
> wrote:
> > >
> > > > Did you figure it out? Something related to your storm integration?
> > > > Vishal
> > > >
> > > > Sent from my iPhone
> > > >
> > > > > On Sep 22, 2015, at 4:50 AM, chandresh pancholi <
> > > > chandreshpancholi...@gmail.com> wrote:
> > > > >
> > > > > Problem here is with Storm. Its making streamer object null once it
> > > goes
> > > > > into submit topology.
> > > > >
> > > > > On Mon, Sep 21, 2015 at 7:13 PM, Lalit Kumar Jha <
> > lalitj@gmail.com
> > > >
> > > > > wrote:
> > > > >
> > > > >> Hi Chandresh,
> > > > >>
> > > > >> See test suite class here, its based on annotations
> > > > >>
> > > > >>
> > > >
> > >
> >
> https://github.com/sylentprayer/ignite/blob/ignite-530/modules/twitter/src/test/java/org/apache/ignite/stream/twitter/IgniteTwitterStreamerTestSuite.java
> > > > >>
> > > > >> No code required in class body.
> > > > >>
> > > > >> On Mon, Sep 21, 2015 at 6:24 PM, chandresh pancholi <
> > > > >> chandreshpancholi...@gmail.com> wrote:
> > > > >>
> > > > >>> Hi Gian/Vishal/Lalit,
> > > > >>>
> > > > >>> You guys have worked on Streamer integration with Ignite. I am
> > > working
> > > > on
> > > > >>> Storm-ignite integration.
> > > > >>>
> > > > >>> I am setting up setStreamer() and setIgnite() in Test class and
> > > sending
> > > > >>> this object to setBolt() method.
> > > > >>>
> > > > >>> When i try to read via gettreamer() and getIgnite() i am getting
> > > NULL.
> > > > I
> > > > >> am
> > > > >>> trying to find out why is it happening but No Luck.
> > > > >>>
> > > > >>> If any one of you find some time and look into the code and help
> me
> > > to
> > > > >>> resolve this. It would be great.
> > > > >>>
> > > > >>> Git : https://github.com/chandresh-pancholi/ignite
> > > > >>> Module : storm
> > > > >>>
> > > > >>> --
> > > > >>> Chandresh Pancholi
> > > > >>> Senior Software Engineer
> > > > >>> Flipkart.com
> > > > >>> Email-id:chandresh.panch...@flipkart.com
> > > > >>> Contact:08951803660
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Chandresh Pancholi
> > > > > Senior Software Engineer
> > > > > Flipkart.com
> > > > > Email-id:chandresh.panch...@flipkart.com
> > > > > Contact:08951803660
> > > >
> > >
> > >
> > >
> > > --
> > > Chandresh Pancholi
> > > Senior Software Engineer
> > > Flipkart.com
> > > Email-id:chandresh.panch...@flipkart.com
> > > Contact:08951803660
> > >
> >
>
>
>
> --
> Chandresh Pancholi
> Senior Software Engineer
> Flipkart.com
> Email-id:chandresh.panch...@flipkart.com
> Contact:08951803660
>


[jira] [Created] (IGNITE-1539) Marshaller performance micro-optimizations.

2015-09-24 Thread Vladimir Ozerov (JIRA)
Vladimir Ozerov created IGNITE-1539:
---

 Summary: Marshaller performance micro-optimizations.
 Key: IGNITE-1539
 URL: https://issues.apache.org/jira/browse/IGNITE-1539
 Project: Ignite
  Issue Type: Task
  Components: general
Affects Versions: 1.1.4
Reporter: Vladimir Ozerov
 Fix For: ignite-1.5


The main goal of marshalling is to write an object to byte[]/ByteBuffer, or 
read from it. Currently each read/write is surrounded by quite a few additional 
actions which can be avoided either in general, or in some specific cases.

Looks like we can apply lots of micro-optimizations to our marshallers:
1) Do not perform HashMap lookups for each field ID.
2) Pre-calculate field IDs for reflection-based types.
3) Pre-calculate metadata for reflection-based types and do not track it.
4) Avoid "raw" mode checks for reflection-based types.
5) Merge small writes into bigger ones where possible. E.g. WRITE_INT_FIELD_ID 
+ WRITE_INT_FIELD_LEN can be replaced with a single WRITE_LONG when field 
length is constant.
6) Memory bounds checks can be avoided in lots cases if we read/write object 
part with pre-defined length.
7) For objects having only fixed-length fields, we can pre-calculate a kind of 
template seriously minimizing writes.
8) Anything else?

Applying some of these optimizations in .Net shows very promising results with 
up to 40% throughput increase.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


IGFS concurrency issue

2015-09-24 Thread Vladimir Ozerov
Igniters,

We revealed concurrency problem in IGFS and I would like to discuss
possible solutions to it.

Consider the following file system structure:
root
|-- A
|   |-- B
|   |   |-- C
|   |-- D

... two concurrent operations in different threads:
T1: move(/A/B, /A/D);
T2: move(/A/D, /A/B/C);

... and how IGFS handles it now:
T1: verify that "/A/B" and "/A/D" exist, they are not child-parent to each
other, etc. -> OK.
T2: do the same for "A/D" and "A/B/C" -> OK.
T1: get IDs of "/A", "/A/B" and "/A/D" to lock them later inside tx.
T2: get IDs of "/A", "/A/D", "/A/B" and "/A/B/C" to lock them later inside
tx.

T1: Start pessimistic tx, lock IDs of "/A", "/A/B", "/A/D", perform move ->
OK.
root
|-- A
|   |-- D
|   |   |-- B
|   |   |   |-- C

T2: Start pessimistic tx, lock IDs of "/A", "/A/D", "/A/B" and
"/A/B/C" (*directory
structure already changed at this time!*), perform move -> OK.
root
|-- A
B
|-- D
|   |-- C
|   |   |-- B (loop!)

File system is corrupted. Folders B, C and D are not reacheable from root.

To fix this now we additionaly check if directory structure is still
valid *inside
transaction*. It works, no more corruptions. But it requres taking locks on
the whole paths *including root*. So move, delete and mkdirs opeartions *can
no longer be concurrent*.

Probably there is a way to relax this while still ensuring consistency, but
I do not see how. One idea is to store real path inside each entry. This
way we will be able to ensure that it is still at a valid location without
blocking parents, so concurrnecy will be restored. But we will have to
propagate strucutral changes to children. E.g. move of a folder with 100
items will lead to update of >100 cache entries. Not so good.

Any other ideas?

Vladimir.