Example usage for org.apache.hadoop.util.bloom Key Key

List of usage examples for org.apache.hadoop.util.bloom Key Key

Introduction

In this page you can find the example usage for org.apache.hadoop.util.bloom Key Key.

Prototype

public Key(byte[] value) 

Source Link

Document

Constructor.

Usage

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;
            }
        }
    }
}