@Override public String getCluster(boolean useCache, String table) { if (useCache) { Map<String, String> map = _tableToClusterCache.get(); String cluster = map.get(table); if (cluster == null) { return null; } else { return cluster; } } LOG.debug("trace getCluster"); List<String> clusterList = getClusterList(); for (String cluster : clusterList) { try { Stat stat = _zk.exists(ZookeeperPathConstants.getTablePath(cluster, table), false); if (stat != null) { return cluster; } } catch (KeeperException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } } return null; }
@Override public TableDescriptor getTableDescriptor(boolean useCache, String cluster, String table) { if (useCache) { TableDescriptor tableDescriptor = _tableDescriptorCache.get(table); if (tableDescriptor != null) { return tableDescriptor; } } LOG.debug("trace getTableDescriptor"); TableDescriptor tableDescriptor = new TableDescriptor(); try { if (_zk.exists(ZookeeperPathConstants.getTableEnabledPath(cluster, table), false) == null) { tableDescriptor.isEnabled = false; } else { tableDescriptor.isEnabled = true; } tableDescriptor.shardCount = Integer.parseInt( new String(getData(ZookeeperPathConstants.getTableShardCountPath(cluster, table)))); tableDescriptor.tableUri = new String(getData(ZookeeperPathConstants.getTableUriPath(cluster, table))); tableDescriptor.compressionClass = new String(getData(ZookeeperPathConstants.getTableCompressionCodecPath(cluster, table))); tableDescriptor.compressionBlockSize = Integer.parseInt( new String( getData( ZookeeperPathConstants.getTableCompressionBlockSizePath(cluster, table)))); tableDescriptor.analyzerDefinition = fromBytes( getData(ZookeeperPathConstants.getTablePath(cluster, table)), AnalyzerDefinition.class); tableDescriptor.blockCaching = isBlockCacheEnabled(cluster, table); tableDescriptor.blockCachingFileTypes = getBlockCacheFileTypes(cluster, table); tableDescriptor.name = table; tableDescriptor.columnPreCache = fromBytes( getData(ZookeeperPathConstants.getTableColumnsToPreCache(cluster, table)), ColumnPreCache.class); byte[] data = getData(ZookeeperPathConstants.getTableSimilarityPath(cluster, table)); if (data != null) { tableDescriptor.similarityClass = new String(data); } } catch (KeeperException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } tableDescriptor.cluster = cluster; _tableDescriptorCache.put(table, tableDescriptor); return tableDescriptor; }
@Override public boolean exists(boolean useCache, String cluster, String table) { if (useCache) { Map<String, String> map = _tableToClusterCache.get(); if (map.containsKey(table)) { return true; } else { return false; } } LOG.debug("trace exists"); try { if (_zk.exists(ZookeeperPathConstants.getTablePath(cluster, table), false) == null) { return false; } return true; } catch (KeeperException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } }