List of usage examples for org.apache.hadoop.util.bloom Key Key
public Key(byte[] value)
From source file:org.wso2.extension.siddhi.eventtable.rdbms.BloomFilterImpl.java
License:Open Source License
public void removeFromBloomFilters(Object[] obj) { for (int i = 0; i < attributeList.size(); i++) { if (obj[i] != null) { bloomFilters[i].delete(new Key(obj[i].toString().getBytes())); }//from w w w . j av a2 s . c om } }
From source file:org.wso2.extension.siddhi.eventtable.rdbms.RDBMSOperator.java
License:Open Source License
@Override public StreamEvent find(StateEvent matchingEvent, Object candidateEvents, StreamEventCloner candidateEventCloner) { Object[] obj;/*w w w. jav a 2 s. c om*/ if (expressionExecutorList != null) { obj = new Object[expressionExecutorList.size()]; int count = 0; for (ExpressionExecutor expressionExecutor : expressionExecutorList) { Object value = expressionExecutor.execute(matchingEvent); obj[count] = value; if (isBloomEnabled) { boolean mightContain = dbHandler.getBloomFilters()[attributeIndexArray[count]] .membershipTest(new Key(value.toString().getBytes())); if (!mightContain) { return null; } } count++; } } else { obj = new Object[] {}; } return dbHandler.selectEvent(obj, executionInfo); }
From source file:org.wso2.extension.siddhi.eventtable.rdbms.RDBMSOperator.java
License:Open Source License
@Override public boolean contains(StateEvent matchingEvent, Object candidateEvents) { Object[] obj;//from w w w . j ava 2 s . c o m if (expressionExecutorList != null) { obj = new Object[expressionExecutorList.size()]; int count = 0; for (ExpressionExecutor expressionExecutor : expressionExecutorList) { Object value = expressionExecutor.execute(matchingEvent); obj[count] = value; if (isBloomEnabled) { boolean mightContain = dbHandler.getBloomFilters()[attributeIndexArray[count]] .membershipTest(new Key(value.toString().getBytes())); if (!mightContain) { return false; } } count++; } } else { obj = new Object[] {}; } return dbHandler.checkExistence(obj, executionInfo); }
From source file:org.wso2.siddhi.bloomfilter.CBFBasedWindow.java
License:Open Source License
@Override public void addEvent(Event event) { if ((double) event.getData(windowFilterAttributeId) == filterValue) { if (eventQueue.size() == windowSize) { filter.delete(new Key(eventQueue.remove().getData(joinAttributeId).toString().getBytes())); }/*from w w w .j av a 2 s . co m*/ eventQueue.add(event); Key key = new Key(event.getData(joinAttributeId).toString().getBytes()); filter.add(key); } }
From source file:org.wso2.siddhi.bloomfilter.CBFBasedWindow.java
License:Open Source License
@Override public void joinEvent(Event stream2Event, int stream2EventJoinAttributeId, int joinWindowAttributeId) { Key key = new Key(stream2Event.getData(stream2EventJoinAttributeId).toString().getBytes()); boolean isMatch = false; if (filter.membershipTest(key)) { noOfMatches++;/*from w w w . j a v a 2s .c o m*/ Iterator<Event> iterator = eventQueue.iterator(); while (iterator.hasNext()) { Event evt = (Event) iterator.next(); if ((double) evt.getData( joinWindowAttributeId) == (double) (stream2Event.getData(stream2EventJoinAttributeId))) { noOfMatchedEvents++; isMatch = true; } } } if (isMatch) { actualMatches++; } }
From source file:org.wso2.siddhi.bloomfilter.OBFBasedWindow.java
License:Open Source License
@Override public void addEvent(Event event) { if ((double) event.getData(windowFilterAttributeId) == filterValue) { if (eventQueue.size() == windowSize) { eventQueue.remove();// w w w .jav a 2 s. c o m } eventQueue.add(event); if (filterSize[1] % nonOverLapEvents == 0) { addingFilters++; } if (filterSize[1] == windowSize) { for (int i = 0; i < (noOfFilters - 1); i++) { filters[i] = filters[i + 1]; filterSize[i] = filterSize[i + 1]; } filters[noOfFilters - 1] = new BloomFilter(optimalBloomFilterSize, noOfHash, Hash.MURMUR_HASH); filterSize[noOfFilters - 1] = 0; addingFilters--; } Key eventKey = new Key(event.getData(joinAttributeId).toString().getBytes()); for (int i = 1; i <= addingFilters; i++) { filters[i].add(eventKey); filterSize[i]++; } } }
From source file:org.wso2.siddhi.bloomfilter.OBFBasedWindow.java
License:Open Source License
@Override public void joinEvent(Event stream2Event, int stream2EventJoinAttributeId, int joinWindowAttributeId) { Key key = new Key(stream2Event.getData(stream2EventJoinAttributeId).toString().getBytes()); boolean isMatch = false; if (filters[0].membershipTest(key) || filters[1].membershipTest(key)) { noOfMatches++;/*from w ww. j av a2s . c o m*/ Iterator<Event> iterator = eventQueue.iterator(); while (iterator.hasNext()) { Event evt = (Event) iterator.next(); if ((double) evt.getData( joinWindowAttributeId) == (double) (stream2Event.getData(stream2EventJoinAttributeId))) { Event joinEvent = concatenateEvents(evt, stream2Event, stream2EventJoinAttributeId); noOfMatchedEvents++; isMatch = true; } } } if (isMatch) { actualMatches++; } }
From source file:org.wso2.siddhi.core.table.RDBMSEventTable.java
License:Open Source License
private synchronized void buildBloomFilters() { this.bloomFilters = new CountingBloomFilter[tableDefinition.getAttributeList().size()]; for (int i = 0; i < bloomFilters.length; i++) { // number of hashes: 4 bloomFilters[i] = new CountingBloomFilter(BLOOM_FILTER_SIZE, BLOOM_FILTER_HASH_FUNCTIONS, Hash.MURMUR_HASH);//from w w w .ja va2s. co m } Connection con = null; Statement stmt = null; try { con = dataSource.getConnection(); stmt = con.createStatement(); ResultSet results = stmt.executeQuery("SELECT * FROM " + fullTableName); int count = 0; while (results.next()) { count++; for (int i = 0; i < bloomFilters.length; i++) { switch (tableDefinition.getAttributeList().get(i).getType()) { case INT: bloomFilters[i].add(new Key(Integer.toString(results.getInt(i + 1)).getBytes())); break; case LONG: bloomFilters[i].add(new Key(Long.toString(results.getLong(i + 1)).getBytes())); break; case FLOAT: bloomFilters[i].add(new Key(Float.toString(results.getFloat(i + 1)).getBytes())); break; case DOUBLE: bloomFilters[i].add(new Key(Double.toString(results.getDouble(i + 1)).getBytes())); break; case STRING: bloomFilters[i].add(new Key(results.getString(i + 1).getBytes())); break; case BOOL: bloomFilters[i].add(new Key(Boolean.toString(results.getBoolean(i + 1)).getBytes())); break; } } } results.close(); } catch (Exception ex) { log.error(ex); } finally { cleanUpConnections(stmt, con); } }
From source file:org.wso2.siddhi.core.table.RDBMSEventTable.java
License:Open Source License
private void addToBloomFilters(List<Event> eventList) { for (Event event : eventList) { for (int i = 0; i < attributeList.size(); i++) { Attribute at = attributeList.get(i); switch (at.getType()) { case INT: bloomFilters[i].add(new Key(Integer.toString((Integer) event.getData(i)).getBytes())); break; case LONG: bloomFilters[i].add(new Key(Long.toString((Long) event.getData(i)).getBytes())); break; case FLOAT: bloomFilters[i].add(new Key(Float.toString((Float) event.getData(i)).getBytes())); break; case DOUBLE: bloomFilters[i].add(new Key(Double.toString((Double) event.getData(i)).getBytes())); break; case STRING: bloomFilters[i].add(new Key(event.getData(i).toString().getBytes())); break; case BOOL: bloomFilters[i].add(new Key(Boolean.toString((Boolean) event.getData(i)).getBytes())); break; }//w w w.j a v a 2 s . c o m } } }
From source file:org.wso2.siddhi.core.table.RDBMSEventTable.java
License:Open Source License
private void removeFromBloomFilters(List<Event> eventList) { for (Event event : eventList) { for (int i = 0; i < attributeList.size(); i++) { Attribute at = attributeList.get(i); switch (at.getType()) { case INT: bloomFilters[i]//w w w .jav a2 s . c o m .delete(new Key(ByteBuffer.allocate(4).putInt((Integer) event.getData(i)).array())); break; case LONG: bloomFilters[i] .delete(new Key(ByteBuffer.allocate(8).putLong((Long) event.getData(i)).array())); break; case FLOAT: bloomFilters[i] .delete(new Key(ByteBuffer.allocate(4).putFloat((Float) event.getData(i)).array())); break; case DOUBLE: bloomFilters[i] .delete(new Key(ByteBuffer.allocate(8).putDouble((Double) event.getData(i)).array())); break; case STRING: bloomFilters[i].delete(new Key(event.getData(i).toString().getBytes())); break; case BOOL: bloomFilters[i].delete(new Key(Boolean.toString((Boolean) event.getData(i)).getBytes())); break; } } } }