[jira] [Created] (OAK-4806) Remove usage of Tree in LuceneIndexEditor

2016-09-14 Thread Chetan Mehrotra (JIRA)
Chetan Mehrotra created OAK-4806:


 Summary: Remove usage of Tree in LuceneIndexEditor
 Key: OAK-4806
 URL: https://issues.apache.org/jira/browse/OAK-4806
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: lucene
Reporter: Chetan Mehrotra
Assignee: Chetan Mehrotra
Priority: Minor
 Fix For: 1.6


{{LuceneIndexEditor}} currently creates 2 tree instances for determining 
IndexRule. [~ianeboston] highlighted this on list [1] and this is something 
which we should avoid and remove usage of Tree api

This was earlier done so as to simplify future support for conditional rules 
(OAK-2281) which might need access to ancestor which is not possible with 
NodeState api.  As that is not going to be done so we can get rid of Tree 
construction in the editor.

[1] 
https://lists.apache.org/thread.html/7d51b45296f5801c3b510a30a4847ce297707fb4e0d4c2cefe19be62@%3Coak-dev.jackrabbit.apache.org%3E




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


[jira] [Comment Edited] (OAK-4805) Misconfigured lucene index definition can render the whole system unusable

2016-09-14 Thread Vikas Saurabh (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15491567#comment-15491567
 ] 

Vikas Saurabh edited comment on OAK-4805 at 9/14/16 10:01 PM:
--

[~chetanm], can you please take a look at [^OAK-4805.patch] if it's the right 
place to catch and log the exception. I've not update {{LuceneIndex.java}} 
though (wasn't sure if we want to maintain that or not).


was (Author: catholicon):
[~chetanm], can you please take a look if it's the right place to catch and log 
the exception. I've not update {{LuceneIndex.java}} though (wasn't sure if we 
want to maintain that or not).

> Misconfigured lucene index definition can render the whole system unusable
> --
>
> Key: OAK-4805
> URL: https://issues.apache.org/jira/browse/OAK-4805
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.6
>
> Attachments: OAK-4805.patch
>
>
> Mis-configured index definition can throw an exception while collecting 
> plans. This causes any query (even unrelated ones) to not work as cost 
> calculation logic would consult a badly constructed index def. Overall a 
> mis-configured index definition can practically grind the whole system to 
> halt as the whole query framework stops working.



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


[jira] [Updated] (OAK-4805) Misconfigured lucene index definition can render the whole system unusable

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4805:
---
Flags: Patch

> Misconfigured lucene index definition can render the whole system unusable
> --
>
> Key: OAK-4805
> URL: https://issues.apache.org/jira/browse/OAK-4805
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.6
>
> Attachments: OAK-4805.patch
>
>
> Mis-configured index definition can throw an exception while collecting 
> plans. This causes any query (even unrelated ones) to not work as cost 
> calculation logic would consult a badly constructed index def. Overall a 
> mis-configured index definition can practically grind the whole system to 
> halt as the whole query framework stops working.



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


[jira] [Updated] (OAK-4805) Misconfigured lucene index definition can render the whole system unusable

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4805:
---
Attachment: OAK-4805.patch

[~chetanm], can you please take a look if it's the right place to catch and log 
the exception. I've not update {{LuceneIndex.java}} though (wasn't sure if we 
want to maintain that or not).

> Misconfigured lucene index definition can render the whole system unusable
> --
>
> Key: OAK-4805
> URL: https://issues.apache.org/jira/browse/OAK-4805
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
> Fix For: 1.6
>
> Attachments: OAK-4805.patch
>
>
> Mis-configured index definition can throw an exception while collecting 
> plans. This causes any query (even unrelated ones) to not work as cost 
> calculation logic would consult a badly constructed index def. Overall a 
> mis-configured index definition can practically grind the whole system to 
> halt as the whole query framework stops working.



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


[jira] [Updated] (OAK-4805) Misconfigured lucene index definition can render the whole system unusable

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4805:
---
Summary: Misconfigured lucene index definition can render the whole system 
unusable  (was: Misconfigured lucene index definition can make the whole system 
unusable)

> Misconfigured lucene index definition can render the whole system unusable
> --
>
> Key: OAK-4805
> URL: https://issues.apache.org/jira/browse/OAK-4805
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
> Fix For: 1.6
>
>
> Mis-configured index definition can throw an exception while collecting 
> plans. This causes any query (even unrelated ones) to not work as cost 
> calculation logic would consult a badly constructed index def. Overall a 
> mis-configured index definition can practically grind the whole system to 
> halt as the whole query framework stops working.



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


[jira] [Created] (OAK-4805) Misconfigured lucene index definition can make the whole system unusable

2016-09-14 Thread Vikas Saurabh (JIRA)
Vikas Saurabh created OAK-4805:
--

 Summary: Misconfigured lucene index definition can make the whole 
system unusable
 Key: OAK-4805
 URL: https://issues.apache.org/jira/browse/OAK-4805
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: lucene
Reporter: Vikas Saurabh
Assignee: Vikas Saurabh
 Fix For: 1.6


Mis-configured index definition can throw an exception while collecting plans. 
This causes any query (even unrelated ones) to not work as cost calculation 
logic would consult a badly constructed index def. Overall a mis-configured 
index definition can practically grind the whole system to halt as the whole 
query framework stops working.



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


[jira] [Updated] (OAK-4804) Synonym analyzer with multiple words in synonym definition can give more results than expected

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4804:
---
Summary: Synonym analyzer with multiple words in synonym definition can 
give more results than expected  (was: Synonym with multiple words can give 
more results than expected)

> Synonym analyzer with multiple words in synonym definition can give more 
> results than expected
> --
>
> Key: OAK-4804
> URL: https://issues.apache.org/jira/browse/OAK-4804
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>Priority: Minor
>
> Setting up synonyms such as {{"FTW, For the win"}} would also return 
> documents which contain all of {{"For", "the", "win"}}.
> Test case:
> {noformat}
> @Test
> public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
> Tree idx = createFulltextIndex(root.getTree("/"), "test");
> TestUtil.useV2(idx);
> Tree anl = 
> idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);
> 
> anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
>  "Standard");
> Tree synFilter = 
> anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
> synFilter.setProperty("synonyms", "syn.txt");
> 
> synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, 
> "FTW, For the win");
> Tree test = root.getTree("/").addChild("test");
> test.addChild("1").setProperty("foo", "FTW");
> test.addChild("2").setProperty("foo", "For the win");
> test.addChild("3").setProperty("foo", "For gods sake, this is not the 
> way to win it");
> root.commit();
> assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
> ISDESCENDANTNODE('/test')",
> asList("/test/1", "/test/2"));//current (failing result is 
> ["/test/1", "/test/2", "/test/3"])
> }
> {noformat}



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


[jira] [Updated] (OAK-4804) Synonym with multiple words can give more results than expected

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4804:
---
Summary: Synonym with multiple words can give more results than expected  
(was: Synonym with multiple words give more results than expected)

> Synonym with multiple words can give more results than expected
> ---
>
> Key: OAK-4804
> URL: https://issues.apache.org/jira/browse/OAK-4804
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>Priority: Minor
>
> Setting up synonyms such as {{"FTW, For the win"}} would also return 
> documents which contain all of {{"For", "the", "win"}}.
> Test case:
> {noformat}
> @Test
> public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
> Tree idx = createFulltextIndex(root.getTree("/"), "test");
> TestUtil.useV2(idx);
> Tree anl = 
> idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);
> 
> anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
>  "Standard");
> Tree synFilter = 
> anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
> synFilter.setProperty("synonyms", "syn.txt");
> 
> synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, 
> "FTW, For the win");
> Tree test = root.getTree("/").addChild("test");
> test.addChild("1").setProperty("foo", "FTW");
> test.addChild("2").setProperty("foo", "For the win");
> test.addChild("3").setProperty("foo", "For gods sake, this is not the 
> way to win it");
> root.commit();
> assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
> ISDESCENDANTNODE('/test')",
> asList("/test/1", "/test/2"));//current (failing result is 
> ["/test/1", "/test/2", "/test/3"])
> }
> {noformat}



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


[jira] [Updated] (OAK-4804) Synonym with multiple words give more results than expected

2016-09-14 Thread Vikas Saurabh (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4804:
---
Description: 
Setting up synonyms such as {{"FTW, For the win"}} would also return documents 
which contain all of {{"For", "the", "win"}}.

Test case:
{noformat}
@Test
public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
Tree idx = createFulltextIndex(root.getTree("/"), "test");
TestUtil.useV2(idx);

Tree anl = 
idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);

anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
 "Standard");
Tree synFilter = 
anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
synFilter.setProperty("synonyms", "syn.txt");

synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, "FTW, 
For the win");

Tree test = root.getTree("/").addChild("test");
test.addChild("1").setProperty("foo", "FTW");
test.addChild("2").setProperty("foo", "For the win");
test.addChild("3").setProperty("foo", "For gods sake, this is not the 
way to win it");
root.commit();

assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
ISDESCENDANTNODE('/test')",
asList("/test/1", "/test/2"));//current (failing result is 
["/test/1", "/test/2", "/test/3"])
}
{noformat}

  was:
Setting up synonyms such as {{"FTW, For the win"}} would also return documents 
which contain all of {{"For", "the", "win"}}.

Test case:
{noformat}
@Test
public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
Tree idx = createFulltextIndex(root.getTree("/"), "test");
TestUtil.useV2(idx);

Tree anl = 
idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);

anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
 "Standard");
Tree synFilter = 
anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
synFilter.setProperty("synonyms", "syn.txt");

synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, "FTW, 
For the win");

Tree test = root.getTree("/").addChild("test");
test.addChild("1").setProperty("foo", "FTW");
test.addChild("2").setProperty("foo", "For the win");
test.addChild("3").setProperty("foo", "For gods sake, this is not the 
way to win it");
root.commit();

assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
ISDESCENDANTNODE('/test')",
asList("/test/1", "/test/2"));
}
{noformat}


> Synonym with multiple words give more results than expected
> ---
>
> Key: OAK-4804
> URL: https://issues.apache.org/jira/browse/OAK-4804
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>Priority: Minor
>
> Setting up synonyms such as {{"FTW, For the win"}} would also return 
> documents which contain all of {{"For", "the", "win"}}.
> Test case:
> {noformat}
> @Test
> public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
> Tree idx = createFulltextIndex(root.getTree("/"), "test");
> TestUtil.useV2(idx);
> Tree anl = 
> idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);
> 
> anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
>  "Standard");
> Tree synFilter = 
> anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
> synFilter.setProperty("synonyms", "syn.txt");
> 
> synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, 
> "FTW, For the win");
> Tree test = root.getTree("/").addChild("test");
> test.addChild("1").setProperty("foo", "FTW");
> test.addChild("2").setProperty("foo", "For the win");
> test.addChild("3").setProperty("foo", "For gods sake, this is not the 
> way to win it");
> root.commit();
> assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
> ISDESCENDANTNODE('/test')",
> asList("/test/1", "/test/2"));//current (failing result is 
> ["/test/1", "/test/2", "/test/3"])
> }
> {noformat}



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


[jira] [Commented] (OAK-4804) Synonym with multiple words give more results than expected

2016-09-14 Thread Vikas Saurabh (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15490884#comment-15490884
 ] 

Vikas Saurabh commented on OAK-4804:


This is closely related to point 2 mentioned in 
https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory.

In current scheme of things, it doesn't quite affect much because we use same 
analyzer on both indexing and querying side - so no result is missing BUT we 
get more results... albeit the unexpected result would usually be ranked lower.

The only way that I can think of fixing this is to allow for different analyzer 
for index and querying time.

[~chetanm], [~teofili], thoughts?

> Synonym with multiple words give more results than expected
> ---
>
> Key: OAK-4804
> URL: https://issues.apache.org/jira/browse/OAK-4804
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Reporter: Vikas Saurabh
>Assignee: Vikas Saurabh
>Priority: Minor
>
> Setting up synonyms such as {{"FTW, For the win"}} would also return 
> documents which contain all of {{"For", "the", "win"}}.
> Test case:
> {noformat}
> @Test
> public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
> Tree idx = createFulltextIndex(root.getTree("/"), "test");
> TestUtil.useV2(idx);
> Tree anl = 
> idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);
> 
> anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
>  "Standard");
> Tree synFilter = 
> anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
> synFilter.setProperty("synonyms", "syn.txt");
> 
> synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, 
> "FTW, For the win");
> Tree test = root.getTree("/").addChild("test");
> test.addChild("1").setProperty("foo", "FTW");
> test.addChild("2").setProperty("foo", "For the win");
> test.addChild("3").setProperty("foo", "For gods sake, this is not the 
> way to win it");
> root.commit();
> assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
> ISDESCENDANTNODE('/test')",
> asList("/test/1", "/test/2"));
> }
> {noformat}



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


[jira] [Created] (OAK-4804) Synonym with multiple words give more results than expected

2016-09-14 Thread Vikas Saurabh (JIRA)
Vikas Saurabh created OAK-4804:
--

 Summary: Synonym with multiple words give more results than 
expected
 Key: OAK-4804
 URL: https://issues.apache.org/jira/browse/OAK-4804
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: lucene
Reporter: Vikas Saurabh
Assignee: Vikas Saurabh
Priority: Minor


Setting up synonyms such as {{"FTW, For the win"}} would also return documents 
which contain all of {{"For", "the", "win"}}.

Test case:
{noformat}
@Test
public void fulltextSearchWithPhraseSynonymAnalyzer() throws Exception {
Tree idx = createFulltextIndex(root.getTree("/"), "test");
TestUtil.useV2(idx);

Tree anl = 
idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT);

anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME,
 "Standard");
Tree synFilter = 
anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("Synonym");
synFilter.setProperty("synonyms", "syn.txt");

synFilter.addChild("syn.txt").addChild(JCR_CONTENT).setProperty(JCR_DATA, "FTW, 
For the win");

Tree test = root.getTree("/").addChild("test");
test.addChild("1").setProperty("foo", "FTW");
test.addChild("2").setProperty("foo", "For the win");
test.addChild("3").setProperty("foo", "For gods sake, this is not the 
way to win it");
root.commit();

assertQuery("select * from [nt:base] where CONTAINS(*, 'FTW') AND 
ISDESCENDANTNODE('/test')",
asList("/test/1", "/test/2"));
}
{noformat}



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


[jira] [Updated] (OAK-4793) Check usage of DocumentStoreException in RDBDocumentStore

2016-09-14 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4793:

Attachment: OAK-4793-2.diff

work in progress (handling of DocumentStoreException in db.delete needs to be 
restored)

> Check usage of DocumentStoreException in RDBDocumentStore
> -
>
> Key: OAK-4793
> URL: https://issues.apache.org/jira/browse/OAK-4793
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: core, rdbmk
>Reporter: Marcel Reutegger
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.6
>
> Attachments: OAK-4793-1.diff, OAK-4793-2.diff, OAK-4793.diff, 
> OAK-4793.diff
>
>
> With OAK-4771 the usage of DocumentStoreException was clarified in the 
> DocumentStore interface. The purpose of this task is to check usage of the 
> DocumentStoreException in RDBDocumentStore and make sure JDBC driver specific 
> exceptions are handled consistently and wrapped in a DocumentStoreException. 
> At the same time, cache consistency needs to be checked as well in case of a 
> driver exception. E.g. invalidate if necessary.



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


[jira] [Commented] (OAK-4580) Update to Mongo Java Driver 3.2.x

2016-09-14 Thread Marcel Reutegger (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15490551#comment-15490551
 ] 

Marcel Reutegger commented on OAK-4580:
---

Updated the import package directive to make sure the com.mongodb packages are 
optional: http://svn.apache.org/r1760715

> Update to Mongo Java Driver 3.2.x
> -
>
> Key: OAK-4580
> URL: https://issues.apache.org/jira/browse/OAK-4580
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core, mongomk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
> Fix For: 1.6, 1.5.11
>
>
> Oak currently uses version 2.14, which does not support some of the new 
> features available in 3.2.



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


[jira] [Updated] (OAK-3574) Query engine: support p=lowercase('x') and other function-based indexes

2016-09-14 Thread Thomas Mueller (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-3574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Mueller updated OAK-3574:

Attachment: OAK-3574-lucene-2.patch

New patch with fixed issues. The code processing functions should now be a bit 
more encapsulated and easier to re-use (class FunctionIndexProcessor). 
Processing now uses a simple stack machine, so it should be easier to extend.

[~chetanm] could you review again please?

> Query engine: support p=lowercase('x') and other function-based indexes
> ---
>
> Key: OAK-3574
> URL: https://issues.apache.org/jira/browse/OAK-3574
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: core, query
>Reporter: Thomas Mueller
>Assignee: Thomas Mueller
> Attachments: OAK-3574-lucene-2.patch, OAK-3574-lucene.patch
>
>
> Currently, the query engine and indexes don't support function-based indexes 
> for conditions of the form lowercase(property) = 'x'. This needs to be 
> supported, specially for the Lucene property index.
> Also important is lowercase(name()).



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


[jira] [Commented] (OAK-3574) Query engine: support p=lowercase('x') and other function-based indexes

2016-09-14 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-3574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15490514#comment-15490514
 ] 

Thomas Mueller commented on OAK-3574:
-

> this can be computed once

You are right! I will fix that.

> not work if the relative property which is encoded in function gets changed

Good catch! I will add a test case and fix this. I will add the relative 
property / properties in collectPropConfigs to the propAggregate list. That 
way, a function can potentially have multiple parameters in the future (for 
example, a function that calculates the duration based on start and end date). 


> Query engine: support p=lowercase('x') and other function-based indexes
> ---
>
> Key: OAK-3574
> URL: https://issues.apache.org/jira/browse/OAK-3574
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: core, query
>Reporter: Thomas Mueller
>Assignee: Thomas Mueller
> Attachments: OAK-3574-lucene.patch
>
>
> Currently, the query engine and indexes don't support function-based indexes 
> for conditions of the form lowercase(property) = 'x'. This needs to be 
> supported, specially for the Lucene property index.
> Also important is lowercase(name()).



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


[jira] [Updated] (OAK-4774) Check usage of DocumentStoreException in MongoDocumentStore

2016-09-14 Thread Marcel Reutegger (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger updated OAK-4774:
--
Labels: resilience  (was: )

> Check usage of DocumentStoreException in MongoDocumentStore
> ---
>
> Key: OAK-4774
> URL: https://issues.apache.org/jira/browse/OAK-4774
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: core, mongomk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
>Priority: Minor
>  Labels: resilience
> Fix For: 1.6, 1.5.11
>
>
> With OAK-4771 the usage of DocumentStoreException was clarified in the 
> DocumentStore interface. The purpose of this task is to check usage of the 
> DocumentStoreException in MongoDocumentStore and make sure MongoDB Java 
> driver specific exceptions are handled consistently and wrapped in a 
> DocumentStoreException. At the same time, cache consistency needs to be 
> checked as well in case of a driver exception. E.g. invalidate if necessary.



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


[jira] [Resolved] (OAK-4774) Check usage of DocumentStoreException in MongoDocumentStore

2016-09-14 Thread Marcel Reutegger (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger resolved OAK-4774.
---
   Resolution: Fixed
Fix Version/s: 1.5.11

Added the MongoDocumentStore specific part for the cache consistency test from 
OAK-4802 and added missing cache invalidation to some of the calls.

Fixed in trunk: http://svn.apache.org/r1760709

> Check usage of DocumentStoreException in MongoDocumentStore
> ---
>
> Key: OAK-4774
> URL: https://issues.apache.org/jira/browse/OAK-4774
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: core, mongomk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
>Priority: Minor
> Fix For: 1.6, 1.5.11
>
>
> With OAK-4771 the usage of DocumentStoreException was clarified in the 
> DocumentStore interface. The purpose of this task is to check usage of the 
> DocumentStoreException in MongoDocumentStore and make sure MongoDB Java 
> driver specific exceptions are handled consistently and wrapped in a 
> DocumentStoreException. At the same time, cache consistency needs to be 
> checked as well in case of a driver exception. E.g. invalidate if necessary.



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


[jira] [Commented] (OAK-4802) Basic cache consistency test on exception

2016-09-14 Thread Marcel Reutegger (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15490374#comment-15490374
 ] 

Marcel Reutegger commented on OAK-4802:
---

Extended the test to also check the bulk createOrUpdate() variant: 
http://svn.apache.org/r1760701

> Basic cache consistency test on exception
> -
>
> Key: OAK-4802
> URL: https://issues.apache.org/jira/browse/OAK-4802
> Project: Jackrabbit Oak
>  Issue Type: Test
>  Components: core, documentmk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
>Priority: Minor
> Fix For: 1.6, 1.5.11
>
>
> OAK-4774 and OAK-4793 aim to check if the cache behaviour of a DocumentStore 
> implementation when the underlying backend throws an exception even though 
> the operation succeeded. E.g. the response cannot be sent back because of a 
> network issue.
> This issue will provide the DocumentStore independent part of those tests.



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


[jira] [Updated] (OAK-4803) Simplify the client side of the cold standby

2016-09-14 Thread Francesco Mari (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francesco Mari updated OAK-4803:

Attachment: OAK-4803-01.patch

The patch implements everything that is describing in the issue and adds unit 
tests for the newly introduced components. Some unnecessary components like 
{{StandbyStore}}, {{SegmentLoaderHandler}}, {{StandbyClientHandler}}, and other 
encoders and decoders have been removed as part of this patch.

> Simplify the client side of the cold standby
> 
>
> Key: OAK-4803
> URL: https://issues.apache.org/jira/browse/OAK-4803
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: segment-tar
>Reporter: Francesco Mari
>Assignee: Francesco Mari
> Fix For: Segment Tar 0.0.12
>
> Attachments: OAK-4803-01.patch
>
>
> The implementation of the cold standby client is overly and unnecessarily 
> complicated. It would be way clearer to separate the client code in two major 
> components: a simple client responsible for sending messages to and receive 
> responses from the standby server, and the synchronization algorithm used to 
> read data from the server and to save read data in the local {{FileStore}}.
> Moreover, the client simple client could be further modularised by 
> encapsulating request encoding, response decoding and message handling into 
> their own Netty handlers.



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


[jira] [Updated] (OAK-4793) Check usage of DocumentStoreException in RDBDocumentStore

2016-09-14 Thread Marcel Reutegger (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger updated OAK-4793:
--
Attachment: OAK-4793-1.diff

Attached diff contains the RDB specific part of the test introduced with 
OAK-4802.

> Check usage of DocumentStoreException in RDBDocumentStore
> -
>
> Key: OAK-4793
> URL: https://issues.apache.org/jira/browse/OAK-4793
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: core, rdbmk
>Reporter: Marcel Reutegger
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.6
>
> Attachments: OAK-4793-1.diff, OAK-4793.diff, OAK-4793.diff
>
>
> With OAK-4771 the usage of DocumentStoreException was clarified in the 
> DocumentStore interface. The purpose of this task is to check usage of the 
> DocumentStoreException in RDBDocumentStore and make sure JDBC driver specific 
> exceptions are handled consistently and wrapped in a DocumentStoreException. 
> At the same time, cache consistency needs to be checked as well in case of a 
> driver exception. E.g. invalidate if necessary.



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


[jira] [Resolved] (OAK-4802) Basic cache consistency test on exception

2016-09-14 Thread Marcel Reutegger (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger resolved OAK-4802.
---
   Resolution: Fixed
Fix Version/s: 1.5.11

Added to trunk: http://svn.apache.org/r1760677

> Basic cache consistency test on exception
> -
>
> Key: OAK-4802
> URL: https://issues.apache.org/jira/browse/OAK-4802
> Project: Jackrabbit Oak
>  Issue Type: Test
>  Components: core, documentmk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
>Priority: Minor
> Fix For: 1.6, 1.5.11
>
>
> OAK-4774 and OAK-4793 aim to check if the cache behaviour of a DocumentStore 
> implementation when the underlying backend throws an exception even though 
> the operation succeeded. E.g. the response cannot be sent back because of a 
> network issue.
> This issue will provide the DocumentStore independent part of those tests.



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


[jira] [Created] (OAK-4803) Simplify the client side of the cold standby

2016-09-14 Thread Francesco Mari (JIRA)
Francesco Mari created OAK-4803:
---

 Summary: Simplify the client side of the cold standby
 Key: OAK-4803
 URL: https://issues.apache.org/jira/browse/OAK-4803
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: segment-tar
Reporter: Francesco Mari
Assignee: Francesco Mari
 Fix For: Segment Tar 0.0.12


The implementation of the cold standby client is overly and unnecessarily 
complicated. It would be way clearer to separate the client code in two major 
components: a simple client responsible for sending messages to and receive 
responses from the standby server, and the synchronization algorithm used to 
read data from the server and to save read data in the local {{FileStore}}.

Moreover, the client simple client could be further modularised by 
encapsulating request encoding, response decoding and message handling into 
their own Netty handlers.



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


[jira] [Commented] (OAK-4793) Check usage of DocumentStoreException in RDBDocumentStore

2016-09-14 Thread Marcel Reutegger (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15490225#comment-15490225
 ] 

Marcel Reutegger commented on OAK-4793:
---

I will move the test into a separate issue and refactor the test to make it 
independent of the actual DocumentStore implementation. See OAK-4802.

> Check usage of DocumentStoreException in RDBDocumentStore
> -
>
> Key: OAK-4793
> URL: https://issues.apache.org/jira/browse/OAK-4793
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: core, rdbmk
>Reporter: Marcel Reutegger
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.6
>
> Attachments: OAK-4793.diff, OAK-4793.diff
>
>
> With OAK-4771 the usage of DocumentStoreException was clarified in the 
> DocumentStore interface. The purpose of this task is to check usage of the 
> DocumentStoreException in RDBDocumentStore and make sure JDBC driver specific 
> exceptions are handled consistently and wrapped in a DocumentStoreException. 
> At the same time, cache consistency needs to be checked as well in case of a 
> driver exception. E.g. invalidate if necessary.



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


[jira] [Created] (OAK-4802) Basic cache consistency test on exception

2016-09-14 Thread Marcel Reutegger (JIRA)
Marcel Reutegger created OAK-4802:
-

 Summary: Basic cache consistency test on exception
 Key: OAK-4802
 URL: https://issues.apache.org/jira/browse/OAK-4802
 Project: Jackrabbit Oak
  Issue Type: Test
  Components: core, documentmk
Reporter: Marcel Reutegger
Assignee: Marcel Reutegger
Priority: Minor
 Fix For: 1.6


OAK-4774 and OAK-4793 aim to check if the cache behaviour of a DocumentStore 
implementation when the underlying backend throws an exception even though the 
operation succeeded. E.g. the response cannot be sent back because of a network 
issue.

This issue will provide the DocumentStore independent part of those tests.



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


[jira] [Resolved] (OAK-4801) Add test for DNS resolution failure in ClientIpFilter

2016-09-14 Thread Francesco Mari (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francesco Mari resolved OAK-4801.
-
   Resolution: Fixed
 Assignee: Francesco Mari  (was: Andrei Dulceanu)
Fix Version/s: (was: Segment Tar 0.0.20)
   Segment Tar 0.0.12

Committed with some minor modifications at r1760673.

> Add test for DNS resolution failure in ClientIpFilter
> -
>
> Key: OAK-4801
> URL: https://issues.apache.org/jira/browse/OAK-4801
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: segment-tar
>Reporter: Andrei Dulceanu
>Assignee: Francesco Mari
>Priority: Minor
> Fix For: Segment Tar 0.0.12
>
> Attachments: OAK-4801-01.patch
>
>
> Per [~frm]'s suggestion, we could refactor a bit {{ClientIpFilter}} and 
> extract the calls to {{InetAddress.getByName()}} into their own interface, 
> say {{InetAddressResolver}}. We could then write a test with bogus 
> implementation of {{InetAddressResolver}} and assert the behaviour of the 
> {{ClientIpFilter}}.



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


[jira] [Resolved] (OAK-4712) Publish S3DataStore stats in JMX MBean

2016-09-14 Thread Amit Jain (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amit Jain resolved OAK-4712.

Resolution: Fixed

Merged into 1.4 branch with http://svn.apache.org/viewvc?rev=1760666=rev

> Publish S3DataStore stats in JMX MBean
> --
>
> Key: OAK-4712
> URL: https://issues.apache.org/jira/browse/OAK-4712
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: blob
>Reporter: Matt Ryan
>Assignee: Amit Jain
> Fix For: 1.4.8, 1.5.11
>
> Attachments: OAK-4712.2.diff, OAK-4712.3.diff, OAK-4712.4.diff, 
> OAK-4712.5.diff, OAK-4712.7.patch, OAK-4712.8.patch, OAK_4712_6_Amit.patch
>
>
> This feature is to publish statistics about the S3DataStore via a JMX MBean.  
> There are two statistics suggested:
> * Indicate the number of files actively being synchronized from the local 
> cache into S3
> * Given a path to a local file, indicate whether synchronization of file into 
> S3 has completed



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


[jira] [Updated] (OAK-4801) Add test for DNS resolution failure in ClientIpFilter

2016-09-14 Thread Andrei Dulceanu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrei Dulceanu updated OAK-4801:
-
Description: Per [~frm]'s suggestion, we could refactor a bit 
{{ClientIpFilter}} and extract the calls to {{InetAddress.getByName()}} into 
their own interface, say {{InetAddressResolver}}. We could then write a test 
with bogus implementation of {{InetAddressResolver}} and assert the behaviour 
of the {{ClientIpFilter}}.  (was: Per [~frm]'s suggestion, we could refactor a 
bit ClientIpFilter and extract the calls to {{InetAddress.getByName()}} into 
their own interface, say {{InetAddressResolver}}. We could then write a test 
with bogus implementation of {{InetAddressResolver}} and assert the behaviour 
of the {{ClientIpFilter}}.)

> Add test for DNS resolution failure in ClientIpFilter
> -
>
> Key: OAK-4801
> URL: https://issues.apache.org/jira/browse/OAK-4801
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: segment-tar
>Reporter: Andrei Dulceanu
>Assignee: Andrei Dulceanu
>Priority: Minor
> Fix For: Segment Tar 0.0.20
>
> Attachments: OAK-4801-01.patch
>
>
> Per [~frm]'s suggestion, we could refactor a bit {{ClientIpFilter}} and 
> extract the calls to {{InetAddress.getByName()}} into their own interface, 
> say {{InetAddressResolver}}. We could then write a test with bogus 
> implementation of {{InetAddressResolver}} and assert the behaviour of the 
> {{ClientIpFilter}}.



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


[jira] [Updated] (OAK-4801) Add test for DNS resolution failure in ClientIpFilter

2016-09-14 Thread Andrei Dulceanu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrei Dulceanu updated OAK-4801:
-
Attachment: OAK-4801-01.patch

* Created {{AddressResolver}} and {{InetAddressResolver}} for better testing 
{{ClientIPFilter}} without an actual DNS lookup
* Solved hostname with dashes limitation in {{ClientIpFilter}}
* Added {{ClientIPFilterHostnameTest}} for testing filters with hostnames 
(including dashes)

[~frm], can you take a look at the patch, please?

/cc [~marett]

> Add test for DNS resolution failure in ClientIpFilter
> -
>
> Key: OAK-4801
> URL: https://issues.apache.org/jira/browse/OAK-4801
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: segment-tar
>Reporter: Andrei Dulceanu
>Assignee: Andrei Dulceanu
>Priority: Minor
> Fix For: Segment Tar 0.0.20
>
> Attachments: OAK-4801-01.patch
>
>
> Per [~frm]'s suggestion, we could refactor a bit ClientIpFilter and extract 
> the calls to {{InetAddress.getByName()}} into their own interface, say 
> {{InetAddressResolver}}. We could then write a test with bogus implementation 
> of {{InetAddressResolver}} and assert the behaviour of the {{ClientIpFilter}}.



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


[jira] [Updated] (OAK-4712) Publish S3DataStore stats in JMX MBean

2016-09-14 Thread Amit Jain (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amit Jain updated OAK-4712:
---
Fix Version/s: 1.5.11
   1.4.8

> Publish S3DataStore stats in JMX MBean
> --
>
> Key: OAK-4712
> URL: https://issues.apache.org/jira/browse/OAK-4712
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: blob
>Reporter: Matt Ryan
>Assignee: Amit Jain
> Fix For: 1.4.8, 1.5.11
>
> Attachments: OAK-4712.2.diff, OAK-4712.3.diff, OAK-4712.4.diff, 
> OAK-4712.5.diff, OAK-4712.7.patch, OAK-4712.8.patch, OAK_4712_6_Amit.patch
>
>
> This feature is to publish statistics about the S3DataStore via a JMX MBean.  
> There are two statistics suggested:
> * Indicate the number of files actively being synchronized from the local 
> cache into S3
> * Given a path to a local file, indicate whether synchronization of file into 
> S3 has completed



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


[jira] [Commented] (OAK-4712) Publish S3DataStore stats in JMX MBean

2016-09-14 Thread Amit Jain (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15489896#comment-15489896
 ] 

Amit Jain commented on OAK-4712:


Thanks a lot [~mattvryan]. 
I committed the modified version on trunk 
http://svn.apache.org/viewvc?rev=1760662=rev & 
http://svn.apache.org/viewvc?rev=1760661=rev
The main change is that the the S3DataStoreStats is now a osgi component and 
the NodeStore, S3DataStore instances are injected.

> Publish S3DataStore stats in JMX MBean
> --
>
> Key: OAK-4712
> URL: https://issues.apache.org/jira/browse/OAK-4712
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: blob
>Reporter: Matt Ryan
>Assignee: Amit Jain
> Fix For: 1.4.8, 1.5.11
>
> Attachments: OAK-4712.2.diff, OAK-4712.3.diff, OAK-4712.4.diff, 
> OAK-4712.5.diff, OAK-4712.7.patch, OAK-4712.8.patch, OAK_4712_6_Amit.patch
>
>
> This feature is to publish statistics about the S3DataStore via a JMX MBean.  
> There are two statistics suggested:
> * Indicate the number of files actively being synchronized from the local 
> cache into S3
> * Given a path to a local file, indicate whether synchronization of file into 
> S3 has completed



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