@Test(expected = IllegalArgumentException.class) public void testSpecifyBothRateAndRateLimiter() { RemoteTableDescriptor desc = new RemoteTableDescriptor("1"); desc.withReadFunction(createMockTableReadFunction()); desc.withReadRateLimit(100); desc.withRateLimiter(createMockRateLimiter(), null, null); desc.toConfig(new MapConfig()); }
addTableConfig(READ_FN, SerdeUtils.serialize("read function", readFn), tableConfig); addTableConfig(WRITE_FN, SerdeUtils.serialize("write function", writeFn), tableConfig); throw new SamzaException("Failed to create default rate limiter", ex); addTableConfig(RATE_LIMITER, SerdeUtils.serialize("rate limiter", defaultRateLimiter), tableConfig); } else if (rateLimiter != null) { addTableConfig(RATE_LIMITER, SerdeUtils.serialize("rate limiter", rateLimiter), tableConfig); addTableConfig(READ_CREDIT_FN, SerdeUtils.serialize("read credit function", readCreditFn), tableConfig); addTableConfig(WRITE_CREDIT_FN, SerdeUtils.serialize("write credit function", writeCreditFn), tableConfig); addTableConfig(READ_RETRY_POLICY, SerdeUtils.serialize("read retry policy", readRetryPolicy), tableConfig); addTableConfig(WRITE_RETRY_POLICY, SerdeUtils.serialize("write retry policy", writeRetryPolicy), tableConfig); addTableConfig(ASYNC_CALLBACK_POOL_SIZE, String.valueOf(asyncCallbackPoolSize), tableConfig);
@Test(expected = NullPointerException.class) public void testSerializeNullReadFunction() { RemoteTableDescriptor desc = new RemoteTableDescriptor("1"); Map<String, String> tableConfig = desc.toConfig(new MapConfig()); Assert.assertTrue(tableConfig.containsKey(RemoteTableDescriptor.READ_FN)); }
private void doTestDeserializeReadFunctionAndLimiter(boolean rateOnly, boolean rlGets, boolean rlPuts) { int numRateLimitOps = (rlGets ? 1 : 0) + (rlPuts ? 1 : 0); RemoteTableDescriptor<String, String> desc = new RemoteTableDescriptor("1") .withReadFunction(createMockTableReadFunction()) .withReadRetryPolicy(new TableRetryPolicy().withRetryPredicate((ex) -> false)) .withWriteFunction(createMockTableWriteFunction()) .withAsyncCallbackExecutorPoolSize(10); desc.withReadRateLimit(1000); desc.withWriteRateLimit(2000); desc.withRateLimiter(rateLimiter, new CountingCreditFunction(), new CountingCreditFunction()); RemoteTableProvider provider = new RemoteTableProvider(desc.getTableId()); provider.init(createMockContext(desc)); Table table = provider.getTable();
private void doTestSerialize(RateLimiter rateLimiter, TableRateLimiter.CreditFunction readCredFn, TableRateLimiter.CreditFunction writeCredFn) { String tableId = "1"; RemoteTableDescriptor desc = new RemoteTableDescriptor(tableId) .withReadFunction(createMockTableReadFunction()) .withWriteFunction(createMockTableWriteFunction()); if (rateLimiter != null) { desc.withRateLimiter(rateLimiter, readCredFn, writeCredFn); } else { desc.withReadRateLimit(100); desc.withWriteRateLimit(200); } Map<String, String> tableConfig = desc.toConfig(new MapConfig()); assertExists(RemoteTableDescriptor.RATE_LIMITER, tableId, tableConfig); Assert.assertEquals(readCredFn != null, tableConfig.containsKey(JavaTableConfig.buildKey(tableId, RemoteTableDescriptor.READ_CREDIT_FN))); Assert.assertEquals(writeCredFn != null, tableConfig.containsKey(JavaTableConfig.buildKey(tableId, RemoteTableDescriptor.WRITE_CREDIT_FN))); }
tableDescriptor = new RemoteTableDescriptor<>(TEST_TABLE_ID + "-" + ioName.replace(".", "-").replace("$", "-")) .withReadFunction(new InMemoryReadFunction()) .withWriteFunction(new InMemoryWriteFunction()); } else if (sourceComponents[systemIdx].equals(TEST_REMOTE_STORE_SYSTEM)) { tableDescriptor = new RemoteTableDescriptor<>(TEST_TABLE_ID + "-" + ioName.replace(".", "-").replace("$", "-")) .withReadFunction(new InMemoryReadFunction()); } else {
@Test public void testSerializeNullWriteFunction() { String tableId = "1"; RemoteTableDescriptor desc = new RemoteTableDescriptor(tableId) .withReadFunction(createMockTableReadFunction()); Map<String, String> tableConfig = desc.toConfig(new MapConfig()); assertExists(RemoteTableDescriptor.READ_FN, tableId, tableConfig); assertEquals(null, RemoteTableDescriptor.WRITE_FN, tableId, tableConfig); }