[ 
https://issues.apache.org/jira/browse/PHOENIX-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16675451#comment-16675451
 ] 

James Taylor edited comment on PHOENIX-4888 at 11/5/18 5:55 PM:
----------------------------------------------------------------

[~yonigo]: to get the tso to start for me, I had to increase the heap size by 
making this change to omid.sh:
{code:java}
tso() {
    exec java -Xmx4000m $JVM_FLAGS -cp $CLASSPATH org.apache.omid.tso.TSOServer 
$@
}
{code}
I tried -Xmx2000m, but it still failed. Would you mind confirming what the 
required heapsize is and attaching a new patch? Also, can you fall back to 
HBASE_HOME if HBASE_CONF_DIR is not set? Often HBASE_HOME is the only 
environment variable that people will have set.

FWIW, the sqlline.py script is the same as the psql.py script - if one works, 
the other should too. After doing a {{mvn install -skipTests}}, I perform the 
following steps:
 * go to the phoenix/phoenix-assembly/target dir
 * untar phoenix-4.14.0-HBase-1.3.tar.gz
 * copy phoenix-4.14.0-HBase-1.3-server.jar into the hbase/lib directory
 * restart your hbase server
 * start the tso
 * start bin/sqlline.py
 * in sqlline.py, execute {{!autocommit off}} to turn autocommit off (otherwise 
you won't be able to test conflict detection as every statement will be 
committed after it's run). Would you mind adding this step to the directions 
for transactions when you update the docs?

*Everything worked well for me, so I think we're good to go once the script is 
fixed.*

One thing to be careful of when testing is if you're running different versions 
of HBase on the same machine. If that's the case, then either reboot first (as 
that'll remove the hbase tables in /tmp) or configure hbase to use different 
directories for it's tables and zk state.
{quote}Why does phoenix rely on omid using WORLD_TIME, this seems like a bug in 
phoenix?
{quote}
There's a correspondence in time stamps between table creation (CREATE TABLE 
<table>) and table usage (SELECT ... FROM <table>). When a table is created in 
Phoenix, it's not a transactional operation, so we need to convert from server 
timestamp to transactional time stamp in that case so that when a SELECT is 
done, we're able to resolve the table (when it's time stamp is multiplied by 
10000000).


was (Author: jamestaylor):
[~yonigo]: to get the tso to start for me, I had to increase the heap size by 
making this change to omid.sh:
{code:java}
tso() {
    exec java -Xmx4000m $JVM_FLAGS -cp $CLASSPATH org.apache.omid.tso.TSOServer 
$@
}
{code}
I tried -Xmx2000m, but it still failed. Would you mind confirming what the 
required heapsize is and attaching a new patch? Also, can you fall back to 
HBASE_HOME if HBASE_CONF_DIR is not set? Often HBASE_HOME is the only 
environment variable that people will have set.

One other question/request: is there a way to stop the tso too? If not, that'd 
be something good to have.

FWIW, the sqlline.py script is the same as the psql.py script - if one works, 
the other should too. After doing a {{mvn install -skipTests}}, I perform the 
following steps:
 * go to the phoenix/phoenix-assembly/target dir
 * untar phoenix-4.14.0-HBase-1.3.tar.gz
 * copy phoenix-4.14.0-HBase-1.3-server.jar into the hbase/lib directory
 * restart your hbase server
 * start the tso
 * start bin/sqlline.py
 * in sqlline.py, execute {{!autocommit off}} to turn autocommit off (otherwise 
you won't be able to test conflict detection as every statement will be 
committed after it's run). Would you mind adding this step to the directions 
for transactions when you update the docs?

*Everything worked well for me, so I think we're good to go once the script is 
fixed.*

One thing to be careful of when testing is if you're running different versions 
of HBase on the same machine. If that's the case, then either reboot first (as 
that'll remove the hbase tables in /tmp) or configure hbase to use different 
directories for it's tables and zk state.
{quote}Why does phoenix rely on omid using WORLD_TIME, this seems like a bug in 
phoenix?
{quote}
There's a correspondence in time stamps between table creation (CREATE TABLE 
<table>) and table usage (SELECT ... FROM <table>). When a table is created in 
Phoenix, it's not a transactional operation, so we need to convert from server 
timestamp to transactional time stamp in that case so that when a SELECT is 
done, we're able to resolve the table (when it's time stamp is multiplied by 
10000000).

> Create script that starts Omid transaction manager
> --------------------------------------------------
>
>                 Key: PHOENIX-4888
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4888
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: James Taylor
>            Assignee: Yonatan Gottesman
>            Priority: Major
>         Attachments: PHOENIX-4888.patch, PHOENIX-4888_v2.patch, omid4888.patch
>
>
> To support local testing of Omid support, we need to create a simple script 
> (similar to bin/tephra) that starts the transaction manager.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to