You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2015/08/14 18:04:51 UTC
[1/2] incubator-trafodion git commit: [TRAFODION-1448] Leak in
HTableClient objects
Repository: incubator-trafodion
Updated Branches:
refs/heads/master 3cb15c389 -> d35f77e1c
[TRAFODION-1448] Leak in HTableClient objects
Refactored the code to ensure that HTableClient object in java
is released for every batch of gets.
In the process removed unused code in HTableClient_JNI.cpp and
ExpHbaseInterface.cpp
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/9d42c620
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/9d42c620
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/9d42c620
Branch: refs/heads/master
Commit: 9d42c620cd1ddca4197bedce6eb20ed7dfde2a0c
Parents: ae8e49f
Author: selvaganesang <se...@esgyn.com>
Authored: Thu Aug 13 16:47:28 2015 +0000
Committer: selvaganesang <se...@esgyn.com>
Committed: Thu Aug 13 16:47:28 2015 +0000
----------------------------------------------------------------------
core/sql/executor/ExHbaseIUD.cpp | 33 +++----
core/sql/executor/ExHbaseSelect.cpp | 6 +-
core/sql/executor/HBaseClient.java | 7 ++
core/sql/executor/HBaseClient_JNI.cpp | 152 ++++++++---------------------
core/sql/executor/HBaseClient_JNI.h | 8 +-
core/sql/exp/ExpHbaseInterface.cpp | 34 +++----
core/sql/exp/ExpHbaseInterface.h | 18 ++--
7 files changed, 87 insertions(+), 171 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/executor/ExHbaseIUD.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHbaseIUD.cpp b/core/sql/executor/ExHbaseIUD.cpp
index 96545d0..be16263 100644
--- a/core/sql/executor/ExHbaseIUD.cpp
+++ b/core/sql/executor/ExHbaseIUD.cpp
@@ -3835,9 +3835,7 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work()
}
else
step_ = ALL_DONE;
- }
-
-
+ }
switch (step_)
{
case NOT_STARTED:
@@ -3885,16 +3883,10 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work()
setupListOfColNames(hbaseAccessTdb().listOfFetchedColNames(),
columns_);
- if (hbaseAccessTdb().getAccessType() == ComTdbHbaseAccess::SELECT_) {
- retcode = ehi_->getHTableClient(table_);
- if (setupError(retcode, "ExpHbaseInterface::getHTableClient")) {
- step_ = HANDLE_ERROR;
- break;
- }
- step_ = SETUP_SELECT;
- }
+ if (hbaseAccessTdb().getAccessType() == ComTdbHbaseAccess::SELECT_)
+ step_ = SETUP_SELECT;
else
- step_ = SETUP_UMD;
+ step_ = SETUP_UMD;
}
break;
case SETUP_SELECT:
@@ -3974,7 +3966,7 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work()
// But EOD is never returned, instead HBASE_ACCESS_NO_ROW is returned
// when no row is found in CREATE_ROW step
if (retcode == HBASE_ACCESS_EOR) {
- step_ = SETUP_SELECT;
+ step_ = RS_CLOSE;
break;
}
if (retcode == HBASE_ACCESS_EOD) {
@@ -4079,12 +4071,13 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work()
{
if (numRowsInDirectBuffer() > 0) {
short numRowsInBuffer = patchDirectRowIDBuffers();
- retcode = ehi_->getRows(
+ retcode = ehi_->getRowsOpen(
+ table_,
hbaseAccessTdb().getRowIDLen(),
rowIDs_,
columns_);
currRowNum_ = 0;
- if (setupError(retcode, "ExpHbaseInterface::getRows"))
+ if (setupError(retcode, "ExpHbaseInterface::getRowsOpen"))
{
step_ = HANDLE_ERROR;
break;
@@ -4276,13 +4269,9 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work()
return rc;
if (step_ == DONE)
- step_ = SETUP_UMD;
- else {
- if (hbaseAccessTdb().getAccessType() == ComTdbHbaseAccess::SELECT_)
- step_ = RS_CLOSE;
- else
- step_ = NOT_STARTED;
- }
+ step_ = SETUP_UMD;
+ else
+ step_ = NOT_STARTED;
}
break;
} // switch
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/executor/ExHbaseSelect.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExHbaseSelect.cpp b/core/sql/executor/ExHbaseSelect.cpp
index fdf49cb..68f66d0 100644
--- a/core/sql/executor/ExHbaseSelect.cpp
+++ b/core/sql/executor/ExHbaseSelect.cpp
@@ -754,7 +754,7 @@ ExWorkProcRetcode ExHbaseGetTaskTcb::work(short &rc)
}
else
{
- retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, tcb_->rowIds_,
+ retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, &tcb_->rowIds_,
tcb_->columns_, -1);
if (tcb_->setupError(retcode, "ExpHbaseInterface::getRowsOpen"))
step_ = HANDLE_ERROR;
@@ -938,7 +938,7 @@ ExWorkProcRetcode ExHbaseGetRowwiseTaskTcb::work(short &rc)
}
else
{
- retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, tcb_->rowIds_,
+ retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, &tcb_->rowIds_,
tcb_->columns_, -1);
if (tcb_->setupError(retcode, "ExpHbaseInterface::getRowsOpen"))
step_ = HANDLE_ERROR;
@@ -1114,7 +1114,7 @@ ExWorkProcRetcode ExHbaseGetSQTaskTcb::work(short &rc)
}
else
{
- retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, tcb_->rowIds_,
+ retcode = tcb_->ehi_->getRowsOpen(tcb_->table_, &tcb_->rowIds_,
tcb_->columns_, -1);
if (tcb_->setupError(retcode, "ExpHbaseInterface::getRowsOpen"))
step_ = HANDLE_ERROR;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/executor/HBaseClient.java
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient.java b/core/sql/executor/HBaseClient.java
index 3787a53..f14539f 100644
--- a/core/sql/executor/HBaseClient.java
+++ b/core/sql/executor/HBaseClient.java
@@ -1466,6 +1466,13 @@ public class HBaseClient {
return htc.startGet(transID, rowIDs, columns, timestamp);
}
+ public int startGet(long jniObject, String tblName, boolean useTRex, long transID, short rowIDLen, Object rowIDs,
+ Object[] columns)
+ throws IOException {
+ HTableClient htc = getHTableClient(jniObject, tblName, useTRex);
+ return htc.getRows(transID, rowIDLen, rowIDs, columns);
+ }
+
public boolean insertRow(long jniObject, String tblName, boolean useTRex, long transID, byte[] rowID,
Object row,
long timestamp,
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/executor/HBaseClient_JNI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.cpp b/core/sql/executor/HBaseClient_JNI.cpp
index 50e5797..635b838 100644
--- a/core/sql/executor/HBaseClient_JNI.cpp
+++ b/core/sql/executor/HBaseClient_JNI.cpp
@@ -477,6 +477,8 @@ HBC_RetCode HBaseClient_JNI::init()
JavaMethods_[JM_START_GET].jm_signature = "(JLjava/lang/String;ZJ[B[Ljava/lang/Object;J)I";
JavaMethods_[JM_START_GETS].jm_name = "startGet";
JavaMethods_[JM_START_GETS].jm_signature = "(JLjava/lang/String;ZJ[Ljava/lang/Object;[Ljava/lang/Object;J)I";
+ JavaMethods_[JM_START_DIRECT_GETS].jm_name = "startGet";
+ JavaMethods_[JM_START_DIRECT_GETS].jm_signature = "(JLjava/lang/String;ZJSLjava/lang/Object;[Ljava/lang/Object;)I";
JavaMethods_[JM_GET_HBTI].jm_name = "getHbaseTableInfo";
JavaMethods_[JM_GET_HBTI].jm_signature = "(Ljava/lang/String;[I)Z";
JavaMethods_[JM_CREATE_COUNTER_TABLE ].jm_name = "createCounterTable";
@@ -2589,7 +2591,6 @@ HTableClient_JNI *HBaseClient_JNI::startGet(NAHeap *heap, const char* tableName,
jbyteArray jba_rowID = jenv_->NewByteArray(len);
if (jba_rowID == NULL) {
GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_STARTGET_EXCEPTION));
- jenv_->DeleteLocalRef(js_tblName);
NADELETE(htc, HTableClient_JNI, heap);
jenv_->PopLocalFrame(NULL);
return NULL;;
@@ -2602,8 +2603,6 @@ HTableClient_JNI *HBaseClient_JNI::startGet(NAHeap *heap, const char* tableName,
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
logError(CAT_SQL_HBASE, "HBaseClient_JNI::startGet()", getLastError());
- jenv_->DeleteLocalRef(js_tblName);
- jenv_->DeleteLocalRef(jba_rowID);
NADELETE(htc, HTableClient_JNI, heap);
jenv_->PopLocalFrame(NULL);
return NULL;
@@ -2629,11 +2628,6 @@ HTableClient_JNI *HBaseClient_JNI::startGet(NAHeap *heap, const char* tableName,
hbs->incHbaseCalls();
}
- jenv_->DeleteLocalRef(js_tblName);
- jenv_->DeleteLocalRef(jba_rowID);
- if (j_cols != NULL)
- jenv_->DeleteLocalRef(j_cols);
-
if (jenv_->ExceptionCheck()) {
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
@@ -2652,7 +2646,8 @@ HTableClient_JNI *HBaseClient_JNI::startGet(NAHeap *heap, const char* tableName,
}
HTableClient_JNI *HBaseClient_JNI::startGets(NAHeap *heap, const char* tableName, bool useTRex,
- ExHbaseAccessStats *hbs, Int64 transID, const LIST(HbaseStr)& rowIDs,
+ ExHbaseAccessStats *hbs, Int64 transID, const LIST(HbaseStr) *rowIDs,
+ short rowIDLen, const HbaseStr *rowIDsInDB,
const LIST(HbaseStr) & cols, Int64 timestamp)
{
if (javaObj_ == NULL || (!isInitialized())) {
@@ -2693,7 +2688,6 @@ HTableClient_JNI *HBaseClient_JNI::startGets(NAHeap *heap, const char* tableName
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
logError(CAT_SQL_HBASE, "HBaseClient_JNI::startGets()", getLastError());
- jenv_->DeleteLocalRef(js_tblName);
NADELETE(htc, HTableClient_JNI, heap);
jenv_->PopLocalFrame(NULL);
return NULL;
@@ -2702,41 +2696,58 @@ HTableClient_JNI *HBaseClient_JNI::startGets(NAHeap *heap, const char* tableName
}
else
htc->setNumColsInScan(0);
- jobjectArray j_rows = convertToByteArrayObjectArray(rowIDs);
- if (j_rows == NULL)
- {
- getExceptionDetails();
- logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HBaseClient_JNI::startGets()", getLastError());
- jenv_->DeleteLocalRef(js_tblName);
- if (j_cols != NULL)
- jenv_->DeleteLocalRef(j_cols);
- NADELETE(htc, HTableClient_JNI, heap);
- jenv_->PopLocalFrame(NULL);
- return NULL;
- }
- htc->setNumReqRows(rowIDs.entries());
+ jobjectArray j_rows = NULL;
+ jobject jRowIDs = NULL;
+
+ if (rowIDs != NULL) {
+ j_rows = convertToByteArrayObjectArray(*rowIDs);
+ if (j_rows == NULL) {
+ getExceptionDetails();
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HBaseClient_JNI::startGets()", getLastError());
+ NADELETE(htc, HTableClient_JNI, heap);
+ jenv_->PopLocalFrame(NULL);
+ return NULL;
+ }
+ htc->setNumReqRows(rowIDs->entries());
+ } else {
+ jRowIDs = jenv_->NewDirectByteBuffer(rowIDsInDB->val, rowIDsInDB->len);
+ if (jRowIDs == NULL) {
+ GetCliGlobals()->setJniErrorStr(getErrorText(HBC_ERROR_STARTGET_EXCEPTION));
+ NADELETE(htc, HTableClient_JNI, heap);
+ jenv_->PopLocalFrame(NULL);
+ return NULL;
+ }
+ // Need to swap the bytes
+ short numReqRows = *(short *)rowIDsInDB->val;
+ htc->setNumReqRows(bswap_16(numReqRows));
+ }
+
jlong j_tid = transID;
jlong j_ts = timestamp;
-
+ jshort jRowIDLen = rowIDLen;
if (hbs)
hbs->getTimer().start();
- tsRecentJMFromJNI = JavaMethods_[JM_START_GETS].jm_full_name;
- jint jresult = jenv_->CallIntMethod(javaObj_,
+ jint jresult;
+ if (rowIDs != NULL) {
+ tsRecentJMFromJNI = JavaMethods_[JM_START_GETS].jm_full_name;
+ jresult = jenv_->CallIntMethod(javaObj_,
JavaMethods_[JM_START_GETS].methodID,
(jlong)htc, js_tblName, (jboolean)useTRex, j_tid, j_rows,
j_cols, j_ts);
+ } else {
+ tsRecentJMFromJNI = JavaMethods_[JM_START_DIRECT_GETS].jm_full_name;
+ jresult = jenv_->CallIntMethod(javaObj_,
+ JavaMethods_[JM_START_DIRECT_GETS].methodID,
+ (jlong)htc, js_tblName, (jboolean)useTRex, j_tid, jRowIDLen, jRowIDs,
+ j_cols);
+ }
if (hbs) {
hbs->incMaxHbaseIOTime(hbs->getTimer().stop());
hbs->incHbaseCalls();
}
- jenv_->DeleteLocalRef(js_tblName);
- jenv_->DeleteLocalRef(j_rows);
- if (j_cols != NULL)
- jenv_->DeleteLocalRef(j_cols);
-
if (jenv_->ExceptionCheck()) {
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
@@ -3486,8 +3497,6 @@ static const char* const htcErrorEnumStr[] =
,"Java exception in getColValue()."
,"Java exception in getRowID()."
,"Java exception in nextCell()."
- ,"Preparing parameters for getRows()."
- ,"Java exception in getRows()."
,"Java exception in completeAsyncOperation()."
,"Async Hbase Operation not yet complete."
,"Java exception in setWriteToWal()."
@@ -3578,8 +3587,6 @@ HTC_RetCode HTableClient_JNI::init()
JavaMethods_[JM_SET_WRITE_TO_WAL ].jm_signature = "(Z)Z";
JavaMethods_[JM_FETCH_ROWS ].jm_name = "fetchRows";
JavaMethods_[JM_FETCH_ROWS ].jm_signature = "()I";
- JavaMethods_[JM_DIRECT_GET_ROWS ].jm_name = "getRows";
- JavaMethods_[JM_DIRECT_GET_ROWS ].jm_signature = "(JSLjava/lang/Object;[Ljava/lang/Object;)I";
JavaMethods_[JM_COMPLETE_PUT ].jm_name = "completeAsyncOperation";
JavaMethods_[JM_COMPLETE_PUT ].jm_signature = "(I[Z)Z";
JavaMethods_[JM_GETBEGINKEYS ].jm_name = "getStartKeys";
@@ -3879,79 +3886,6 @@ HTC_RetCode HTableClient_JNI::deleteRow(Int64 transID, HbaseStr &rowID, const LI
}
//////////////////////////////////////////////////////////////////////////////
-//
-//////////////////////////////////////////////////////////////////////////////
-HTC_RetCode HTableClient_JNI::getRows(Int64 transID, short rowIDLen, HbaseStr &rowIDs,
- const LIST(HbaseStr) & cols)
-{
- if (jenv_->PushLocalFrame(jniHandleCapacity_) != 0) {
- getExceptionDetails();
- return HTC_ERROR_GETROWS_EXCEPTION;
- }
- jobject jRowIDs = jenv_->NewDirectByteBuffer(rowIDs.val, rowIDs.len);
- if (jRowIDs == NULL)
- {
- GetCliGlobals()->setJniErrorStr(getErrorText(HTC_ERROR_GETROWS_PARAM));
- jenv_->PopLocalFrame(NULL);
- return HTC_ERROR_GETROWS_PARAM;
- }
-
- jobjectArray j_cols = NULL;
- if (!cols.isEmpty())
- {
- j_cols = convertToByteArrayObjectArray(cols);
- if (j_cols == NULL)
- {
- getExceptionDetails();
- logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::getRows()", getLastError());
- jenv_->DeleteLocalRef(jRowIDs);
- jenv_->PopLocalFrame(NULL);
- return HTC_ERROR_GETROWS_PARAM;
- }
- numColsInScan_ = cols.entries();
- }
- else
- numColsInScan_ = 0;
- // Need to swap the bytes
- short numReqRows = *(short *)rowIDs.val;
- numReqRows_ = bswap_16(numReqRows);
- jlong j_tid = transID;
- jshort j_rowIDLen = rowIDLen;
-
- if (hbs_)
- hbs_->getTimer().start();
- setFetchMode(HTableClient_JNI::BATCH_GET);
- tsRecentJMFromJNI = JavaMethods_[JM_DIRECT_GET_ROWS].jm_full_name;
- jint jresult = jenv_->CallIntMethod(javaObj_, JavaMethods_[JM_DIRECT_GET_ROWS].methodID,
- j_tid, j_rowIDLen, jRowIDs, j_cols);
- if (hbs_) {
- hbs_->incMaxHbaseIOTime(hbs_->getTimer().stop());
- hbs_->incHbaseCalls();
- }
-
- jenv_->DeleteLocalRef(jRowIDs);
- if (j_cols != NULL)
- jenv_->DeleteLocalRef(j_cols);
-
- if (jenv_->ExceptionCheck())
- {
- getExceptionDetails();
- logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::getRows()", getLastError());
- jenv_->PopLocalFrame(NULL);
- return HTC_ERROR_GETROWS_EXCEPTION;
- }
-
- if (jresult == 0)
- setNumRowsReturned(-1);
- else
- setNumRowsReturned(jresult);
- jenv_->PopLocalFrame(NULL);
- return HTC_OK;
-}
-
-//////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////
HTC_RetCode HTableClient_JNI::setWriteBufferSize(Int64 size)
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/executor/HBaseClient_JNI.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.h b/core/sql/executor/HBaseClient_JNI.h
index 18c981f..6941069 100644
--- a/core/sql/executor/HBaseClient_JNI.h
+++ b/core/sql/executor/HBaseClient_JNI.h
@@ -180,8 +180,6 @@ typedef enum {
,HTC_GET_COLVAL_EXCEPTION
,HTC_GET_ROWID_EXCEPTION
,HTC_NEXTCELL_EXCEPTION
- ,HTC_ERROR_GETROWS_PARAM
- ,HTC_ERROR_GETROWS_EXCEPTION
,HTC_ERROR_COMPLETEASYNCOPERATION_EXCEPTION
,HTC_ERROR_ASYNC_OPERATION_NOT_COMPLETE
,HTC_ERROR_WRITETOWAL_EXCEPTION
@@ -259,7 +257,6 @@ public:
char * tmpLoc = NULL,
Lng32 espNum = 0,
Lng32 versions = 0);
- HTC_RetCode getRows(Int64 transID, short rowIDLen, HbaseStr &rowIDs, const LIST(HbaseStr)& columns);
HTC_RetCode deleteRow(Int64 transID, HbaseStr &rowID, const LIST(HbaseStr) *columns, Int64 timestamp);
HTC_RetCode setWriteBufferSize(Int64 size);
HTC_RetCode setWriteToWAL(bool vWAL);
@@ -361,7 +358,6 @@ private:
,JM_SET_WB_SIZE
,JM_SET_WRITE_TO_WAL
,JM_FETCH_ROWS
- ,JM_DIRECT_GET_ROWS
,JM_COMPLETE_PUT
,JM_GETBEGINKEYS
,JM_LAST
@@ -549,7 +545,8 @@ public:
ExHbaseAccessStats *hbs, Int64 transID, const HbaseStr& rowID,
const LIST(HbaseStr) & cols, Int64 timestamp);
HTableClient_JNI *startGets(NAHeap *heap, const char* tableName, bool useTRex,
- ExHbaseAccessStats *hbs, Int64 transID, const LIST(HbaseStr)& rowIDs,
+ ExHbaseAccessStats *hbs, Int64 transID, const LIST(HbaseStr) *rowIDs,
+ short rowIDLen, const HbaseStr *rowIDsInDB,
const LIST(HbaseStr) & cols, Int64 timestamp);
HBC_RetCode incrCounter( const char * tabName, const char * rowId, const char * famName,
const char * qualName , Int64 incr, Int64 & count);
@@ -614,6 +611,7 @@ private:
,JM_SET_ARC_PERMS
,JM_START_GET
,JM_START_GETS
+ ,JM_START_DIRECT_GETS
,JM_GET_HBTI
,JM_CREATE_COUNTER_TABLE
,JM_INCR_COUNTER
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/exp/ExpHbaseInterface.cpp
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpHbaseInterface.cpp b/core/sql/exp/ExpHbaseInterface.cpp
index 6bff7b0..f457bf0 100644
--- a/core/sql/exp/ExpHbaseInterface.cpp
+++ b/core/sql/exp/ExpHbaseInterface.cpp
@@ -688,16 +688,6 @@ Lng32 ExpHbaseInterface_JNI::scanClose()
return HBASE_ACCESS_SUCCESS;
}
-Lng32 ExpHbaseInterface_JNI::getHTableClient(HbaseStr &tblName)
-{
- htc_ = client_->getHTableClient((NAHeap *)heap_, tblName.val, useTRex_, hbs_);
- if (htc_ == NULL) {
- retCode_ = HBC_ERROR_GET_HTC_EXCEPTION;
- return HBASE_OPEN_ERROR;
- }
- return HBASE_ACCESS_SUCCESS;
-}
-
//----------------------------------------------------------------------------
Lng32 ExpHbaseInterface_JNI::getRowOpen(
HbaseStr &tblName,
@@ -719,13 +709,13 @@ Lng32 ExpHbaseInterface_JNI::getRowOpen(
//----------------------------------------------------------------------------
Lng32 ExpHbaseInterface_JNI::getRowsOpen(
HbaseStr &tblName,
- const LIST(HbaseStr) & rows,
+ const LIST(HbaseStr) *rows,
const LIST(HbaseStr) & columns,
const int64_t timestamp)
{
Int64 transID = getTransactionIDFromContext();
htc_ = client_->startGets((NAHeap *)heap_, (char *)tblName.val, useTRex_, hbs_,
- transID, rows, columns, timestamp);
+ transID, rows, 0, NULL, columns, timestamp);
if (htc_ == NULL) {
retCode_ = HBC_ERROR_GET_HTC_EXCEPTION;
return HBASE_OPEN_ERROR;
@@ -880,21 +870,21 @@ Lng32 ExpHbaseInterface_JNI::insertRows(
}
//----------------------------------------------------------------------------
-Lng32 ExpHbaseInterface_JNI::getRows(
+Lng32 ExpHbaseInterface_JNI::getRowsOpen(
+ HbaseStr tblName,
short rowIDLen,
- HbaseStr &rowIDs,
+ HbaseStr rowIDs,
const LIST(HbaseStr) & columns)
{
- ex_assert(htc_ != NULL, "htc_ is null");
Int64 transID;
transID = getTransactionIDFromContext();
- retCode_ = htc_->getRows(transID, rowIDLen, rowIDs, columns);
-
-
- if (retCode_ != HBC_OK)
- return -HBASE_ACCESS_ERROR;
- else
- return HBASE_ACCESS_SUCCESS;
+ htc_ = client_->startGets((NAHeap *)heap_, (char *)tblName.val, useTRex_, hbs_,
+ transID, NULL, rowIDLen, &rowIDs, columns, -1);
+ if (htc_ == NULL) {
+ retCode_ = HBC_ERROR_GET_HTC_EXCEPTION;
+ return HBASE_OPEN_ERROR;
+ }
+ return HBASE_ACCESS_SUCCESS;
}
Lng32 ExpHbaseInterface_JNI::setWriteBufferSize(
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/9d42c620/core/sql/exp/ExpHbaseInterface.h
----------------------------------------------------------------------
diff --git a/core/sql/exp/ExpHbaseInterface.h b/core/sql/exp/ExpHbaseInterface.h
index 069900f..a0f44ee 100644
--- a/core/sql/exp/ExpHbaseInterface.h
+++ b/core/sql/exp/ExpHbaseInterface.h
@@ -164,8 +164,6 @@ class ExpHbaseInterface : public NABasicObject
virtual Lng32 scanClose() = 0;
- virtual Lng32 getHTableClient(HbaseStr &tblName) = 0;
-
Lng32 fetchAllRows(
HbaseStr &tblName,
Lng32 numCols,
@@ -187,7 +185,7 @@ class ExpHbaseInterface : public NABasicObject
virtual Lng32 getRowsOpen(
HbaseStr &tblName,
- const LIST(HbaseStr) & rows,
+ const LIST(HbaseStr) *rows,
const LIST(HbaseStr) & columns,
const int64_t timestamp) = 0;
@@ -255,9 +253,10 @@ class ExpHbaseInterface : public NABasicObject
const int64_t timestamp,
NABoolean asyncOperation) = 0;
- virtual Lng32 getRows(
+ virtual Lng32 getRowsOpen(
+ HbaseStr tblName,
short rowIDLen,
- HbaseStr &rowIDs,
+ HbaseStr rowIDs,
const LIST(HbaseStr) & columns) = 0;
virtual Lng32 insertRows(
@@ -474,8 +473,6 @@ class ExpHbaseInterface_JNI : public ExpHbaseInterface
virtual Lng32 scanClose();
- virtual Lng32 getHTableClient(HbaseStr &tblName);
-
// return 1 if table is empty, 0 if not empty. -ve num in case of error
virtual Lng32 isEmpty(HbaseStr &tblName);
@@ -487,7 +484,7 @@ class ExpHbaseInterface_JNI : public ExpHbaseInterface
virtual Lng32 getRowsOpen(
HbaseStr &tblName,
- const LIST(HbaseStr) & rows,
+ const LIST(HbaseStr) *rows,
const LIST(HbaseStr) & columns,
const int64_t timestamp);
@@ -553,9 +550,10 @@ class ExpHbaseInterface_JNI : public ExpHbaseInterface
const int64_t timestamp,
NABoolean asyncOperation);
- virtual Lng32 getRows(
+ virtual Lng32 getRowsOpen(
+ HbaseStr tblName,
short rowIDLen,
- HbaseStr &rowIDs,
+ HbaseStr rowIDs,
const LIST(HbaseStr) & columns);
virtual Lng32 insertRows(
[2/2] incubator-trafodion git commit: Merge remote branch
'origin/pr/55/head' into mrg_37
Posted by su...@apache.org.
Merge remote branch 'origin/pr/55/head' into mrg_37
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/d35f77e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/d35f77e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/d35f77e1
Branch: refs/heads/master
Commit: d35f77e1c5d7e5efac41820cf68758bd14703099
Parents: 3cb15c3 9d42c62
Author: Suresh Subbiah <su...@apache.org>
Authored: Fri Aug 14 16:04:31 2015 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Fri Aug 14 16:04:31 2015 +0000
----------------------------------------------------------------------
core/sql/executor/ExHbaseIUD.cpp | 33 +++----
core/sql/executor/ExHbaseSelect.cpp | 6 +-
core/sql/executor/HBaseClient.java | 7 ++
core/sql/executor/HBaseClient_JNI.cpp | 152 ++++++++---------------------
core/sql/executor/HBaseClient_JNI.h | 8 +-
core/sql/exp/ExpHbaseInterface.cpp | 34 +++----
core/sql/exp/ExpHbaseInterface.h | 18 ++--
7 files changed, 87 insertions(+), 171 deletions(-)
----------------------------------------------------------------------