public ServiceHolder(BufferAllocator allocator, Provider<Iterable<NodeEndpoint>> nodeProvider, PDFSMode mode, String name) throws Exception{
this.allocator = allocator.newChildAllocator(name, 0, Long.MAX_VALUE);
pool = new CloseableThreadPool(name);
fabric = new FabricServiceImpl(HOSTNAME, 9970, true, THREAD_COUNT, this.allocator, RESERVATION,
MAX_ALLOCATION, TIMEOUT, pool);
fabric.start();
endpoint = NodeEndpoint.newBuilder()
.setAddress(fabric.getAddress()).setFabricPort(fabric.getPort())
.setRoles(Roles.newBuilder().setJavaExecutor(mode == PDFSMode.DATA))
.build();
service = new PDFSService(DirectProvider.wrap((FabricService) fabric), DirectProvider.wrap(endpoint), nodeProvider, DremioTest.DEFAULT_SABOT_CONFIG, this.allocator, mode);
service.start();
fileSystem = service.createFileSystem();
}