private int loadTokens(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_ENTRY_PREFIX) .getBytesForLookup(); int numTokens = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenData(state, v); ++numTokens; } } catch (DBException e) { throw new IOException(e); } finally { IOUtils.cleanupWithLogger(LOG, iterator); } return numTokens; }
private int loadTokens(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_ENTRY_PREFIX) .getBytesForLookup(); int numTokens = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenData(state, v); ++numTokens; } } catch (DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } return numTokens; }
private int loadTokens(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_ENTRY_PREFIX) .getBytesForLookup(); int numTokens = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenData(state, v); ++numTokens; } } catch (DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } return numTokens; }
@Override public TimelineEntities getEntities(String entityType, Long limit, Long windowStart, Long windowEnd, String fromId, Long fromTs, NameValuePair primaryFilter, Collection<NameValuePair> secondaryFilters, EnumSet<Field> fields, CheckAcl checkAcl) throws IOException { if (primaryFilter == null) { // if no primary filter is specified, prefix the lookup with // ENTITY_ENTRY_PREFIX return getEntityByTime(ENTITY_ENTRY_PREFIX, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } else { // if a primary filter is specified, prefix the lookup with // INDEXED_ENTRY_PREFIX + primaryFilterName + primaryFilterValue + // ENTITY_ENTRY_PREFIX byte[] base = KeyBuilder.newInstance().add(INDEXED_ENTRY_PREFIX) .add(primaryFilter.getName()) .add(GenericObjectMapper.write(primaryFilter.getValue()), true) .add(ENTITY_ENTRY_PREFIX).getBytesForLookup(); return getEntityByTime(base, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } }
@Override public TimelineEntities getEntities(String entityType, Long limit, Long windowStart, Long windowEnd, String fromId, Long fromTs, NameValuePair primaryFilter, Collection<NameValuePair> secondaryFilters, EnumSet<Field> fields, CheckAcl checkAcl) throws IOException { if (primaryFilter == null) { // if no primary filter is specified, prefix the lookup with // ENTITY_ENTRY_PREFIX return getEntityByTime(ENTITY_ENTRY_PREFIX, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } else { // if a primary filter is specified, prefix the lookup with // INDEXED_ENTRY_PREFIX + primaryFilterName + primaryFilterValue + // ENTITY_ENTRY_PREFIX byte[] base = KeyBuilder.newInstance().add(INDEXED_ENTRY_PREFIX) .add(primaryFilter.getName()) .add(GenericObjectMapper.write(primaryFilter.getValue()), true) .add(ENTITY_ENTRY_PREFIX).getBytesForLookup(); return getEntityByTime(base, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } }
@Override public TimelineEntity getEntity(String entityId, String entityType, EnumSet<Field> fields) throws IOException { Long revStartTime = getStartTimeLong(entityId, entityType); if (revStartTime == null) { return null; } byte[] prefix = KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(writeReverseOrderedLong(revStartTime)) .add(entityId).getBytesForLookup(); LeveldbIterator iterator = null; try { iterator = new LeveldbIterator(db); iterator.seek(prefix); return getEntity(entityId, entityType, revStartTime, fields, iterator, prefix, prefix.length); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } }
@Override public TimelineEntity getEntity(String entityId, String entityType, EnumSet<Field> fields) throws IOException { Long revStartTime = getStartTimeLong(entityId, entityType); if (revStartTime == null) { return null; } byte[] prefix = KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(writeReverseOrderedLong(revStartTime)) .add(entityId).getBytesForLookup(); LeveldbIterator iterator = null; try { iterator = new LeveldbIterator(db); iterator.seek(prefix); if (fields == null) { fields = EnumSet.allOf(Field.class); } return getEntity(entityId, entityType, revStartTime, fields, iterator, prefix, prefix.length); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanupWithLogger(LOG, iterator); } }
private int loadTokenMasterKeys(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_MASTER_KEY_ENTRY_PREFIX) .getBytesForLookup(); int numKeys = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenMasterKeyData(state, v); ++numKeys; } } finally { IOUtils.cleanup(LOG, iterator); } return numKeys; }
private int loadTokenMasterKeys(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_MASTER_KEY_ENTRY_PREFIX) .getBytesForLookup(); int numKeys = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenMasterKeyData(state, v); ++numKeys; } } finally { IOUtils.cleanupWithLogger(LOG, iterator); } return numKeys; }
@Override public TimelineEntity getEntity(String entityId, String entityType, EnumSet<Field> fields) throws IOException { Long revStartTime = getStartTimeLong(entityId, entityType); if (revStartTime == null) { return null; } byte[] prefix = KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(writeReverseOrderedLong(revStartTime)) .add(entityId).getBytesForLookup(); LeveldbIterator iterator = null; try { iterator = new LeveldbIterator(db); iterator.seek(prefix); return getEntity(entityId, entityType, revStartTime, fields, iterator, prefix, prefix.length); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } }
private int loadTokenMasterKeys(TimelineServiceState state) throws IOException { byte[] base = KeyBuilder.newInstance().add(TOKEN_MASTER_KEY_ENTRY_PREFIX) .getBytesForLookup(); int numKeys = 0; LeveldbIterator iterator = null; try { for (iterator = new LeveldbIterator(db), iterator.seek(base); iterator.hasNext(); iterator.next()) { byte[] k = iterator.peekNext().getKey(); if (!prefixMatches(base, base.length, k)) { break; } byte[] v = iterator.peekNext().getValue(); loadTokenMasterKeyData(state, v); ++numKeys; } } finally { IOUtils.cleanup(LOG, iterator); } return numKeys; }
@Override public TimelineEntities getEntities(String entityType, Long limit, Long windowStart, Long windowEnd, String fromId, Long fromTs, NameValuePair primaryFilter, Collection<NameValuePair> secondaryFilters, EnumSet<Field> fields, CheckAcl checkAcl) throws IOException { if (primaryFilter == null) { // if no primary filter is specified, prefix the lookup with // ENTITY_ENTRY_PREFIX return getEntityByTime(EMPTY_BYTES, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl, false); } else { // if a primary filter is specified, prefix the lookup with // INDEXED_ENTRY_PREFIX + primaryFilterName + primaryFilterValue + // ENTITY_ENTRY_PREFIX byte[] base = KeyBuilder.newInstance().add(primaryFilter.getName()) .add(fstConf.asByteArray(primaryFilter.getValue()), true) .getBytesForLookup(); return getEntityByTime(base, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl, true); } }
@Override public TimelineDomain getDomain(String domainId) throws IOException { LeveldbIterator iterator = null; try { byte[] prefix = KeyBuilder.newInstance() .add(DOMAIN_ENTRY_PREFIX).add(domainId).getBytesForLookup(); iterator = new LeveldbIterator(db); iterator.seek(prefix); return getTimelineDomain(iterator, domainId, prefix); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanupWithLogger(LOG, iterator); } }
@Override public TimelineDomain getDomain(String domainId) throws IOException { LeveldbIterator iterator = null; try { byte[] prefix = KeyBuilder.newInstance() .add(DOMAIN_ENTRY_PREFIX).add(domainId).getBytesForLookup(); iterator = new LeveldbIterator(db); iterator.seek(prefix); return getTimelineDomain(iterator, domainId, prefix); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } }
@Override public TimelineDomain getDomain(String domainId) throws IOException { LeveldbIterator iterator = null; try { byte[] prefix = KeyBuilder.newInstance() .add(DOMAIN_ENTRY_PREFIX).add(domainId).getBytesForLookup(); iterator = new LeveldbIterator(db); iterator.seek(prefix); return getTimelineDomain(iterator, domainId, prefix); } catch(DBException e) { throw new IOException(e); } finally { IOUtils.cleanup(LOG, iterator); } }
/** * Creates an entity marker, serializing ENTITY_ENTRY_PREFIX + entity type + * revstarttime + entity id. */ private static byte[] createEntityMarkerKey(String entityId, String entityType, byte[] revStartTime) throws IOException { return KeyBuilder.newInstance().add(entityType).add(revStartTime) .add(entityId).getBytesForLookup(); }
/** * Creates an entity marker, serializing ENTITY_ENTRY_PREFIX + entity type + * revstarttime + entity id. */ private static byte[] createEntityMarkerKey(String entityId, String entityType, byte[] revStartTime) throws IOException { return KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(revStartTime).add(entityId).getBytesForLookup(); }
@Override public TimelineDomain getDomain(String domainId) throws IOException { try (DBIterator iterator = domaindb.iterator()) { byte[] prefix = KeyBuilder.newInstance().add(domainId) .getBytesForLookup(); iterator.seek(prefix); return getTimelineDomain(iterator, domainId, prefix); } }
/** * Creates an entity marker, serializing ENTITY_ENTRY_PREFIX + entity type + * revstarttime + entity id. */ private static byte[] createEntityMarkerKey(String entityId, String entityType, byte[] revStartTime) throws IOException { return KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(revStartTime).add(entityId).getBytesForLookup(); }
/** * Creates an entity marker, serializing ENTITY_ENTRY_PREFIX + entity type + * revstarttime + entity id. */ private static byte[] createEntityMarkerKey(String entityId, String entityType, byte[] revStartTime) throws IOException { return KeyBuilder.newInstance().add(ENTITY_ENTRY_PREFIX) .add(entityType).add(revStartTime).add(entityId).getBytesForLookup(); }