QuotaSettingsFactory.throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)) .get(); admin.setQuota( QuotaSettingsFactory.throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES)) .get(); admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true)).get();
QuotaSettingsFactory.throttleUser("user", ThrottleType.WRITE_NUMBER, 100, TimeUnit.MINUTES));
@Test public void testUserNamespaceReadAndWriteThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); final String NAMESPACE = "default"; // Add 6req/min limit for read request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 read requests and have no limit for write request assertEquals(6, doGets(60, tables[0])); assertEquals(60, doPuts(60, tables[0])); waitMinuteQuota(); // Add 6req/min limit for write request, too admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.WRITE_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 read requests and at max 6 write requests assertEquals(6, doGets(60, tables[0])); assertEquals(6, doPuts(60, tables[0])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, NAMESPACE)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserGlobalReadAndWriteThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit for read request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // not limit for write request and should execute at max 6 read requests assertEquals(60, doPuts(60, tables)); assertEquals(6, doGets(100, tables)); waitMinuteQuota(); // Add 6req/min limit for write request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.WRITE_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // should execute at max 6 read requests and at max 6 write write requests assertEquals(6, doGets(100, tables)); assertEquals(6, doPuts(60, tables)); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
QuotaSettingsFactory.throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES)) .get(); admin.setQuota(QuotaSettingsFactory.throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES)).get(); admin.setQuota(QuotaSettingsFactory.throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES)).get();
@Test public void testUserNamespaceThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); final String NAMESPACE = "default"; // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 requests on tables[0] and have no limit on tables[1] assertEquals(6, doPuts(100, tables[0])); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables[1])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, NAMESPACE)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserGlobalThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // should execute at max 6 requests assertEquals(6, doPuts(100, tables)); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables)); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserTableThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, TABLE_NAMES[0], ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 requests on tables[0] and have no limit on tables[1] assertEquals(6, doPuts(100, tables[0])); assertEquals(30, doPuts(30, tables[1])); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables[0])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, TABLE_NAMES[0])); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
.throttleUser(userName, TABLE_NAMES[0], ThrottleType.WRITE_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); .throttleUser(userName, TABLE_NAMES[0], ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]);
.throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));
.throttleUser(userName, TABLE_NAMES[0], ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 12, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[1], TABLE_NAMES[2]);
QuotaSettingsFactory.throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES)); admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));
.throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES)); .throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES)); .throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES));
scanner.close(); qs = QuotaSettingsFactory.throttleUser("hbasebook", "bar", // co QuotaExample-5-Quota2 Configure another quota settings record, this time on the namespace level, and assign it. ThrottleType.REQUEST_NUMBER, 5, TimeUnit.SECONDS); admin.setQuota(qs);
.throttleUser(userName, TABLE_NAMES[2], ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[2]); assertEquals(30, doGets(30, tables[0]));
@Test public void testUserGlobalReadAndWriteThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit for read request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // not limit for write request and should execute at max 6 read requests assertEquals(60, doPuts(60, tables)); assertEquals(6, doGets(100, tables)); waitMinuteQuota(); // Add 6req/min limit for write request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.WRITE_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // should execute at max 6 read requests and at max 6 write write requests assertEquals(6, doGets(100, tables)); assertEquals(6, doPuts(60, tables)); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserNamespaceReadAndWriteThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); final String NAMESPACE = "default"; // Add 6req/min limit for read request admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 read requests and have no limit for write request assertEquals(6, doGets(60, tables[0])); assertEquals(60, doPuts(60, tables[0])); waitMinuteQuota(); // Add 6req/min limit for write request, too admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.WRITE_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 read requests and at max 6 write requests assertEquals(6, doGets(60, tables[0])); assertEquals(6, doPuts(60, tables[0])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, NAMESPACE)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserGlobalThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES); // should execute at max 6 requests assertEquals(6, doPuts(100, tables)); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables)); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserNamespaceThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); final String NAMESPACE = "default"; // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, NAMESPACE, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 requests on tables[0] and have no limit on tables[1] assertEquals(6, doPuts(100, tables[0])); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables[1])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, NAMESPACE)); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }
@Test public void testUserTableThrottle() throws Exception { final Admin admin = TEST_UTIL.getAdmin(); final String userName = User.getCurrent().getShortName(); // Add 6req/min limit admin.setQuota(QuotaSettingsFactory .throttleUser(userName, TABLE_NAMES[0], ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES)); triggerUserCacheRefresh(false, TABLE_NAMES[0]); // should execute at max 6 requests on tables[0] and have no limit on tables[1] assertEquals(6, doPuts(100, tables[0])); assertEquals(30, doPuts(30, tables[1])); // wait a minute and you should get other 6 requests executed waitMinuteQuota(); assertEquals(6, doPuts(100, tables[0])); // Remove all the limits admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, TABLE_NAMES[0])); triggerUserCacheRefresh(true, TABLE_NAMES); assertEquals(60, doPuts(60, tables)); assertEquals(60, doGets(60, tables)); }