public Dtable toDtable(Kv.CreateTableInfo createTableInfo) { Dtable result = toDtable(createTableInfo.getStorageLocator()); result.setTotalFragments(createTableInfo.getFragmentCount()); result.setStatus(DtableStatus.NORMAL.name()); return result; }
@Override public void createIfAbsent(Kv.CreateTableInfo request, StreamObserver<Kv.CreateTableInfo> responseObserver) { LOGGER.info("Kv.createIfAbsent request received. request: {}", toStringUtils.toOneLineString(request)); grpcServerWrapper.wrapGrpcServerRunnable(responseObserver, () -> { StorageBasic.StorageLocator storageLocator = request.getStorageLocator(); List<Fragment> fragments = null; Dtable createResult = null; Dtable createTemplate = storageMetaClient.getTable(storageLocator.getNamespace(), storageLocator.getName()); // todo: add transaction control if (createTemplate == null) { createTemplate = typeConversionUtils.toDtable(request); createResult = storageMetaClient.createTable(createTemplate); if (createResult != null) { fragments = storageMetaClient.createFragmentsForTable(createResult); } } else { fragments = storageMetaClient.getFragmentsByTableId(createTemplate.getTableId()); createResult = createTemplate; } Kv.CreateTableInfo result = null; // todo: add more result check if (!fragments.isEmpty()) { // createResult = storageMetaClient.createTable(createTemplate); result = typeConversionUtils.toCreateTableInfo(createResult); } responseObserver.onNext(result); responseObserver.onCompleted(); }); }
Dtable dtable = storageMetaClient.getTable(typeConversionUtils.toDtable(finalStorageLocator)); int fragmentCount = finalStorageLocator.getFragment();