You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Anonymous Coward (Code Review)" <ge...@cloudera.org> on 2018/07/30 09:17:53 UTC

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

jinxing6042@126.com has uploaded this change for review. ( http://gerrit.cloudera.org:8080/11077


Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................

[KUDU-2521] Java Implementation for BloomFilter

Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
---
A java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
A java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
3 files changed, 673 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/11077/1
-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 1
Gerrit-Owner: jinxing6042@126.com

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Anonymous Coward (Code Review)" <ge...@cloudera.org>.
Hello Dan Burkert, Kudu Jenkins, Grant Henke, Todd Lipcon, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/11077

to look at the new patch set (#4).

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................

[KUDU-2521] Java Implementation for BloomFilter

Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
---
A java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
A java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
3 files changed, 697 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/11077/4
-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Todd Lipcon (Code Review)" <ge...@cloudera.org>.
Todd Lipcon has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 1:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@22
PS1, Line 22: public class BloomFilter {
Is this meant to be part of the public API or an internal-facing class? I'm guessing that consumers of the kudu client need to actually construct the bloom filter in some way, so this is public, right?

Either way, we should add an InterfaceAudience and InterfaceStability annotation.


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@40
PS1, Line 40: genBloomKeyProbe
this pattern seems like it will create a new object for each lookup in the bloom filter. Although these are short-lived objects, I'm not sure if we can count on them being removed by escape analysis. Maybe instead we can make BloomKeyProbe a reusable mutable object?


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@86
PS1, Line 86: CharsetUtil
I think we can use StandardCharsets from java 7 here


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@139
PS1, Line 139: CityHash
I'm curious why the decision to use CityHash here? We are using murmur hashes for partitioning, and internal to the tserver using CityHash for blooms on PK lookups.

Is there an advantage to this bloom filter matching the hash used by the blooms on the server side? I can't quite see how it would be used. If the choice of hash is arbitrary, maybe better to just stick with Murmur since we already included the library? Or maybe we can benchmark some alternatives for this use case and see which is best? I think performance on small strings is most important, even if the hash function is lower "quality". See https://bigdata.uni-saarland.de/publications/p249-richter.pdf for some interesting discussion

Is there any way we can use the bloom filters to eliminate entire partitions while scanning if the bloom is calculated on the partitioning key? I'm not sure if the bloom could be used directly, but I wonder if this would be useful for joins in some cases (eg by just calculating a simple bitmap of matching partitions based on knowledge of the hash partitioning on the build side of the join)



-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 1
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Mon, 30 Jul 2018 16:05:08 +0000
Gerrit-HasComments: Yes

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Todd Lipcon (Code Review)" <ge...@cloudera.org>.
Todd Lipcon has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 4:

Did you forget to "publish" responses to the comments? I'm curious to discuss more the choice of hash functions, etc, per my comment on patch #1


-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Mon, 06 Aug 2018 18:45:09 +0000
Gerrit-HasComments: No

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Grant Henke (Code Review)" <ge...@cloudera.org>.
Grant Henke has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 2:

I think the changes in https://gerrit.cloudera.org/#/c/11126/ should likely be squashed in to this change.


-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 2
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Mon, 06 Aug 2018 17:40:56 +0000
Gerrit-HasComments: No

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has abandoned this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Abandoned

Closing in favor of https://gerrit.cloudera.org/c/11333/
-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: abandon
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: jinxing6042@126.com

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 4:

(5 comments)

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@139
PS1, Line 139: obe.mixH
> I think it's necessary to make the hashing consistent with the blooms on PK lookups in TServer.

Could you expand on why it's necessary to make the PK bloom filters use the same hash function as this predicate bloom filter?  Off the top of my head I'm not sure what the necessity or even upside of doing that would be (besides code re-use, but as pointed out we could get code-reuse in the client if we went with murmur).  We currently have the ability (in theory) of being flexible about what hash function we use, which means we can switch out city hash in the future if we want.  I'd be reluctant to lose that flexibility because we add a new mostly unrelated public API.

Related note - what do you think about making this API be 'hash agile' from the start?  E.g. build in a hash algorithm selector from the start, using feature flags or something similar.  It would be fine to have just a single implementation (murmur or city) at first.


http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@29
PS4, Line 29: public class BloomFilter {
The public API surface are of this class is much bigger than necessary. In particular the membership methods and the BloomKeyProbe class aren't necessary.  I'm thinking something along these lines (modeled more closely on the Guava BloomFilter class):

public class BloomFilter {

  public BloomFilter(int expectedInsertions, double fpp) { .. }

  public BloomFilter(int size, double fpp) { .. }

  public put(int value) { .. }

  public put(long value) { .. }

  ...

}


http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@57
PS4, Line 57:       bytes = new byte[]{1};
Lots of shortlived allocations happening here.  Given that the new hash API appears to take offset and len parameters, maybe the BloomFilter could allocate a length 8 byte[] upfront and just use that?


http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java
File java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java:

http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java@18
PS4, Line 18: package org.apache.kudu.util;
Was this implementation copied from somewhere?  Please include a comment if so, and retain the original header.


http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/4/java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java@38
PS4, Line 38: ,n
missing space here and below



-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: jinxing6042@126.com
Gerrit-Comment-Date: Tue, 14 Aug 2018 23:58:44 +0000
Gerrit-HasComments: Yes

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Anonymous Coward (Code Review)" <ge...@cloudera.org>.
jinxing6042@126.com has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@139
PS1, Line 139: obe.mixH
> > I think it's necessary to make the hashing consistent with the blooms on 
I think my previous understanding is not correct. Yes, Dan~ there is no necessity to make the PK bloom filters use the same hash function as this predicate bloom filter.

I re-write the BloomFIlter at: https://gerrit.cloudera.org/#/c/11333/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java

In current change:
1. User has flexibility to define hash function and Murmur2 by default;
2. I removed some unrelated public API and did some renaming (some of the interface used for test is still kept);

Note that Spark internal is using Murmur3 by default, which is different with Kudu internal.

I removed the test at https://gerrit.cloudera.org/#/c/11333/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java, please take a look  at the structure and whether the interface is appropriate. I will re-write the test later.



-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: jinxing6042@126.com
Gerrit-Comment-Date: Sun, 26 Aug 2018 15:52:45 +0000
Gerrit-HasComments: Yes

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 4:

> Patch Set 4:
> 
> (1 comment)

Just left a review, thanks!  Will close this one out in favor of the new patchset.


-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 4
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: jinxing6042@126.com
Gerrit-Comment-Date: Wed, 29 Aug 2018 22:36:19 +0000
Gerrit-HasComments: No

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Anonymous Coward (Code Review)" <ge...@cloudera.org>.
jinxing6042@126.com has posted comments on this change. ( http://gerrit.cloudera.org:8080/11077 )

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................


Patch Set 2:

(6 comments)

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@22
PS1, Line 22: public class BloomFilter {
> Is this meant to be part of the public API or an internal-facing class? I'm
True, I updated and added some annotation.


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@40
PS1, Line 40: genBloomKeyProbe
> this pattern seems like it will create a new object for each lookup in the 
True,  I updated in current change.


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@86
PS1, Line 86: CharsetUtil
> I think we can use StandardCharsets from java 7 here
Updated


http://gerrit.cloudera.org:8080/#/c/11077/1/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@139
PS1, Line 139: CityHash
> I'm curious why the decision to use CityHash here? We are using murmur hash
Yes, in Kudu kernel, we are using Murmur2 for partitioning and CityHash for blooms on PK lookups. The hashing added in this change is only used for bloom filter. So I think it's necessary to make the hashing consistent with the blooms on PK lookups in TServer.
I was also looking forward to use the bloom filters to eliminate entire partitions. But it was hard. In scenario of Join, the small table used to generate BloomFilter is not always small enough, thus hard to eliminate the entire partition.


http://gerrit.cloudera.org:8080/#/c/11077/3/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
File java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java:

http://gerrit.cloudera.org:8080/#/c/11077/3/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@28
PS3, Line 28:   public BloomFilter(BloomFilterSizing sizing) {
Added some annotations


http://gerrit.cloudera.org:8080/#/c/11077/3/java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java@169
PS3, Line 169: 
Yes, in Kudu kernel, we are using Murmur2 for partitioning and CityHash for blooms on PK lookups. The hashing added in this change is only used for bloom filter. So I think it's necessary to make the hashing consistent with the blooms on PK lookups in TServer.
I was also looking forward to use the bloom filters to eliminate entire partitions. But it was hard. In scenario of Join, the small table used to generate BloomFilter is not always small enough, thus hard to eliminate the entire partition.



-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 2
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: jinxing6042@126.com
Gerrit-Comment-Date: Mon, 13 Aug 2018 09:59:24 +0000
Gerrit-HasComments: Yes

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Anonymous Coward (Code Review)" <ge...@cloudera.org>.
Hello Dan Burkert, Kudu Jenkins, Grant Henke, Todd Lipcon, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/11077

to look at the new patch set (#3).

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................

[KUDU-2521] Java Implementation for BloomFilter

Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
---
A java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
A java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
3 files changed, 696 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/11077/3
-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 3
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>

[kudu-CR] [KUDU-2521] Java Implementation for BloomFilter

Posted by "Anonymous Coward (Code Review)" <ge...@cloudera.org>.
Hello Dan Burkert, Kudu Jenkins, Grant Henke, Todd Lipcon, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/11077

to look at the new patch set (#2).

Change subject: [KUDU-2521] Java Implementation for BloomFilter
......................................................................

[KUDU-2521] Java Implementation for BloomFilter

Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
---
A java/kudu-client/src/main/java/org/apache/kudu/util/BloomFilter.java
A java/kudu-client/src/main/java/org/apache/kudu/util/CityHash.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestBloomFilter.java
3 files changed, 673 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/77/11077/2
-- 
To view, visit http://gerrit.cloudera.org:8080/11077
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I50c5dce4d24707c068c5ab94e5d311b12b3251b8
Gerrit-Change-Number: 11077
Gerrit-PatchSet: 2
Gerrit-Owner: jinxing6042@126.com
Gerrit-Reviewer: Dan Burkert <da...@apache.org>
Gerrit-Reviewer: Grant Henke <gr...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>