incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [2/2] git commit: Changing the location of the layout information so that when the table is removed from Blur the layout is automatically removed.
Date Sun, 16 Feb 2014 13:46:30 GMT
Changing the location of the layout information so that when the table is removed from Blur
the layout is automatically removed.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/c47af820
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/c47af820
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/c47af820

Branch: refs/heads/apache-blur-0.2
Commit: c47af820ebcb0a3de0012a471e3b0058f06b7db5
Parents: a7311fc
Author: Aaron McCurry <amccurry@gmail.com>
Authored: Sun Feb 16 08:46:13 2014 -0500
Committer: Aaron McCurry <amccurry@gmail.com>
Committed: Sun Feb 16 08:46:13 2014 -0500

----------------------------------------------------------------------
 .../clusterstatus/ZookeeperClusterStatus.java   |  4 ---
 .../indexserver/DistributedIndexServer.java     |  9 +++---
 .../MasterBasedDistributedLayoutFactory.java    | 32 +++++++-------------
 .../org/apache/blur/server/TableContext.java    |  5 +++
 .../java/org/apache/blur/thrift/TableAdmin.java |  8 ++---
 5 files changed, 24 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c47af820/blur-core/src/main/java/org/apache/blur/manager/clusterstatus/ZookeeperClusterStatus.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/manager/clusterstatus/ZookeeperClusterStatus.java
b/blur-core/src/main/java/org/apache/blur/manager/clusterstatus/ZookeeperClusterStatus.java
index 64ee9a0..c55f174 100644
--- a/blur-core/src/main/java/org/apache/blur/manager/clusterstatus/ZookeeperClusterStatus.java
+++ b/blur-core/src/main/java/org/apache/blur/manager/clusterstatus/ZookeeperClusterStatus.java
@@ -35,7 +35,6 @@ import org.apache.blur.BlurConfiguration;
 import org.apache.blur.log.Log;
 import org.apache.blur.log.LogFactory;
 import org.apache.blur.lucene.search.FairSimilarity;
-import org.apache.blur.manager.indexserver.MasterBasedDistributedLayoutFactory;
 import org.apache.blur.thirdparty.thrift_0_9_0.TDeserializer;
 import org.apache.blur.thirdparty.thrift_0_9_0.TException;
 import org.apache.blur.thirdparty.thrift_0_9_0.TSerializer;
@@ -635,12 +634,9 @@ public class ZookeeperClusterStatus extends ClusterStatus {
       }
       String uri = tableDescriptor.getTableUri();
       BlurUtil.removeAll(_zk, blurTablePath);
-      MasterBasedDistributedLayoutFactory.removeTable(_zk,
-          ZookeeperPathConstants.getShardLayoutPathTableLayout(cluster), table);
       if (deleteIndexFiles) {
         BlurUtil.removeIndexFiles(uri);
       }
-
     } catch (IOException e) {
       throw new RuntimeException(e);
     } catch (InterruptedException e) {

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c47af820/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
b/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
index 53528bc..9f4fd20 100644
--- a/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
+++ b/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
@@ -184,7 +184,7 @@ public class DistributedIndexServer extends AbstractDistributedIndexServer
{
       closeAllIndexes();
       _timerCacheFlush.purge();
       _timerCacheFlush.cancel();
-
+      _watchOnlineShards.close();
       _timerTableWarmer.purge();
       _timerTableWarmer.cancel();
     }
@@ -405,9 +405,9 @@ public class DistributedIndexServer extends AbstractDistributedIndexServer
{
               closed = true;
             }
           }
-        }
-        if (closed) {
-          TableContext.clear();
+          if (closed) {
+            TableContext.clear(table);
+          }
         }
       }
     }, _delay, _delay);
@@ -482,7 +482,6 @@ public class DistributedIndexServer extends AbstractDistributedIndexServer
{
 
     ShardContext shardContext = ShardContext.create(tableContext, shard);
 
-
     TableDescriptor descriptor = tableContext.getDescriptor();
     boolean blockCacheEnabled = descriptor.isBlockCaching();
     if (blockCacheEnabled) {

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c47af820/blur-core/src/main/java/org/apache/blur/manager/indexserver/MasterBasedDistributedLayoutFactory.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/manager/indexserver/MasterBasedDistributedLayoutFactory.java
b/blur-core/src/main/java/org/apache/blur/manager/indexserver/MasterBasedDistributedLayoutFactory.java
index b9528b9..7a44173 100644
--- a/blur-core/src/main/java/org/apache/blur/manager/indexserver/MasterBasedDistributedLayoutFactory.java
+++ b/blur-core/src/main/java/org/apache/blur/manager/indexserver/MasterBasedDistributedLayoutFactory.java
@@ -56,7 +56,6 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
   private final ZooKeeper _zooKeeper;
   private final String _storagePath;
   private final ZooKeeperLockManager _zooKeeperLockManager;
-  private final String _tableStoragePath;
   private final String _locksStoragePath;
   private final ThreadLocal<Random> _random = new ThreadLocal<Random>() {
     @Override
@@ -64,14 +63,14 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
       return new Random();
     }
   };
+  private final String _cluster;
 
   public MasterBasedDistributedLayoutFactory(ZooKeeper zooKeeper, String cluster) {
     _zooKeeper = zooKeeper;
+    _cluster = cluster;
     _storagePath = ZookeeperPathConstants.getShardLayoutPath(cluster);
-    _tableStoragePath = ZookeeperPathConstants.getShardLayoutPathTableLayout(cluster);
     _locksStoragePath = ZookeeperPathConstants.getShardLayoutPathLocks(cluster);
     ZkUtils.mkNodesStr(_zooKeeper, _storagePath);
-    ZkUtils.mkNodesStr(_zooKeeper, _tableStoragePath);
     ZkUtils.mkNodesStr(_zooKeeper, _locksStoragePath);
     _zooKeeperLockManager = new ZooKeeperLockManager(_zooKeeper, _locksStoragePath);
   }
@@ -175,26 +174,14 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
     }
   }
 
-  public static void removeTable(ZooKeeper zooKeeper, String tableStoragePath, String table)
throws InterruptedException, KeeperException {
-    List<String> children = new ArrayList<String>(zooKeeper.getChildren(tableStoragePath,
false));
-    for (String child : children) {
-      int index = child.lastIndexOf(SEP);
-      if (index >= 0) {
-        if (child.substring(0, index).equals(table)) {
-          String oldPath = tableStoragePath + "/" + child;
-          zooKeeper.delete(oldPath, -1);
-        }
-      }
-    }
-  }
-
   private void cleanupOldTableLayouts(String table, String newPath) throws KeeperException,
InterruptedException {
-    List<String> children = new ArrayList<String>(_zooKeeper.getChildren(_tableStoragePath,
false));
+    String tableStoragePath = ZookeeperPathConstants.getTablePath(_cluster, table);
+    List<String> children = new ArrayList<String>(_zooKeeper.getChildren(tableStoragePath,
false));
     for (String child : children) {
       int index = child.lastIndexOf(SEP);
       if (index >= 0) {
         if (child.substring(0, index).equals(table)) {
-          String oldPath = _tableStoragePath + "/" + child;
+          String oldPath = tableStoragePath + "/" + child;
           if (!oldPath.equals(newPath)) {
             LOG.info("Cleaning up old layouts for table [{0}]", table);
             _zooKeeper.delete(oldPath, -1);
@@ -205,7 +192,9 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
   }
 
   private String findExistingStoragePath(String table) throws KeeperException, InterruptedException
{
-    List<String> children = new ArrayList<String>(_zooKeeper.getChildren(_tableStoragePath,
false));
+    String tableStoragePath = ZookeeperPathConstants.getTablePath(_cluster, table);
+    ZkUtils.mkNodesStr(_zooKeeper, tableStoragePath);
+    List<String> children = new ArrayList<String>(_zooKeeper.getChildren(tableStoragePath,
false));
     String path = null;
     for (String child : children) {
       int index = child.lastIndexOf(SEP);
@@ -217,7 +206,7 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
         }
       }
     }
-    return _tableStoragePath + "/" + path;
+    return tableStoragePath + "/" + path;
   }
 
   private Map<String, String> calculateNewLayout(String table, MasterBasedDistributedLayout
existingLayout,
@@ -326,7 +315,8 @@ public class MasterBasedDistributedLayoutFactory implements DistributedLayoutFac
   }
 
   private String getStoragePath(String table) {
-    return _tableStoragePath + "/" + table;
+    String tableStoragePath = ZookeeperPathConstants.getTablePath(_cluster, table);
+    return tableStoragePath + "/" + table;
   }
 
   @SuppressWarnings("serial")

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c47af820/blur-core/src/main/java/org/apache/blur/server/TableContext.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/server/TableContext.java b/blur-core/src/main/java/org/apache/blur/server/TableContext.java
index 12dd316..3ec68f4 100644
--- a/blur-core/src/main/java/org/apache/blur/server/TableContext.java
+++ b/blur-core/src/main/java/org/apache/blur/server/TableContext.java
@@ -108,6 +108,10 @@ public class TableContext {
     _cache.clear();
   }
 
+  public static void clear(String table) {
+    _cache.remove(table);
+  }
+
   public static TableContext create(TableDescriptor tableDescriptor) {
     if (tableDescriptor == null) {
       throw new NullPointerException("TableDescriptor can not be null.");
@@ -364,4 +368,5 @@ public class TableContext {
   public ReadInterceptor getReadInterceptor() {
     return _readInterceptor;
   }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c47af820/blur-core/src/main/java/org/apache/blur/thrift/TableAdmin.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/thrift/TableAdmin.java b/blur-core/src/main/java/org/apache/blur/thrift/TableAdmin.java
index 4ed5e5a..4165013 100644
--- a/blur-core/src/main/java/org/apache/blur/thrift/TableAdmin.java
+++ b/blur-core/src/main/java/org/apache/blur/thrift/TableAdmin.java
@@ -100,7 +100,7 @@ public abstract class TableAdmin implements Iface {
   @Override
   public final void createTable(TableDescriptor tableDescriptor) throws BlurException, TException
{
     try {
-      TableContext.clear();
+      TableContext.clear(tableDescriptor.getName());
       BlurUtil.validateTableName(tableDescriptor.getName());
       assignClusterIfNull(tableDescriptor);
       _clusterStatus.createTable(tableDescriptor);
@@ -128,7 +128,7 @@ public abstract class TableAdmin implements Iface {
   @Override
   public final void disableTable(String table) throws BlurException, TException {
     try {
-      TableContext.clear();
+      TableContext.clear(table);
       String cluster = _clusterStatus.getCluster(false, table);
       if (cluster == null) {
         throw new BException("Table [" + table + "] not found.");
@@ -145,7 +145,7 @@ public abstract class TableAdmin implements Iface {
   @Override
   public final void enableTable(String table) throws BlurException, TException {
     try {
-      TableContext.clear();
+      TableContext.clear(table);
       String cluster = _clusterStatus.getCluster(false, table);
       if (cluster == null) {
         throw new BException("Table [" + table + "] not found.");
@@ -282,7 +282,7 @@ public abstract class TableAdmin implements Iface {
   @Override
   public final void removeTable(String table, boolean deleteIndexFiles) throws BlurException,
TException {
     try {
-      TableContext.clear();
+      TableContext.clear(table);
       String cluster = _clusterStatus.getCluster(false, table);
       if (cluster == null) {
         throw new BException("Table [" + table + "] not found.");


Mime
View raw message