@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> create(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<>(); try { GenericEntityWriter entityWriter = new GenericEntityWriter(entityDefinition); result.setIdentifiers(entityWriter.write(entities)); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(),e); throw new IOException(e); } audit.auditOperation(AUDIT_EVENT_CREATE, entities, null, entityDefinition); // added for jira: EAGLE-47 return result; }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> delete(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityDeleter writer = new JdbcEntityDeleterImpl(jdbcEntityDefinition); int num = writer.delete(entities); result.setSize(num); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> create(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<>(); try { GenericEntityWriter entityWriter = new GenericEntityWriter(entityDefinition); List<String> keys = entityWriter.write(entities); result.setIdentifiers(keys); result.setSize(keys.size()); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); throw new IOException(e); } audit.auditOperation(AUDIT_EVENT_CREATE, entities, null, entityDefinition); // added for jira: EAGLE-47 return result; }
@Test public void testWriteAndRead() throws IOException, QueryCompileException { // record insert init time final long startTime = System.currentTimeMillis(); // Write 1000 entities List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i = 0; while (i++ < 5) { entityList.add(newInstance())/**/; } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time long endTime = System.currentTimeMillis(); // init read in time range [startTime, endTime) RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[]{*}"); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime + 1000)); rawQuery.setPageSize(10000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 5); }
@Test public void testWrite1000Metrics() throws InterruptedException, IOException { // Write 1000 entities List<GenericMetricEntity> entityList = new ArrayList<>(); int i= 0; while( i++ < 1000){ entityList.add(newMetric()); Thread.sleep(1); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 1000); }
@Override public ModifyResult<String> delete(CompiledQuery query, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityDeleter writer = new JdbcEntityDeleterImpl(jdbcEntityDefinition); int num = writer.deleteByQuery(query); result.setSize(num); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Override public ModifyResult<String> deleteByID(List<String> ids, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { GenericDeleter deleter = new GenericDeleter(entityDefinition.getTable(), entityDefinition.getColumnFamily()); deleter.deleteByEncodedRowkeys(ids); result.setIdentifiers(ids); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); result.setSuccess(false); throw new IOException(ex); } audit.auditOperation(AUDIT_EVENT_DELETE, null, ids, entityDefinition); // added for jira: EAGLE-47 result.setSuccess(true); return result; }
@Test public void testWriteAndAggregation() throws IOException, QueryCompileException { // record insert init time final long startTime = System.currentTimeMillis(); List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i = 0; while (i++ < 5) { entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time long endTime = System.currentTimeMillis(); // init read in time range [startTime, endTime) RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[]<@cluster,@datacenter>{count,max(@field1),min(@field2),sum(@field3)}"); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime + 1000)); rawQuery.setPageSize(1000000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 1); } }
@Test public void testWrite() throws IOException { List<TestTimeSeriesAPIEntity> entityList = new ArrayList<TestTimeSeriesAPIEntity>(); int i= 0; while( i++ < 5){ TestTimeSeriesAPIEntity entity = newInstance(); entityList.add(entity); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() > 0); }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> update(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityUpdater updater = new JdbcEntityUpdaterImpl(jdbcEntityDefinition); int updated = updater.update(entities); result.setSize(updated); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Test public void testWriteAndAggregation() throws IOException, QueryCompileException { // record insert init time final long startTime = System.currentTimeMillis(); List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i = 0; while (i++ < 5) { entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time long endTime = System.currentTimeMillis(); // init read in time range [startTime, endTime) RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[]<@cluster,@datacenter>{count,max(@field1),min(@field2),sum(@field3)}"); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime + 1000)); rawQuery.setPageSize(1000000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 1); } }
@Test public void testWrite() throws IOException { List<TestTimeSeriesAPIEntity> entityList = new ArrayList<TestTimeSeriesAPIEntity>(); int i = 0; while (i++ < 5) { TestTimeSeriesAPIEntity entity = newInstance(); entityList.add(entity); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() > 0); }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> delete(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityDeleter writer = new JdbcEntityDeleterImpl(jdbcEntityDefinition); int num = writer.delete(entities); result.setSize(num); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Test public void testWriteAndRead() throws IOException, QueryCompileException { // record insert init time long startTime = System.currentTimeMillis(); // Write 1000 entities List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i= 0; while( i++ < 5){ entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time long endTime = System.currentTimeMillis(); // init read in time range [startTime, endTime) RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[]{*}"); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime+1000)); rawQuery.setPageSize(10000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 5); }
@Test public void testWriteAndUpdate() throws IOException, QueryCompileException { // Write 5 entities List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i= 0; while( i++ < 5){ entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time ModifyResult<String> queryResult = storage.update(entityList, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 5); }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> update(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityUpdater updater = new JdbcEntityUpdaterImpl(jdbcEntityDefinition); int updated = updater.update(entities); result.setSize(updated); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Test public void testWriteAndAggregation() throws IOException, QueryCompileException { // record insert init time long startTime = System.currentTimeMillis(); List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i= 0; while( i++ < 5){ entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time long endTime = System.currentTimeMillis(); // init read in time range [startTime, endTime) RawQuery rawQuery = new RawQuery(); rawQuery.setQuery("TestTimeSeriesAPIEntity[]<@cluster,@datacenter>{count,max(@field1),min(@field2),sum(@field3)}"); rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(startTime)); rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(endTime+1000)); rawQuery.setPageSize(1000000); CompiledQuery query = new CompiledQuery(rawQuery); QueryResult queryResult = storage.query(query, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 1); }
@Test public void testWriteAndUpdate() throws IOException, QueryCompileException { // Write 5 entities List<TestTimeSeriesAPIEntity> entityList = new ArrayList<>(); int i = 0; while (i++ < 5) { entityList.add(newInstance()); } ModifyResult<String> result = storage.create(entityList, entityDefinition); Assert.assertTrue(result.getSize() >= 5); // record insertion finish time ModifyResult<String> queryResult = storage.update(entityList, entityDefinition); Assert.assertTrue(queryResult.getSize() >= 5); }
@Override public ModifyResult<String> delete(CompiledQuery query, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityDeleter writer = new JdbcEntityDeleterImpl(jdbcEntityDefinition); int num = writer.deleteByQuery(query); result.setSize(num); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Override @SuppressWarnings("unchecked") public ModifyResult<String> deleteByID(List<String> ids, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityDeleter writer = new JdbcEntityDeleterImpl(jdbcEntityDefinition); int num = writer.deleteByIds(ids); result.setSize(num); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }