public long getWriteBufferSize() { return this.options.getBulkOptions().getMaxMemory(); }
public long getWriteBufferSize() { return this.options.getBulkOptions().getMaxMemory(); }
private synchronized static ResourceLimiter initializeResourceLimiter(BigtableOptions options) { BigtableInstanceName instanceName = options.getInstanceName(); String key = instanceName.toString(); ResourceLimiter resourceLimiter = resourceLimiterMap.get(key); if (resourceLimiter == null) { int maxInflightRpcs = options.getBulkOptions().getMaxInflightRpcs(); long maxMemory = options.getBulkOptions().getMaxMemory(); ResourceLimiterStats stats = ResourceLimiterStats.getInstance(instanceName); resourceLimiter = new ResourceLimiter(stats, maxMemory, maxInflightRpcs); BulkOptions bulkOptions = options.getBulkOptions(); if (bulkOptions.isEnableBulkMutationThrottling()) { resourceLimiter.throttle(bulkOptions.getBulkMutationRpcTargetMs()); } resourceLimiterMap.put(key, resourceLimiter); } return resourceLimiter; }
/** * <p>createBulkMutation.</p> * * @param tableName a {@link com.google.cloud.bigtable.grpc.BigtableTableName} object. * @return a {@link com.google.cloud.bigtable.grpc.async.BulkMutation} object. */ public BulkMutation createBulkMutation(BigtableTableName tableName) { return new BulkMutation( tableName, throttlingDataClient, BigtableSessionSharedThreadPools.getInstance().getRetryExecutor(), options.getBulkOptions()); }
/** * <p>createBulkRead.</p> * * @param tableName a {@link com.google.cloud.bigtable.grpc.BigtableTableName} object. * @return a {@link com.google.cloud.bigtable.grpc.async.BulkRead} object. */ public BulkRead createBulkRead(BigtableTableName tableName) { return new BulkRead(dataClient, tableName, options.getBulkOptions().getBulkMaxRowKeyCount(), BigtableSessionSharedThreadPools.getInstance().getBatchThreadPool() ); }
static SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> enableBulkApiConfigurator( final @Nullable SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> userConfigurator) { return optionsBuilder -> { if (userConfigurator != null) { optionsBuilder = userConfigurator.apply(optionsBuilder); } return optionsBuilder.setBulkOptions( optionsBuilder.build().getBulkOptions().toBuilder().setUseBulkApi(true).build()); }; }
@Test public void testWriteWithBigTableOptionsSetsBulkOptionsAndRetryOptions() { final int maxInflightRpcs = 1; final int initialBackoffMillis = -1; BigtableOptions.Builder optionsBuilder = BIGTABLE_OPTIONS.toBuilder(); BulkOptions.Builder bulkOptionsBuilder = new BulkOptions.Builder(); bulkOptionsBuilder.setMaxInflightRpcs(maxInflightRpcs); RetryOptions.Builder retryOptionsBuilder = new RetryOptions.Builder(); retryOptionsBuilder.setInitialBackoffMillis(initialBackoffMillis); optionsBuilder .setBulkOptions(bulkOptionsBuilder.build()) .setRetryOptions(retryOptionsBuilder.build()); BigtableIO.Write write = BigtableIO.write().withBigtableOptions(optionsBuilder.build()); BigtableOptions options = write.getBigtableOptions(); assertEquals(true, options.getBulkOptions().useBulkApi()); assertEquals(maxInflightRpcs, options.getBulkOptions().getMaxInflightRpcs()); assertEquals(initialBackoffMillis, options.getRetryOptions().getInitialBackoffMillis()); assertThat( options.getBulkOptions(), Matchers.equalTo(bulkOptionsBuilder.setUseBulkApi(true).build())); assertThat(options.getRetryOptions(), Matchers.equalTo(retryOptionsBuilder.build())); }
@Test public void testGetBigtableServiceWithConfigurator() { SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder> configurator = (SerializableFunction<BigtableOptions.Builder, BigtableOptions.Builder>) input -> input .setInstanceId(INSTANCE_ID.get() + INSTANCE_ID.get()) .setProjectId(PROJECT_ID.get() + PROJECT_ID.get()) .setBulkOptions(new BulkOptions.Builder().setUseBulkApi(true).build()); BigtableService service = config .withProjectId(PROJECT_ID) .withInstanceId(INSTANCE_ID) .withBigtableOptionsConfigurator(configurator) .getBigtableService(PipelineOptionsFactory.as(GcpOptions.class)); assertEquals(PROJECT_ID.get(), service.getBigtableOptions().getProjectId()); assertEquals(INSTANCE_ID.get(), service.getBigtableOptions().getInstanceId()); assertEquals(true, service.getBigtableOptions().getBulkOptions().useBulkApi()); }