{"id":866,"date":"2017-02-17T10:01:40","date_gmt":"2017-02-17T09:01:40","guid":{"rendered":"http:\/\/it.tuxie.eu\/?p=866"},"modified":"2017-02-22T09:25:42","modified_gmt":"2017-02-22T08:25:42","slug":"voltdb-7-community-oracle-linux-6-8","status":"publish","type":"post","link":"http:\/\/it.tuxie.eu\/?p=866","title":{"rendered":"VoltDB 7 community @ Oracle Linux 6.8"},"content":{"rendered":"<p>What a great news in &#8222;VoltDBRIEF January-February 2017&#8220;! New version of VoltDB is out. VoltDB is a one of brightest jewells in my &#8222;I-want-to-use-and-learn&#8220; list of database solutions. With no doubt we will hear about this product in near future. Let&#8217;s have a look on Community edition.<br \/>\n<!--more--><br \/>\nThere are lot of differencies between Enterprise and Community editions, anyway from &#8222;user&#8220; perspective, the most important for Community is a need for compiling it from source. Sounds hard, right?! \ud83d\ude42 Hopefully, there is a good document describing few basic things. My way:<\/p>\n<p>1) Consolidate proper java(jdk) version in your computer. I have no reason to trust openjdk, so I&#8217;m using the one from Oracle:<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<br \/>\n[root@db2111 voltdb]# rpm -i \/home\/j\/jdk-8u121-linux-x64.rpm<br \/>\nUnpacking JAR files&#8230;<br \/>\ntools.jar&#8230;<br \/>\nplugin.jar&#8230;<br \/>\njavaws.jar&#8230;<br \/>\ndeploy.jar&#8230;<br \/>\nrt.jar&#8230;<br \/>\njsse.jar&#8230;<br \/>\ncharsets.jar&#8230;<br \/>\nlocaledata.jar&#8230;<br \/>\n[root@db2111 voltdb]#<\/p>\n<p>[\/crayon]<br \/>\nJava is installed in \/usr\/java (&#8222;Indeed, Watson!&#8220;) and the only thing is to setup this one jdk as active one:<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<br \/>\n[root@db2111 java]# update-alternatives &#8211;config java<\/p>\n<p>[\/crayon]<\/p>\n<p>There are 4 programs which provide &#8218;java&#8216;.<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>Selection\u00a0\u00a0\u00a0 Command<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/usr\/lib\/jvm\/jre-1.5.0-gcj\/bin\/java<br \/>\n*+ 2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/usr\/lib\/jvm\/jre-1.8.0-openjdk.x86_64\/bin\/java<br \/>\n3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/usr\/lib\/jvm\/jre-1.6.0-openjdk.x86_64\/bin\/java<br \/>\n4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/usr\/java\/jdk1.8.0_121\/jre\/bin\/java<\/p>\n<p>Enter to keep the current selection[+], or type selection number: 4<br \/>\n[root@db2111 java]#<\/p>\n<p>[\/crayon]<br \/>\nKeeping on mind &#8222;don&#8217;t spend your time with garbage&#8220;, choosing proper one line is a matter of one second.<\/p>\n<p>2) Next phase is to install all required packages for building VoltDB Community.<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>[root@db2111 ~]# wget https:\/\/dl.fedoraproject.org\/pub\/epel\/6\/x86_64\/epel-release-6-8.noarch.rpm<br \/>\n&#8211;2017-02-06 11:14:23&#8211;\u00a0 https:\/\/dl.fedoraproject.org\/pub\/epel\/6\/x86_64\/epel-release-6-8.noarch.rpm<br \/>\nResolving globalproxy.dhl.com&#8230; 165.72.0.21<br \/>\nConnecting to globalproxy.dhl.com|165.72.0.21|:8080&#8230; connected.<br \/>\nProxy request sent, awaiting response&#8230; 200 OK<br \/>\nLength: 14540 (14K) [application\/x-rpm]<br \/>\nSaving to: \u201cepel-release-6-8.noarch.rpm\u201d<\/p>\n<p>100%[====================================================================================&gt;] 14,540\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;.-K\/s\u00a0\u00a0 in 0.002s<\/p>\n<p>2017-02-06 11:14:24 (5.97 MB\/s) &#8211; \u201cepel-release-6-8.noarch.rpm\u201d saved [14540\/14540]<\/p>\n<p>[root@db2111 ~]# rpm -Uvh epel*.rpm<br \/>\nwarning: epel-release-6-8.noarch.rpm: Header V3 RSA\/SHA256 Signature, key ID 0608b895: NOKEY<br \/>\nPreparing&#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ########################################### [100%]<br \/>\n1:epel-release\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ########################################### [100%]<br \/>\n[root@db2111 ~]# yum -y install ant ant-nodeps ant-junit ant-scripts ant-javadoc ant-trax gcc gcc-c++ python valgrind ntp python26 git-all python-httplib2 python-setuptools python-devel ccache cmake bzip2<\/p>\n<p>[\/crayon]<\/p>\n<p>The last command will install a lot of dependencies, which are essentials!<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>&#8230;<br \/>\nInstalled:<br \/>\nant-javadoc.x86_64 0:1.7.1-15.el6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ant-scripts.x86_64 0:1.7.1-15.el6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ccache.x86_64 0:3.1.6-2.el6<br \/>\ncmake.x86_64 0:2.8.12.2-4.el6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 git-all.noarch 0:1.7.1-4.el6_7.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 python-httplib2.noarch 0:0.7.7-1.el6<\/p>\n<p>Dependency Installed:<br \/>\ncvsps.x86_64 0:2.2-0.6.b1.el6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 emacs-git.noarch 0:1.7.1-4.el6_7.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 git-cvs.noarch 0:1.7.1-4.el6_7.1<br \/>\ngit-email.noarch 0:1.7.1-4.el6_7.1\u00a0\u00a0\u00a0\u00a0 git-gui.noarch 0:1.7.1-4.el6_7.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 git-svn.noarch 0:1.7.1-4.el6_7.1<br \/>\ngitk.noarch 0:1.7.1-4.el6_7.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 perl-Authen-SASL.noarch 0:2.13-3.el6\u00a0\u00a0\u00a0\u00a0\u00a0 perl-Digest-HMAC.noarch 0:1.01-22.el6<br \/>\nperl-Digest-SHA1.x86_64 0:2.12-2.el6\u00a0\u00a0 perl-GSSAPI.x86_64 0:0.26-6.el6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 perl-IO-Socket-SSL.noarch 0:1.31-3.el6_8.2<br \/>\nperl-Net-LibIDN.x86_64 0:0.12-3.el6\u00a0\u00a0\u00a0 perl-Net-SMTP-SSL.noarch 0:1.01-4.el6\u00a0\u00a0\u00a0\u00a0 perl-Net-SSLeay.x86_64 0:1.35-10.el6_8.1<br \/>\nperl-TermReadKey.x86_64 0:2.30-13.el6\u00a0 subversion-perl.x86_64 0:1.6.11-15.el6_7\u00a0 tcl.x86_64 1:8.5.7-6.el6<br \/>\ntk.x86_64 1:8.5.7-5.el6<\/p>\n<p>Complete!<br \/>\n[root@db2111 ~]#<\/p>\n<p>[\/crayon]<\/p>\n<p>3) GIT time!<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>[root@db2111 ~]# git clone https:\/\/github.com\/VoltDB\/voltdb.git<br \/>\nInitialized empty Git repository in \/root\/voltdb\/.git\/<br \/>\nremote: Counting objects: 333817, done.<br \/>\nremote: Compressing objects: 100% (210\/210), done.<br \/>\nremote: Total 333817 (delta 76), reused 0 (delta 0), pack-reused 333595<br \/>\nReceiving objects: 100% (333817\/333817), 440.07 MiB | 545 KiB\/s, done.<br \/>\nResolving deltas: 100% (226569\/226569), done.<br \/>\n[root@db2111 ~]#<br \/>\n[root@db2111 ~]# cd voltdb\/<br \/>\n[root@db2111 voltdb]# ant<br \/>\nBuildfile: build.xml<\/p>\n<p>catalog:<\/p>\n<p>dbbpool_gen_check:<\/p>\n<p>&#8230;.<\/p>\n<p>buildbundles:<\/p>\n<p>default:<\/p>\n<p>BUILD SUCCESSFUL<br \/>\nTotal time: 17 minutes 14 seconds<br \/>\n[root@db2111 voltdb]#<\/p>\n<p>[\/crayon]<\/p>\n<p>4) Tiny kernel adjustment<br \/>\nTransparent huge pages are not supported by VoltDB, so we can disable this feature:<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>[root@db2111 bin]# echo never &gt; \/sys\/kernel\/mm\/transparent_hugepage\/enabled<br \/>\n[root@db2111 bin]# echo never &gt; \/sys\/kernel\/mm\/transparent_hugepage\/defrag<\/p>\n<p>[\/crayon]<\/p>\n<p>for current session or disable THP on a kernel modules level (GRUB parameter), so my line in \/boot\/grub\/grub.conf looks like:<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>title Oracle Linux Server Unbreakable Enterprise Kernel (4.1.12-61.1.25.el6uek.x86_64)<br \/>\nroot (hd0,1)<br \/>\nkernel \/boot\/vmlinuz-4.1.12-61.1.25.el6uek.x86_64 ro root=UUID=5c5bdb6d-4819-4793-9084-a569bfaa674b rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 transparent_hugepage=never KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet<\/p>\n<p>[\/crayon]<\/p>\n<p>That would be fine in case you are not using RHEL\/clone and its caveats.<br \/>\nThere should be still background services which turn THP on.<br \/>\nAdepts for service name = ktune, tuned &#8211; so you just need to disable these services from starting.<\/p>\n<p>4.5) Reboot your linux machine.<\/p>\n<p>5) Happy VoltDB user \ud83d\ude09<\/p>\n<p>[crayon lang=&#8220;shell&#8220;]<\/p>\n<p>[root@db2111 bin]# .\/voltdb init<br \/>\nnitializing VoltDB&#8230;<\/p>\n<p>_\u00a0\u00a0\u00a0 __\u00a0\u00a0\u00a0\u00a0\u00a0 ____\u00a0 ____\u00a0 ____<br \/>\n| |\u00a0 \/ \/___\u00a0 \/ \/ \/_\/ __ \\\/ __ )<br \/>\n| | \/ \/ __ \\\/ \/ __\/ \/ \/ \/ __\u00a0 |<br \/>\n| |\/ \/ \/_\/ \/ \/ \/_\/ \/_\/ \/ \/_\/ \/<br \/>\n|___\/\\____\/_\/\\__\/_____\/_____\/<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Build: 7.0 voltdb-7.0-39-g22231a2 Community Edition<br \/>\nWhen using the INIT command, some deployment file settings (hostcount, voltdbroot path, and admin-mode) are ignored<br \/>\nInitialized VoltDB root directory voltdbroot<br \/>\n[root@db2111 bin]# .\/voltdb start<br \/>\nWARNING: Unsupported release: oracle release 6.8<br \/>\nInitializing VoltDB&#8230;<\/p>\n<p>_\u00a0\u00a0\u00a0 __\u00a0\u00a0\u00a0\u00a0\u00a0 ____\u00a0 ____\u00a0 ____<br \/>\n| |\u00a0 \/ \/___\u00a0 \/ \/ \/_\/ __ \\\/ __ )<br \/>\n| | \/ \/ __ \\\/ \/ __\/ \/ \/ \/ __\u00a0 |<br \/>\n| |\/ \/ \/_\/ \/ \/ \/_\/ \/_\/ \/ \/_\/ \/<br \/>\n|___\/\\____\/_\/\\__\/_____\/_____\/<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Build: 7.0 voltdb-7.0-39-g22231a2 Community Edition<br \/>\nLoaded node-specific settings from voltdbroot\/config\/path.properties<br \/>\nConnecting to VoltDB cluster as the leader&#8230;<br \/>\nHost id of this node is: 0<br \/>\nStarting a new database cluster<br \/>\nInitializing the database. This may take a moment&#8230;<br \/>\nWARN: Strict java memory checking is enabled, don&#8217;t do release builds or performance runs with this enabled. Invoke &#8222;ant clean&#8220; and &#8222;ant -Djmemcheck=NO_MEMCHECK&#8220; to disable.<br \/>\nWARN: This is not a highly available cluster. K-Safety is set to 0.<br \/>\nWARN: Durability is turned off. Command logging is off.<br \/>\nServer Operational State is: NORMAL<br \/>\nServer completed initialization.<\/p>\n<p>[\/crayon]<\/p>\n<p>Server is up and running. Just two more notices:<\/p>\n<p>a) client resides also in bin directory and it&#8217;s called &#8222;sqlcmd&#8220;<\/p>\n<p>b) dashboard resides in http:\/\/&lt;hostname&gt;:8080, e.g.:<\/p>\n<p><a href=\"http:\/\/it.tuxie.eu\/wp-content\/uploads\/2017\/02\/vdb.png\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-838\" src=\"http:\/\/it.tuxie.eu\/wp-content\/uploads\/2017\/02\/vdb-300x190.png\" alt=\"\" width=\"300\" height=\"190\" srcset=\"http:\/\/it.tuxie.eu\/wp-content\/uploads\/2017\/02\/vdb-300x190.png 300w, http:\/\/it.tuxie.eu\/wp-content\/uploads\/2017\/02\/vdb-768x487.png 768w, http:\/\/it.tuxie.eu\/wp-content\/uploads\/2017\/02\/vdb.png 800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nFor further exploring this fantastic software I warmly recommend documentation section.<\/p>\n<p>-a-<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What a great news in &#8222;VoltDBRIEF January-February 2017&#8220;! New version of VoltDB is out. VoltDB is a one of brightest jewells in my &#8222;I-want-to-use-and-learn&#8220; list of database solutions. With no doubt we will hear about this product in near future. &hellip; <a href=\"http:\/\/it.tuxie.eu\/?p=866\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts\/866"}],"collection":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=866"}],"version-history":[{"count":0,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts\/866\/revisions"}],"wp:attachment":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=866"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}