You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ss...@apache.org on 2016/06/22 21:10:08 UTC
[3/4] phoenix git commit: PHOENIX-3015 Any metadata changes may cause
unpredictable result when local indexes are using
PHOENIX-3015 Any metadata changes may cause unpredictable result when local indexes are using
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a5caaeb8
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a5caaeb8
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a5caaeb8
Branch: refs/heads/4.x-HBase-1.0
Commit: a5caaeb897cc6500167f9ee45f4c9b24030443bd
Parents: 37e8948
Author: Sergey Soldatov <ss...@apache.org>
Authored: Tue Jun 21 18:02:56 2016 -0700
Committer: Sergey Soldatov <ss...@apache.org>
Committed: Wed Jun 22 13:54:04 2016 -0700
----------------------------------------------------------------------
.../IndexHalfStoreFileReaderGenerator.java | 2 +-
.../phoenix/index/PhoenixIndexFailurePolicy.java | 2 +-
.../java/org/apache/phoenix/util/PhoenixRuntime.java | 13 +++++++++++++
3 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/a5caaeb8/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReaderGenerator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReaderGenerator.java b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReaderGenerator.java
index f974a12..a54efc8 100644
--- a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReaderGenerator.java
+++ b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReaderGenerator.java
@@ -143,7 +143,7 @@ public class IndexHalfStoreFileReaderGenerator extends BaseRegionObserver {
try {
conn = QueryUtil.getConnectionOnServer(ctx.getEnvironment().getConfiguration()).unwrap(
PhoenixConnection.class);
- PTable dataTable = PhoenixRuntime.getTable(conn, tableName.getNameAsString());
+ PTable dataTable = PhoenixRuntime.getTableNoCache(conn, tableName.getNameAsString());
List<PTable> indexes = dataTable.getIndexes();
Map<ImmutableBytesWritable, IndexMaintainer> indexMaintainers =
new HashMap<ImmutableBytesWritable, IndexMaintainer>();
http://git-wip-us.apache.org/repos/asf/phoenix/blob/a5caaeb8/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
index d7850ba..67242f6 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
@@ -224,7 +224,7 @@ public class PhoenixIndexFailurePolicy extends DelegateIndexFailurePolicy {
try {
conn = QueryUtil.getConnectionOnServer(this.env.getConfiguration()).unwrap(
PhoenixConnection.class);
- PTable dataTable = PhoenixRuntime.getTable(conn, ref.getTableName());
+ PTable dataTable = PhoenixRuntime.getTableNoCache(conn, ref.getTableName());
List<PTable> indexes = dataTable.getIndexes();
// local index used to get view id from index mutation row key.
PTable localIndex = null;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/a5caaeb8/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java b/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
index 8de1de6..a5aefda 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
@@ -380,6 +380,19 @@ public class PhoenixRuntime {
};
}
+ public static PTable getTableNoCache(Connection conn, String name) throws SQLException {
+ String schemaName = SchemaUtil.getSchemaNameFromFullName(name);
+ String tableName = SchemaUtil.getTableNameFromFullName(name);
+ PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class);
+ MetaDataMutationResult result = new MetaDataClient(pconn).updateCache(pconn.getTenantId(),
+ schemaName, tableName, true);
+ if(result.getMutationCode() != MutationCode.TABLE_ALREADY_EXISTS) {
+ throw new TableNotFoundException(schemaName, tableName);
+ }
+
+ return result.getTable();
+
+ }
/**
*
* @param conn