blob: 9e960cf22adf2c278f1cc4aa2508abd3ef4947a2 [file] [log] [blame]
<!DOCTYPE html>
<!--
Generated by Apache Maven Doxia at 2020-05-02
Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache Trafodion Frequently Asked Questions</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta http-equiv="content-language" content="en" />
<link href="//netdna.bootstrapcdn.com/bootswatch/2.3.2/cerulean/bootstrap.min.css" rel="stylesheet" />
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
<link href="./css/bootswatch.css" rel="stylesheet" />
<link href="./css/reflow-skin.css" rel="stylesheet" />
<link href="//yandex.st/highlightjs/7.5/styles/default.min.css" rel="stylesheet" />
<link href="./css/site.css" rel="stylesheet" />
<link href="./css/print.css" rel="stylesheet" media="print" />
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-72491210-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="page-faq project-trafodion" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="index.html"><span class="brand-apache">Apache </span><span class="brand-trafodion">Trafodion</span> <span class="brand-apache"></span></a>
<div class="nav-collapse collapse" id="top-nav-collapse">
<ul class="nav pull-right">
<li ><a href="download.html" title="Download">Download</a></li>
<li ><a href="quickstart.html" title="Quick Start">Quick Start</a></li>
<li ><a href="documentation.html" title="Documentation">Documentation</a></li>
<li ><a href="contributing-redirect.html" title="Contribute">Contribute</a></li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="index.html" title="Overview">Overview</a></li>
<li class="active"><a href="" title="FAQ">FAQ</a></li>
<li ><a href="release-notes.html" title="Release Notes">Release Notes</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Apache+Trafodion+Home" title="Wiki" class="externalLink">Wiki</a></li>
<li ><a href="https://www.youtube.com/playlist?list=PLyyCp3HBB8Tv9696OnG0_mmgF5tfHeyOi" title="Videos" class="externalLink">Videos</a></li>
<li ><a href="management.html" title="Managing Trafodion">Managing Trafodion</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Roadmap" title="Roadmap" class="externalLink">Roadmap</a></li>
<li ><a href="http:divider" title=""></a></li>
<li ><a href="team-redirect.html" title="Team">Team</a></li>
<li ><a href="presentations.html" title="Presentations">Presentations</a></li>
<li ><a href="http://www.apache.org/events/current-event.html" title="Events" class="externalLink">Events</a></li>
<li ><a href="logo.html" title="Logo">Logo</a></li>
<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
<li ><a href="http://im.qq.com" title="QQ (Group ID: 233105278)" class="externalLink">QQ (Group ID: 233105278)</a></li>
<li ><a href="http:divider" title=""></a></li>
<li ><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
<li ><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
<li ><a href="http://www.apache.org/security/" title="Security" class="externalLink">Security</a></li>
<li ><a href="mailto:security@trafodion.apache.org" title="Report Security Issue" class="externalLink">Report Security Issue</a></li>
<li ><a href="license.html" title="License">License</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Features <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="architecture-overview.html" title="Architecture Overview">Architecture Overview</a></li>
<li ><a href="http:divider" title=""></a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/security-ansi-schemas" title="ANSI Schema Support" class="externalLink">ANSI Schema Support</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/ustat-automation" title="Automated Update Statistics" class="externalLink">Automated Update Statistics</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/bulkunload" title="Bulk Unload" class="externalLink">Bulk Unload</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Trafodion+Manageability#TrafodionManageability-LoggingEvents" title="Event Handling" class="externalLink">Event Handling</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/hybrid-query-cache" title="Hybrid Query Cache" class="externalLink">Hybrid Query Cache</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/identity-column" title="Identity Column" class="externalLink">Identity Column</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/lob-support" title="Large Object (LOB)" class="externalLink">Large Object (LOB)</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/ddl-query-invalidation" title="Metadata Query Invalidation" class="externalLink">Metadata Query Invalidation</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Cmp-divisioning" title="Multi-Temperature Data" class="externalLink">Multi-Temperature Data</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/access-external-hbase-tables" title="Native HBase Tables" class="externalLink">Native HBase Tables</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Tutorial:+The+object-oriented+UDF+interface" title="Object-Oriented UDF Tutorial" class="externalLink">Object-Oriented UDF Tutorial</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/sql-query-cancel" title="Query Cancel" class="externalLink">Query Cancel</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/security-privilege-updates" title="Privilege Checking" class="externalLink">Privilege Checking</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Trafodion+Manageability" title="Repository" class="externalLink">Repository</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/enable-get-statistics-thru-rms" title="Runtime Management System" class="externalLink">Runtime Management System</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/sequence-numbers" title="Sequence Numbers" class="externalLink">Sequence Numbers</a></li>
<li ><a href="https://blueprints.launchpad.net/trafodion/+spec/skew-buster" title="Skew Buster" class="externalLink">Skew Buster</a></li>
<li ><a href="http:divider" title=""></a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Backup+and+Restore" title="Backup/Restore Utility" class="externalLink">Backup/Restore Utility</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/TRAFODION/Metadata+Cleanup" title="Metadata Cleanup Utility" class="externalLink">Metadata Cleanup Utility</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="http://www.apache.org/foundation/how-it-works.html" title="Apache Foundation" target="_blank" class="externalLink">Apache Foundation</a></li>
<li ><a href="http://www.apache.org/licenses/" title="Apache License" target="_blank" class="externalLink">Apache License</a></li>
<li ><a href="http://www.apache.org/security/" title="Apache Security" target="_blank" class="externalLink">Apache Security</a></li>
<li ><a href="http:divider" title=""></a></li>
<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" target="_blank" class="externalLink">Sponsorship</a></li>
<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" target="_blank" class="externalLink">Thanks</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<!-- Masthead
================================================== -->
<header>
<div class="jumbotron subhead">
<div class="row" id="banner">
<div class="span12">
<div class="pull-left">
<a href="index.html" id="bannerLeft"><h1><img src="images/logos/trafodion-logo.jpg" alt="Trafodion Logo" width="383"></h1></a>
<p class="lead">Transactional SQL-on-Hadoop Database</p>
</div>
<div class="pull-right">
<a href="https://www.apache.org/events/current-event.html" id="bannerRight"><h1><img src="https://www.apache.org/events/current-event-125x125.png" alt="Apache Events" width="125"></h1></a>
</div>
</div>
</div>
</div>
<hr class="toc-separator" />
<div id="toc-bar" class="navbar" data-spy="affix" data-offset-top="250">
<div class="navbar-inner">
<div id="toc-scroll-target" class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target="#toc-nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="nav-collapse collapse" id="toc-nav-collapse">
<ul id="toc" class="nav">
<li class="dropdown">
<a href="#project" title="Project" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Project <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#project" title="Project">Project</a></li>
<li class="divider"></li>
<li><a href="#What_is_Project_Trafodion" title="What is Project Trafodion?">What is Project Trafodion?</a></li>
<li><a href="#When_is_Trafodion_available" title="When is Trafodion available?">When is Trafodion available?</a></li>
<li><a href="#What_are_the_key_features_of_Trafodion" title="What are the key features of Trafodion?">What are the key features of Trafodion?</a></li>
<li><a href="#What_are_the_key_benefits_of_Trafodion" title="What are the key benefits of Trafodion?">What are the key benefits of Trafodion?</a></li>
<li><a href="#Why_is_it_called_Trafodion" title="Why is it called Trafodion?">Why is it called Trafodion?</a></li>
<li><a href="#What_are_the_primary_use_cases_for_Trafodion" title="What are the primary use cases for Trafodion?">What are the primary use cases for Trafodion?</a></li>
<li><a href="#What_is_the_heritage_of_the_Trafodion_software" title="What is the heritage of the Trafodion software?">What is the heritage of the Trafodion software?</a></li>
<li><a href="#What_do_you_mean_by_Transactional_or_Operational_SQL" title="What do you mean by “Transactional or Operational SQL”?">What do you mean by “Transactional or Operational SQL”?</a></li>
</ul>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#using" title="Using" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Using <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#using" title="Using">Using</a></li>
<li class="divider"></li>
<li><a href="#Why_would_Trafodion_be_used_over_a_commercial_OLTP_database" title="Why would Trafodion be used over a commercial OLTP database?">Why would Trafodion be used over a commercial OLTP database?</a></li>
<li><a href="#Is_Trafodion_mainly_an_extension_to_HBase" title="Is Trafodion mainly an extension to HBase?">Is Trafodion mainly an extension to HBase?</a></li>
<li><a href="#Besides_data_access_via_SQL_database_connection_what_other_advantages_does_Trafodion_offer_over_existing_distributed_database_technologies" title="Besides data access via SQL database connection, what other advantages does Trafodion offer over existing distributed database technologies?">Besides data access via SQL database connection, what other advantages does Trafodion offer over existing distributed database technologies?</a></li>
<li><a href="#Can_Trafodion_modify_tables" title="Can Trafodion modify tables?">Can Trafodion modify tables?</a></li>
<li><a href="#What_is_the_benchmarked_performance_for_a_transaction_workload" title="What is the benchmarked performance for a transaction workload?">What is the benchmarked performance for a transaction workload?</a></li>
<li><a href="#Where_would_you_position_Trafodion_according_to_the_CAP_theorem_Is_it_CP_consistent_and_partition_tolerant_as_HBase_or_CA_consistent_and_highly_available" title="Where would you position Trafodion according to the CAP theorem? Is it CP (consistent and partition tolerant as HBase) or CA (consistent and highly available)?">Where would you position Trafodion according to the CAP theorem? Is it CP (consistent and partition tolerant as HBase) or CA (consistent and highly available)?</a></li>
<li><a href="#How_does_Trafodion_scale_in_terms_of_database_size" title="How does Trafodion scale in terms of database size?">How does Trafodion scale in terms of database size?</a></li>
<li><a href="#What_about_high_availability_Does_Trafodion_have_a_single_point_of_failure" title="What about high availability? Does Trafodion have a single point of failure?">What about high availability? Does Trafodion have a single point of failure?</a></li>
<li><a href="#Is_Trafodion_best_suited_for_reads_or_for_writes" title="Is Trafodion best suited for reads or for writes?">Is Trafodion best suited for reads or for writes?</a></li>
<li><a href="#Does_Trafodion_have_full_text_search_capabilities" title="Does Trafodion have full text search capabilities?">Does Trafodion have full text search capabilities?</a></li>
</ul>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#transactions" title="Transactions" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Transactions <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#transactions" title="Transactions">Transactions</a></li>
<li class="divider"></li>
<li><a href="#Is_Trafodions_transaction_management_an_eventually_consistent_model" title="Is Trafodion’s transaction management an eventually consistent model?">Is Trafodion’s transaction management an eventually consistent model?</a></li>
<li><a href="#Does_Trafodion_provide_transaction_management_for_native_HBase_tables" title="Does Trafodion provide transaction management for native HBase tables?">Does Trafodion provide transaction management for native HBase tables?</a></li>
<li><a href="#Does_Trafodion_support_read_consistency" title="Does Trafodion support read consistency?">Does Trafodion support read consistency?</a></li>
<li><a href="#Does_Trafodion_offer_ability_to_rollback_transactions" title="Does Trafodion offer ability to rollback transactions?">Does Trafodion offer ability to rollback transactions?</a></li>
<li><a href="#Is_there_a_transaction_log_and_can_the_log_be_shipped_to_a_DR_site" title="Is there a transaction log and can the log be shipped to a DR site?">Is there a transaction log and can the log be shipped to a DR site?</a></li>
<li><a href="#Does_Trafodion_support_distributed_transaction_management_across_multiple_data_centers" title="Does Trafodion support distributed transaction management across multiple data centers?">Does Trafodion support distributed transaction management across multiple data centers?</a></li>
<li><a href="#How_does_two-phase_commit_scale_linearly_on_large_clusters" title="How does two-phase commit scale linearly on large clusters?">How does two-phase commit scale linearly on large clusters?</a></li>
</ul>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#hadoop_integration" title="Hadoop Integration" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Hadoop Integration <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#hadoop_integration" title="Hadoop Integration">Hadoop Integration</a></li>
<li class="divider"></li>
<li><a href="#Does_Trafodion_work_as_a_Hadoop_Yarn_application" title="Does Trafodion work as a Hadoop Yarn application?">Does Trafodion work as a Hadoop Yarn application?</a></li>
<li><a href="#Can_Trafodion_access_Hive_stored_data" title="Can Trafodion access Hive stored data?">Can Trafodion access Hive stored data?</a></li>
<li><a href="#Can_we_access_Trafodion_data_with_MapReduce" title="Can we access Trafodion data with MapReduce?">Can we access Trafodion data with MapReduce?</a></li>
<li><a href="#Can_Trafodion_data_be_accessed_through_Hive_Can_we_publish_a_Trafodion_table_to_HCatalog_and_query_it_using_Hive" title="Can Trafodion data be accessed through Hive? Can we publish a Trafodion table to HCatalog and query it using Hive?">Can Trafodion data be accessed through Hive? Can we publish a Trafodion table to HCatalog and query it using Hive?</a></li>
</ul>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#security" title="Security" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Security <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#security" title="Security">Security</a></li>
<li class="divider"></li>
<li><a href="#How_is_Database_security_management_supported_in_Trafodion" title="How is Database security management supported in Trafodion?">How is Database security management supported in Trafodion?</a></li>
<li><a href="#Does_Trafodion_have_role-based_security_authorization" title="Does Trafodion have role-based security authorization?">Does Trafodion have role-based security authorization?</a></li>
<li><a href="#What_is_Trafodions_security_authorization_granularity" title="What is Trafodion’s security authorization granularity?">What is Trafodion’s security authorization granularity?</a></li>
</ul>
</li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#infrastructure" title="Infrastructure" class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#">Infrastructure <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
<!-- Repeat the item, otherwise it is not clickable as the dropdown root -->
<li><a href="#infrastructure" title="Infrastructure">Infrastructure</a></li>
<li class="divider"></li>
<li><a href="#What_hardware_do_I_need_to_run_Trafodion_Is_it_hardware_vendor_neutral" title="What hardware do I need to run Trafodion? Is it hardware vendor neutral?">What hardware do I need to run Trafodion? Is it hardware vendor neutral?</a></li>
<li><a href="#Does_Trafodion_need_to_be_installed_on_all_the_Hadoop_cluster_nodes" title="Does Trafodion need to be installed on all the Hadoop cluster nodes?">Does Trafodion need to be installed on all the Hadoop cluster nodes?</a></li>
<li><a href="#What_does_Trafodion_software_require" title="What does Trafodion software require?">What does Trafodion software require?</a></li>
<li><a href="#Are_there_any_recommended_configurations_in_terms_of_nodes_memory_etc" title="Are there any recommended configurations in terms of nodes, memory, etc.?">Are there any recommended configurations in terms of nodes, memory, etc.?</a></li>
<li><a href="#Does_Trafodion_need_dedicated_hardware" title="Does Trafodion need dedicated hardware?">Does Trafodion need dedicated hardware?</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</header>
<div class="main-body">
<div class="row">
<div class="span12">
<div class="body-content">
<!-- Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the
License. -->
<p>This page provides frequently-asked questions about the Trafodion project and their answers.</p>
<h1 id="project">Project</h1>
<div class="section">
<h2 id="What_is_Project_Trafodion">What is Project Trafodion?</h2>
<p>Project Trafodion is an open source initiative originally cultivated by HP Labs and HP IT to develop an enterprise-class SQL-on-HBase solution targeted for big data transactional or operational workloads as opposed to analytic workloads.</p>
</div>
<div class="section">
<h2 id="When_is_Trafodion_available">When is Trafodion available?</h2>
<p>Trafodion is currently available at downloads.trafodion.org. There, you can find an installer and executable code. For installation instructions, see Installation.</p>
</div>
<div class="section">
<h2 id="What_are_the_key_features_of_Trafodion">What are the key features of Trafodion?</h2>
<p>The key features are:</p>
<ul>
<li>Full-functioned ANSI SQL language support</li>
<li>JDBC/ODBC connectivity for Linux/Windows clients</li>
<li>Distributed ACID transaction protection across multiple statements, tables and/or rows</li>
<li>Transaction recovery to achieve database consistency</li>
<li>Optimization for low-latency read and write transactions</li>
<li>Support for large data sets using a parallel-aware query optimizer</li>
<li>Performance improvements for OLTP workloads with compile-time and run-time optimizations</li>
<li>Distributed parallel-processing architecture designed for scalability</li>
</ul>
</div>
<div class="section">
<h2 id="What_are_the_key_benefits_of_Trafodion">What are the key benefits of Trafodion?</h2>
<p>Trafodion delivers a full-featured and optimized transactional SQL-on-HBase DBMS solution with full transactional data protection. These capabilities help overcome basic Hadoop limitations in supporting transactional workloads.</p>
<p>With Trafodion, users gain the following benefits:</p>
<ul>
<li>Ability to leverage in-house SQL expertise versus complex MapReduce programming</li>
<li>Seamless support for existing transactional applications</li>
<li>Ability to develop next generation highly scalable, real-time transaction processing applications</li>
<li>Reduction in data latency for down-steam analytic workloads</li>
<li>Adoption of data reuse by different application domains</li>
</ul>
<p>And operational SQL users also gain the following benefits inherent in Hadoop ecosystem.</p>
<ul>
<li>Reduced infrastructure costs</li>
<li>Massive scalability and granular elasticity</li>
<li>Improved data availability and disaster recovery protection</li>
</ul>
</div>
<div class="section">
<h2 id="Why_is_it_called_Trafodion">Why is it called Trafodion?</h2>
<p>Trafodion is Welsh for transactions.</p>
</div>
<div class="section">
<h2 id="What_are_the_primary_use_cases_for_Trafodion">What are the primary use cases for Trafodion?</h2>
<p>Primary use cases on Trafodion consist of existing HBase workloads enhanced through SQL with transactional data protection. Another class of use cases consist of new or rehosted existing operational applications to address scalability issues, complex application programming, or prohibitive licensing costs.</p>
</div>
<div class="section">
<h2 id="What_is_the_heritage_of_the_Trafodion_software">What is the heritage of the Trafodion software?</h2>
<p>Trafodion is based on HP’s 20+ year history in developing database products for OLTP. Building on this heritage, Trafodion provides distributed transaction management protection over multiple SQL statements, multiple tables and multiple rows.</p>
</div>
<div class="section">
<h2 id="What_do_you_mean_by_Transactional_or_Operational_SQL">What do you mean by “Transactional or Operational SQL”?</h2>
<p>Transactional or Operational SQL describe workloads were previously described simply as OLTP (online transaction processing) workloads. This expands that definition from the broad range of enterprise-level transactional applications (ERP, CRM, etc.) to include the new transactions generated from social and mobile data interactions and observations and the new mixing of structured and semi-structured data.</p>
<!-- 20151117 Gunnar Tapper
Commented out this section since the reference is no longer valid.
Also, markdown does not like the equal signs in the actual URL, which is why tinyurl
is used. Original URL is:
http://www.gartner.com/technology/reprints.do?id=1-1M9YEHW&ct=131028&st=sb
Further details on Operational DBMS can be found in Gartner’s [Magic Quadrant for Operational Database Management Systems][gartner].
[gartner]: http://tinyurl.com/p5cwass -->
<hr />
<h1 id="using">Using</h1>
</div>
<div class="section">
<h2 id="Why_would_Trafodion_be_used_over_a_commercial_OLTP_database">Why would Trafodion be used over a commercial OLTP database?</h2>
<p>Trafodion is an open source product and like other products in the Hadoop ecosystem, it obtains two key advantages over the tradional proprietary OLTP database systems: Cost structure and Data reuse.</p>
</div>
<div class="section">
<h2 id="Is_Trafodion_mainly_an_extension_to_HBase">Is Trafodion mainly an extension to HBase?</h2>
<p>Not quite. Trafodion runs on top of HBase using the HBase APIs to perform the typical SQL functions of insert, update, delete, and query data with transactional protection. However, there are plans to include database capabilities using the coprocessor mechanism provided by HBase.</p>
</div>
<div class="section">
<h2 id="Besides_data_access_via_SQL_database_connection_what_other_advantages_does_Trafodion_offer_over_existing_distributed_database_technologies">Besides data access via SQL database connection, what other advantages does Trafodion offer over existing distributed database technologies?</h2>
<p>With Trafodion, users can make use of standard HBase APIs as well as use Trafodion for SQL access to the HBase tables. This includes Trafodion’s ability to use powerful SQL capabilities to do joins against both HBase and Trafodion tables and run queries against them while providing transaction management capability.</p>
<p>This allows application developers to choose the best access methods for each particular data usage, based on skill set, data size and usage, and access pattern requirements.</p>
</div>
<div class="section">
<h2 id="Can_Trafodion_modify_tables">Can Trafodion modify tables?</h2>
<p>Yes, Trafodion provides full-featured ANSI DML operations including INSERT, UPDATE, DELETE, MERGE, and UPSERT statement support.</p>
</div>
<div class="section">
<h2 id="What_is_the_benchmarked_performance_for_a_transaction_workload">What is the benchmarked performance for a transaction workload?</h2>
<p>Benchmark results will be posted as the community publishes them.</p>
</div>
<div class="section">
<h2 id="Where_would_you_position_Trafodion_according_to_the_CAP_theorem_Is_it_CP_consistent_and_partition_tolerant_as_HBase_or_CA_consistent_and_highly_available">Where would you position Trafodion according to the CAP theorem? Is it CP (consistent and partition tolerant as HBase) or CA (consistent and highly available)?</h2>
<p>Trafodion is hosted on top of HBase and HDFS. HBase is generally viewed as being CA (Consistent, Available) in the context of the CAP theorem. </p>
<p>Unlike regular HBase, Trafodion extends the definition of consistency to provide ACID protection across transactions comprised of multiple SQL statements, tables, and rows.</p>
</div>
<div class="section">
<h2 id="How_does_Trafodion_scale_in_terms_of_database_size">How does Trafodion scale in terms of database size?</h2>
<p>As Trafodion is hosted on HBase/HDFS, in theory, Trafodion’s database should scale as HBase/HDFS scales. To this point (due to available hardware limitations), Trafodion has been tested with configurations up to 10 nodes and 50 terabytes.</p>
</div>
<div class="section">
<h2 id="What_about_high_availability_Does_Trafodion_have_a_single_point_of_failure">What about high availability? Does Trafodion have a single point of failure?</h2>
<p>HBase and HDFS are considered highly available with many built in features for HA including name node redundancy, HDFS k-safety data replication, HBase replication, HBase snapshots, Zookeeper’s highly reliable distributed coordination of Hadoop hosted services, and so on. </p>
<p>Additionally, the planned release of HBase 1.0 is advertised as having many additional HA features which Trafodion incorporates as it supports HBase 1.0. Furthermore, many Hadoop distributions have added their own HA features at the HBase or HDFS layers.</p>
<p>Trafodion leverages HBase and HDFS capabilities for providing extended HA to the connectivity and SQL layers. For example, Trafodion registers its connection services using Zookeeper to ensure persistent connectivity services. Trafodion is designed as an MPP service with replicated service points for HA and no single points of failure.</p>
</div>
<div class="section">
<h2 id="Is_Trafodion_best_suited_for_reads_or_for_writes">Is Trafodion best suited for reads or for writes?</h2>
<p>Trafodion provides a bulk load capability that interfaces directly with HDFS for high-performance data loading. HBase leverages large-scale cached memory to host data in memory until the HFile buffer becomes filled and is then written to HDFS. </p>
<p>Additionally, Trafodion provides many low-latency read optimizations on top of HBase to significantly improve the both the random and parallel read performance of the database engine. These include:</p>
<ul>
<li>Statistics-based plan generation</li>
<li>Degree of parallelism optimization</li>
<li>In-memory data-flow, scheduler-driven executor</li>
<li>Query plan caching</li>
<li>Key-based access with SQL “pushdown”</li>
<li>Multi-dimensional access method (MDAM)</li>
<li>Composite key support</li>
<li>Secondary index support</li>
<li>Table structure optimizations</li>
<li>Salting of row-keys for workload balancing</li>
</ul>
</div>
<div class="section">
<h2 id="Does_Trafodion_have_full_text_search_capabilities">Does Trafodion have full text search capabilities?</h2>
<p>Trafodion provides SQL search capabilities using search functions such as POSITION (equivalent to INDEX) and SUBSTRING. Once large object (LOB) support is made available, a user-written or third-party UDF could be plugged in to add search capabilities into documents and images. This is a great area for community contribution.</p>
<hr />
<h1 id="transactions">Transactions</h1>
</div>
<div class="section">
<h2 id="Is_Trafodions_transaction_management_an_eventually_consistent_model">Is Trafodion’s transaction management an eventually consistent model?</h2>
<p>No, Trafodion supports full ACID properties. Distributed Transaction Management provides transaction consistency across multiple row updates, updates across multiple tables, and transactions spanning multiple update statements. At the return from a COMMIT WORK statement, all rows and tables are in consistent form with regards to that transaction.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_provide_transaction_management_for_native_HBase_tables">Does Trafodion provide transaction management for native HBase tables?</h2>
<p>Yes, Trafodion supports transaction management for native HBase tables.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_support_read_consistency">Does Trafodion support read consistency?</h2>
<p>Yes, all the reads in Trafodion are completely consistent.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_offer_ability_to_rollback_transactions">Does Trafodion offer ability to rollback transactions?</h2>
<p>Yes, Trafodion offers full ACID protection across multiple SQL statements, tables, or rows. Transactions can be aborted using the ROLLBACK WORK statement.</p>
</div>
<div class="section">
<h2 id="Is_there_a_transaction_log_and_can_the_log_be_shipped_to_a_DR_site">Is there a transaction log and can the log be shipped to a DR site?</h2>
<p>Not really. There are two logs that the transaction manager uses to coordinate transaction history, one at an HBase regionserver level and the other at the transaction manager level. But there is no support for shipping and replaying these logs on a remote DR site in a transactionally consistent manner.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_support_distributed_transaction_management_across_multiple_data_centers">Does Trafodion support distributed transaction management across multiple data centers?</h2>
<p>There is no support for transaction management between Trafodion instances in different data centers.</p>
</div>
<div class="section">
<h2 id="How_does_two-phase_commit_scale_linearly_on_large_clusters">How does two-phase commit scale linearly on large clusters?</h2>
<p>Trafodion employs a Distributed Transaction Manager (DTM) model where a DTM runs on every datanode and each DTM works with its peers in other datanodes to coordinate the two-phase commit protocol. For efficiency purposes, the DTM is invoked only when necessary:</p>
<ul>
<li>If the transaction involves only a single region, then two-phase commit coordination is not necessary.</li>
<li>The DTM is not involved with read-only transactions.</li>
<li>The DTM is not involved in loading data into empty tables or during index creation.</li>
<li>If the transaction impacts only a single table row, then standard HBase ACID protection is used instead of the DTM right now. In the future,these transactions might be fast-tracked using a different mechanism.</li>
</ul>
<hr />
<h1 id="hadoop_integration">Hadoop Integration</h1>
</div>
<div class="section">
<h2 id="Does_Trafodion_work_as_a_Hadoop_Yarn_application">Does Trafodion work as a Hadoop Yarn application?</h2>
<p>Trafodion has not been tested with Yarn yet, but there is nothing in Trafodion that precludes it from being treated as a regular application running in a Yarn container.</p>
</div>
<div class="section">
<h2 id="Can_Trafodion_access_Hive_stored_data">Can Trafodion access Hive stored data?</h2>
<p>Trafodion does provide the capability for SQL statements submitted to Trafodion to access, join, and aggregate a combination of Trafodion database objects, native HBase objects, and Hive tables (via the HCatalog).</p>
</div>
<div class="section">
<h2 id="Can_we_access_Trafodion_data_with_MapReduce">Can we access Trafodion data with MapReduce?</h2>
<p>While theoretically possible since Trafodion data is stored in HBase/HDFS, the data would not be easily interpreted due to the encoding mechanisms Trafodion employs for transaction performance and efficiency.</p>
<p>Trafodion provides automatic access parallelism without the need for writing MapReduce. If the optimized plan calls for parallel execution, the Trafodion Master process divides the work among Executive Server Processes (ESPs) to perform the work in parallel on behalf of the Master process. The results are passed back to the Master for consolidation. </p>
<p>In some situations where there a highly complex plan specified (for example, large n-way joins or aggregations), multiple layers of ESPs may be requested. See the diagram below.</p>
<center>
<img src="images/multi-layer-esps.png" alt="" />
</center>
</div>
<div class="section">
<h2 id="Can_Trafodion_data_be_accessed_through_Hive_Can_we_publish_a_Trafodion_table_to_HCatalog_and_query_it_using_Hive">Can Trafodion data be accessed through Hive? Can we publish a Trafodion table to HCatalog and query it using Hive?</h2>
<p>While theoretically possible since Trafodion data is stored in HBase/HDFS, the data would not be easily interpreted due to the encoding mechanisms Trafodion employs for transaction performance and efficiency. </p>
<p>Trafodion maintains its own catalog for metadata that provides the relational abstraction layer for accessing the physical storage layer via SQL commands. Trafodion objects are complex as they can have tables, indexes, views, constraints, which are represented in Trafodion’s own catalog. HCatalog can represent only simple objects like tables or column families currently but does not contain support for representing other more complex relational objects.</p>
<p>Alternatively, Trafodion data could be loaded into Hive/HDFS and then accessed using Hive specific operations or native MapReduce jobs.</p>
<hr />
<h1 id="security">Security</h1>
</div>
<div class="section">
<h2 id="How_is_Database_security_management_supported_in_Trafodion">How is Database security management supported in Trafodion?</h2>
<p>Currently, Trafodion provides security management based on HBase capabilities. There are projects as part of roadmap to provide full GRANT/REVOKE capability at the table and schema level for users and roles, along with support for directory based authentication.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_have_role-based_security_authorization">Does Trafodion have role-based security authorization?</h2>
<p>Yes, Trafodion supports ANSI GRANT/REVOKE on both an individual user and role basis. See Enabling Security Features in Trafodion. For details on the GRANT/REVOKE syntax, see the Trafodion SQL Reference Manual (pdf, 3.98 MB).</p>
</div>
<div class="section">
<h2 id="What_is_Trafodions_security_authorization_granularity">What is Trafodion’s security authorization granularity?</h2>
<p>Trafodion supports authorization (that is, privileges) at the system and database-object level. System privileges are valid across SQL, such as the ability to create schemas and objects. Object privileges include tables, views, and other databse objects. Views can be used to restrict access to the subset of table rows referenced within the view.</p>
<hr />
<h1 id="infrastructure">Infrastructure</h1>
</div>
<div class="section">
<h2 id="What_hardware_do_I_need_to_run_Trafodion_Is_it_hardware_vendor_neutral">What hardware do I need to run Trafodion? Is it hardware vendor neutral?</h2>
<p>Trafodion is designed to be hosted on vendor neutral, commodity hardware. As Trafodion runs on top of HBase and HDFS, a vendor’s recommended reference architectur such as HP Reference Architecture for Hadoop or similar server configuration is recommended as a starting point for a new installation.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_need_to_be_installed_on_all_the_Hadoop_cluster_nodes">Does Trafodion need to be installed on all the Hadoop cluster nodes?</h2>
<p>Trafodion needs to be installed on all nodes that host an HBase RegionServer. Trafodion comes with an install script to make the installation process easy. For more information, see the Trafodion installation instructions.</p>
</div>
<div class="section">
<h2 id="What_does_Trafodion_software_require">What does Trafodion software require?</h2>
<p>Trafodion software requires an x86-64 bit hardware platform running RedHat Enterprise Linux or CentOS 6.x kernel (64-bit). It supports Cloudera and Hortonworks Hadoop distributions; for details, see Supported Hadoop Distributions. The software is intended to be Linux and Hadoop distribution neutral, but other distributions have not been tested at this time.</p>
</div>
<div class="section">
<h2 id="Are_there_any_recommended_configurations_in_terms_of_nodes_memory_etc">Are there any recommended configurations in terms of nodes, memory, etc.?</h2>
<p>Recommended sizings for Trafodion are still being developed, and vary based on the amount of data, anticipated query workload (types, rates/respose times, concurrency) and the peak number of supported concurrent connections). </p>
<p>What’s the process like when we add a new node to the cluster? Does the system grow elastically? The underlying HBase/HDFS infrastructure supports elastic scalability allowing for incremental node expansion, that is, datanode expansion. Trafodion could then access the HBase tables (or ‘regions’ of the HBase tables) that now span the new node(s). Trafodion services (that is, connection, compiler, master, ESP) can be made to leverage these additional nodes by restarting Trafodion with a new coniguration.</p>
</div>
<div class="section">
<h2 id="Does_Trafodion_need_dedicated_hardware">Does Trafodion need dedicated hardware?</h2>
<p>Trafodion can run on dedicated hardware, cloud or VM configurations. For best and consistent performance, dedicated hardware is recommended where feasible.</p>
</div>
</div>
</div>
</div>
</div>
</div><!-- /container -->
<!-- Footer
================================================== -->
<footer class="well">
<div class="container">
<div class="row">
<div class="span4 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Project</li>
<li >
<a href="index.html" title="Overview">Overview</a>
</li>
<li class="active">
<a href="#" title="FAQ">FAQ</a>
</li>
<li >
<a href="release-notes.html" title="Release Notes">Release Notes</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Apache+Trafodion+Home" title="Wiki" class="externalLink">Wiki</a>
</li>
<li >
<a href="https://www.youtube.com/playlist?list=PLyyCp3HBB8Tv9696OnG0_mmgF5tfHeyOi" title="Videos" class="externalLink">Videos</a>
</li>
<li >
<a href="management.html" title="Managing Trafodion">Managing Trafodion</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Roadmap" title="Roadmap" class="externalLink">Roadmap</a>
</li>
<li >
<a href="http:divider" title=""></a>
</li>
<li >
<a href="team-redirect.html" title="Team">Team</a>
</li>
<li >
<a href="presentations.html" title="Presentations">Presentations</a>
</li>
<li >
<a href="http://www.apache.org/events/current-event.html" title="Events" class="externalLink">Events</a>
</li>
<li >
<a href="logo.html" title="Logo">Logo</a>
</li>
<li >
<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li >
<a href="http://im.qq.com" title="QQ (Group ID: 233105278)" class="externalLink">QQ (Group ID: 233105278)</a>
</li>
<li >
<a href="http:divider" title=""></a>
</li>
<li >
<a href="source-repository.html" title="Source Repository">Source Repository</a>
</li>
<li >
<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
</li>
<li >
<a href="http://www.apache.org/security/" title="Security" class="externalLink">Security</a>
</li>
<li >
<a href="mailto:security@trafodion.apache.org" title="Report Security Issue" class="externalLink">Report Security Issue</a>
</li>
<li >
<a href="license.html" title="License">License</a>
</li>
</ul>
</div>
<div class="span4 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Features</li>
<li >
<a href="architecture-overview.html" title="Architecture Overview">Architecture Overview</a>
</li>
<li >
<a href="http:divider" title=""></a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/security-ansi-schemas" title="ANSI Schema Support" class="externalLink">ANSI Schema Support</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/ustat-automation" title="Automated Update Statistics" class="externalLink">Automated Update Statistics</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/bulkunload" title="Bulk Unload" class="externalLink">Bulk Unload</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Trafodion+Manageability#TrafodionManageability-LoggingEvents" title="Event Handling" class="externalLink">Event Handling</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/hybrid-query-cache" title="Hybrid Query Cache" class="externalLink">Hybrid Query Cache</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/identity-column" title="Identity Column" class="externalLink">Identity Column</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/lob-support" title="Large Object (LOB)" class="externalLink">Large Object (LOB)</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/ddl-query-invalidation" title="Metadata Query Invalidation" class="externalLink">Metadata Query Invalidation</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Cmp-divisioning" title="Multi-Temperature Data" class="externalLink">Multi-Temperature Data</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/access-external-hbase-tables" title="Native HBase Tables" class="externalLink">Native HBase Tables</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Tutorial:+The+object-oriented+UDF+interface" title="Object-Oriented UDF Tutorial" class="externalLink">Object-Oriented UDF Tutorial</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/sql-query-cancel" title="Query Cancel" class="externalLink">Query Cancel</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/security-privilege-updates" title="Privilege Checking" class="externalLink">Privilege Checking</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Trafodion+Manageability" title="Repository" class="externalLink">Repository</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/enable-get-statistics-thru-rms" title="Runtime Management System" class="externalLink">Runtime Management System</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/sequence-numbers" title="Sequence Numbers" class="externalLink">Sequence Numbers</a>
</li>
<li >
<a href="https://blueprints.launchpad.net/trafodion/+spec/skew-buster" title="Skew Buster" class="externalLink">Skew Buster</a>
</li>
<li >
<a href="http:divider" title=""></a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Backup+and+Restore" title="Backup/Restore Utility" class="externalLink">Backup/Restore Utility</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/TRAFODION/Metadata+Cleanup" title="Metadata Cleanup Utility" class="externalLink">Metadata Cleanup Utility</a>
</li>
</ul>
</div>
<div class="span4 bottom-description">
<blockquote><a href="http://trafodion.apache.org/">Apache Trafodion</a> is a webscale SQL-on-Hadoop solution enabling transactional or operational
workloads on Hadoop. <br /><br />The name &quot;Trafodion&quot; (the Welsh word for transactions, pronounced
&quot;Tra-vod-eee-on&quot;) was chosen specifically to emphasize the differentiation that
Trafodion provides in closing a critical gap in the Hadoop ecosystem.<br /><br />
Trafodion builds on the scalability, elasticity, and flexibility of Hadoop. Trafodion extends
Hadoop to provide guaranteed transactional integrity, enabling new kinds of big data
applications to run on Hadoop.</blockquote>
</div>
</div>
</div>
</footer>
<div class="container subfooter">
<div class="row">
<div class="span12">
<p class="pull-right"><a href="#">Back to top</a></p>
<p class="copyright">Copyright &copy;2015-2020 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
<hr/>
<div class="row span16">
<span>Apache, Apache Maven, Apache Maven Fluido Skin, the Apache feather logo, and the Apache Maven project logo
are trademarks of the Apache Software Foundation.</span>
<br/>
<br/>
</div> </div>
</div>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="./js/reflow-scroll.js"></script>
<script src="//yandex.st/highlightjs/7.5/highlight.min.js"></script>
<script src="./js/reflow-skin.js"></script>
</body>
</html>