<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/>
  <title>Gearpump Internals - GearPump 0.6.2 Documentation</title>
  
   <meta name="description" content="Gearpump Internals">
  

  

  <link rel="stylesheet" href="css/bootstrap-3.3.5.min.css">
  <style>
    body {
      padding-top: 60px;
      padding-bottom: 40px;
    }
  </style>
  <link rel="stylesheet" href="css/main.css">
  <link rel="stylesheet" href="css/pygments-default.css">
  <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script>
</head>
<body>
  <!--[if lt IE 7]>
    <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
  <![endif]-->

  <div class="navbar navbar-inverse navbar-fixed-top" id="topbar">
    <div class="container">
      <div class="navbar-header">
        <a class="navbar-brand" href="#/">GearPump
          <span class="label label-primary" style="font-size: .6em">0.6.2</span>
        </a>
      </div>
      <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
          <li><a href="index.html">Overview</a></li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="submit-your-1st-application.html">Submit Your 1st Application</a></li>
              <li><a href="commandline.html">Client Command Line</a></li>
              <li class="divider"></li>
              <li><a href="basic-concepts.html">Basic Concepts</a></li>
              <li><a href="features.html">Technical Highlights</a></li>
              <li><a href="usecases.html">Use Cases</a></li>
              <li><a href="message-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="performance-report.html">Performance</a></li>
              <li><a href="gearpump-internals.html">Gearpump Internals</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Deploying<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li class="dropdown-header">Deployment</li>
              <li><a href="deployment-docker.html">Docker</a><li>
              <li><a href="deployment-local.html">Local</a><li>
              <li><a href="deployment-standalone.html">Standalone</a></li>
              <li><a href="deployment-yarn.html">YARN</a></li>
              <li class="divider"></li>
              <li><a href="deployment-ha.html">High Availability</a></li>
              <li><a href="deployment-msg-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="deployment-configuration.html">Configuration</a></li>
              <li class="divider"></li>
              <li><a href="deployment-security.html">Security</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Programming Guide<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="dev-write-1st-app.html">Write Your 1st App</a></li>
              <li><a href="dev-custom-serializer.html">Customized Message Passing</a></li>
              <li class="divider"></li>
              <li><a href="api/scala/index.html">Scala API</a></li>
              <li><a href="api/java/index.html">Java API</a></li>
              <li><a href="dev-rest-api.html">RESTful API</a></li>
              <li class="divider"></li>
              <li><a href="dev-connectors.html">Gearpump Connectors</a></li>
              <li class="divider"></li>
              <li><a href="dev-storm.html">Storm Compatibility</a></li>
              <!--
              <li><a href="dev-samoa.html">Samoa Compatibility</a></li>
              <li class="divider"></li>
              <li><a href="dev-iot.html">Gearpump with IoT</a></li>
              -->
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">More<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="how-to-contribute.html">How to Contribute</a></li>
              <li><a href="coding-style.html">Coding Style</a></li>
              <li class="divider"></li>
              <li><a href="faq.html">FAQ</a><li>
              <li><a href="about.html">About</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </div>

  <div class="container" id="content">
   
    <h1 class="title">Gearpump Internals</h1>
   

   <h3 id="actor-hiearachy">Actor Hiearachy?</h3>

<p><img src="/img/actor_hierarchy.png" alt="Actor Hierarchy" /></p>

<p>Everything in the diagram is an actor; they fall into two categories, Cluster Actors and Application Actors.</p>

<h4 id="cluster-actors">Cluster Actors</h4>

<p><strong>Worker</strong>: Maps to a physical worker machine. It is responsible for managing resources and report metrics on that machine.</p>

<p><strong>Master</strong>: Heart of the cluster, which manages workers, resources, and applications. The main function is delegated to three child actors, App Manager, Worker Manager, and Resource Scheduler.</p>

<h4 id="application-actors">Application Actors:</h4>

<p><strong>AppMaster</strong>: Responsible to schedule the tasks to workers and manage the state of the application. Different applications have different AppMaster instances and are isolated.</p>

<p><strong>Executor</strong>: Child of AppMaster, represents a JVM process. Its job is to manage the life cycle of tasks and recover the tasks in case of failure.</p>

<p><strong>Task</strong>: Child of Executor, does the real job. Every task actor has a global unique address. One task actor can send data to any other task actors. This gives us great flexibility of how the computation DAG is distributed.</p>

<p>All actors in the graph are weaved together with actor supervision, and actor watching and every error is handled properly via supervisors. In a master, a risky job is isolated and delegated to child actors, so it&#8217;s more robust. In the application, an extra intermediate layer &#8220;Executor&#8221; is created so that we can do fine-grained and fast recovery in case of task failure. A master watches the lifecycle of AppMaster and worker to handle the failures, but the life cycle of Worker and AppMaster are not bound to a Master Actor by supervision, so that Master node can fail independently.  Several Master Actors form an Akka cluster, the Master state is exchanged using the Gossip protocol in a conflict-free consistent way so that there is no single point of failure. With this hierarchy design, we are able to achieve high availability.</p>

<h3 id="application-clock-and-global-clock-service">Application Clock and Global Clock Service</h3>

<p>Global clock service will track the minimum time stamp of all pending messages in the system. Every task will update its own minimum-clock to global clock service; the minimum-clock of task is decided by the minimum of:</p>

<ul>
  <li>Minimum time stamp of all pending messages in the inbox.</li>
  <li>Minimum time stamp of all un-acked outgoing messages. When there is message loss, the minimum clock will not advance.</li>
  <li>Minimum clock of all task states. If the state is accumulated by a lot of input messages, then the clock value is decided by the oldest message&#8217;s timestamp. The state clock will advance by doing snapshots to persistent storage or by fading out the effect of old messages.</li>
</ul>

<p><img src="/img/clock.png" alt="Clock" /></p>

<p>The global clock service will keep track of all task minimum clocks effectively and maintain a global view of minimum clock. The global minimum clock value is monotonically increasing; it means that all source messages before this clock value have been processed. If there is message loss or task crash, the global minimum clock will stop.</p>

<h3 id="how-do-we-optimize-the-message-passing-performance">How do we optimize the message passing performance?</h3>

<p>For streaming application, message passing performance is extremely important. For example, one streaming platform may need to process millions of messages per second with millisecond level latency. High throughput and low latency is not that easy to achieve. There are a number of challenges:</p>

<h4 id="first-challenge-network-is-not-efficient-for-small-messages">First Challenge: Network is not efficient for small messages</h4>

<p>In streaming, typical message size is very small, usually less than 100 bytes per message, like the floating car GPS data. But network efficiency is very bad when transferring small messages. As you can see in below diagram, when message size is 50 bytes, it can only use 20% bandwidth. How to improve the throughput?</p>

<p><img src="/img/through_vs_message_size.png" alt="Throughput vs. Message Size" /></p>

<h4 id="second-challenge-message-overhead-is-too-big">Second Challenge: Message overhead is too big</h4>

<p>For each message sent between two actors, it contains sender and receiver actor path. When sending over the wire, the overhead of this ActorPath is not trivial. For example, the below actor path takes more than 200 bytes.</p>

<div class="highlight"><pre><code class="language-javascript"><span class="nx">akka</span><span class="p">.</span><span class="nx">tcp</span><span class="o">:</span><span class="c1">//system1@192.168.1.53:51582/remote/akka.tcp/2120193a-e10b-474e-bccb-8ebc4b3a0247@192.168.1.53:48948/remote/akka.tcp/system2@192.168.1.54:43676/user/master/Worker1/app_0_executor_0/group_1_task_0#-768886794</span></code></pre></div>

<h4 id="how-do-we-solve-this">How do we solve this?</h4>

<p>We implement a custom Netty transportation layer with Akka extension. In the below diagram, Netty Client will translate ActorPath to TaskId, and Netty Server will translate it back. Only TaskId will be passed on wire, it is only about 10 bytes, the overhead is minimized. Different Netty Client Actors are isolated; they will not block each other.</p>

<p><img src="/img/netty_transport.png" alt="Netty Transport" /></p>

<p>For performance, effective batching is really the key! We group multiple messages to a single batch and send it on the wire. The batch size is not fixed; it is adjusted dynamically based on network status. If the network is available, we will flush pending messages immediately without waiting; otherwise we will put the message in a batch and trigger a timer to flush the batch later.</p>

<h3 id="how-do-we-do-flow-control">How do we do flow Control?</h3>

<p>Without flow control, one task can easily flood another task with too many messages, causing out of memory error. Typical flow control will use a TCP-like sliding window, so that source and target can run concurrently without blocking each other.</p>

<p><img src="/img/flow_control.png" alt="Flow Control" />
Figure: Flow control, each task is &#8220;star&#8221; connected to input tasks and output tasks</p>

<p>The difficult part for our problem is that each task can have multiple input tasks and output tasks. The input and output must be geared together so that the back pressure can be properly propagated from downstream to upstream. The flow control also needs to consider failures, and it needs to be able to recover when there is message loss.
Another challenge is that the overhead of flow control messages can be big. If we ack every message, there will be huge amount of ack&#8217;d messages in the system, degrading streaming performance. The approach we adopted is to use explicit AckRequest message. The target tasks will only ack back when they receive the AckRequest message, and the source will only send AckRequest when it feels necessary. With this approach, we can largely reduce the overhead.</p>

<h3 id="how-do-we-detect-message-loss">How do we detect message loss?</h3>

<p>For example, for web ads, we may charge for every click, we don&#8217;t want to miscount.  The streaming platform needs to effectively track what messages have been lost, and recover as fast as possible.</p>

<p><img src="/img/messageLoss.png" alt="Message Loss" />
Figure: Message Loss Detection</p>

<p>We use the flow control message AckRequest and Ack to detect message loss. The target task will count how many messages has been received since last AckRequest, and ack the count back to source task. The source task will check the count and find message loss.
This is just an illustration, the real case is more difficulty, we need to handle zombie tasks, and in-the-fly stale messages.</p>

<h3 id="how-gearpump-know-what-messages-to-replay">How Gearpump know what messages to replay?</h3>

<p>In some applications, a message cannot be lost, and must be replayed. For example, during the money transfer, the bank will SMS us the verification code. If that message is lost, the system must replay it so that money transfer can continue. We made the decision to use <strong>source end message storage</strong> and <strong>time stamp based replay</strong>.</p>

<p><img src="/img/replay.png" alt="Replay" />
Figure: Replay with Source End Message Store</p>

<p>Every message is immutable, and tagged with a timestamp. We have an assumption that the timestamp is approximately incremental (allow small ratio message disorder).</p>

<p>We assume the message is coming from a replay-able source, like Kafka queue; otherwise the message will be stored at customizable source end &#8220;message store&#8221;. When the source task sends the message downstream, the timestamp and offset of the message is also check-pointed to offset-timestamp storage periodically. During recovery, the system will first retrieve the right time stamp and offset from the offset-timestamp storage, then it will replay the message store from that time stamp and offset. A Timestamp Filter will filter out old messages in case the message in message store is not strictly time-ordered.</p>

<h3 id="master-high-availability">Master High Availability</h3>

<p>In a distributed streaming system, any part can fail. The system must stay responsive and do recovery in case of errors.</p>

<p><img src="/img/ha.png" alt="HA" />
Figure: Master High Availability</p>

<p>We use Akka clustering to implement the Master high availability. The cluster consists of several master nodes, but no worker nodes. With clustering facilities, we can easily detect and handle the failure of master node crash. The master state is replicated on all master nodes with the Typesafe akka-data-replication  library, when one master node crashes, another standby master will read the master state and take over. The master state contains the submission data of all applications. If one application dies, a master can use that state to recover that application. CRDT LwwMap  is used to represent the state; it is a hash map that can converge on distributed nodes without conflict. To have strong data consistency, the state read and write must happen on a quorum of master nodes.</p>

<h3 id="how-we-do-handle-failures">How we do handle failures?</h3>

<p>With Akka&#8217;s powerful actor supervision, we can implement a resilient system relatively easy. In Gearpump, different applications have a different AppMaster instance, they are totally isolated from each other. For each application, there is a supervision tree, AppMaster-&gt;Executor-&gt;Task. With this supervision hierarchy, we can free ourselves from the headache of zombie process, for example if AppMaster is down, Akka supervisor will ensure the whole tree is shutting down.</p>

<p>There are multiple possible failure scenarios</p>

<p><img src="/img/failures.png" alt="Failures" />
Figure: Possible Failure Scenarios and Error Supervision Hierarchy</p>

<h4 id="what-happen-when-master-crash">What happen when Master Crash?</h4>

<p>When Master crash, other standby masters will be notified, they will resume the master state, and take over control. Worker and AppMaster will also be notified, They will trigger a process to find the new active master, until the resolution complete. If AppMaster or Worker cannot resolve a new Master in a time out, they will make suicide and kill themselves.</p>

<h4 id="what-happen-when-worker-crash">What happen When worker crash?</h4>

<p>When worker crash, the Master will get notified and stop scheduling new computation to this worker. All supervised executors on current worker will be killed, AppMaster can treat it as recovery of executor crash like <a href="#what-happen-when-executor-crash">What happen when executor crash?</a></p>

<h4 id="what-happen-when-appmaster-crash">What happen when AppMaster Crash?</h4>

<p>If a AppMaster crashes, Master will schedule a new resource to create a new AppMaster Instance elsewhere, and then the AppMaster will handle the recovery inside the application. For streaming, it will recover the latest min clock and other state from disk, request resources from master to start executors, and restart the tasks with recovered min clock.</p>

<h4 id="what-happen-when-executor-crash">What happen when executor crash?</h4>

<p>If an Executor Crashes, its supervisor AppMaster will get notified, and request a new resource from the active master to start a new executor, to run the tasks which were located on the crashed executor.</p>

<h4 id="what-happen-when-task-crash">What happen when task crash?</h4>

<p>If a task throws an exception, its supervisor executor will restart that Task.</p>

<p>When &#8220;at least once&#8221; message delivery is enabled, it will trigger the message replaying in the case of message loss. First AppMaster will read the latest minimum clock from the global clock service(or clock storage if the clock service crashes), then AppMaster will restart all the task actors to get a fresh task state, then the source end tasks will replay messages from that minimum clock.</p>

<h3 id="how-exactly-once-work">How exactly once work?</h3>

<p>For some applications, it is extremely important to do &#8220;exactly once&#8221; message delivery. For example, for a real-time billing system, we will not want to bill the customer twice. The goal of &#8220;exactly once&#8221; message delivery is to make sure:
  The error doesn&#8217;t accumulate, today&#8217;s error will not be accumulated to tomorrow.
  Transparent to application developer
We use global clock to synchronize the distributed transactions. We assume every message from the data source will have a unique timestamp, the timestamp can be a part of the message body, or can be attached later with system clock when the message is injected into the streaming system. With this global synchronized clock, we can coordinate all tasks to checkpoint at same timestamp.</p>

<p><img src="/img/checkpointing.png" alt="Checkpoint" />
Figure: Checkpointing and Exactly-Once Message delivery</p>

<p>Workflow to do state checkpointing:</p>

<ol>
  <li>The coordinator asks the streaming system to do checkpoint at timestamp Tc.</li>
  <li>For each application task, it will maintain two states, checkpoint state and current state. Checkpoint state only contains information before timestamp Tc. Current state contains all information.</li>
  <li>When global minimum clock is larger than Tc, it means all messages older than Tc has been processed; the checkpoint state will no longer change, so we will then persist the checkpoint state to storage safely.</li>
  <li>When there is message loss, we will start the recovery process.</li>
  <li>To recover, load the latest checkpoint state from store, and then use it to restore the application status.</li>
  <li>Data source replays messages from the checkpoint timestamp.</li>
</ol>

<p>The checkpoint interval is determined by global clock service dynamically. Each data source will track the max timestamp of input messages. Upon receiving min clock updates, the data source will report the time delta back to global clock service. The max time delta is the upper bound of the application state timespan. The checkpoint interval is bigger than max delta time:</p>

<p><img src="/img/checkpoint_equation.png" alt="Checkpoint Equation" /></p>

<p><img src="/img/checkpointing_interval.png" alt="Checkpointing Interval" />
Figure: How to determine Checkpoint Interval</p>

<p>After the checkpoint interval is notified to tasks by global clock service, each task will calculate its next checkpoint timestamp autonomously without global synchronization.</p>

<p><img src="/img/checkpoint_interval_equation.png" alt="Checkpoint Interval Equation" /></p>

<p>For each task, it contains two states, checkpoint state and current state. The code to update the state is shown in listing below.</p>

<div class="highlight"><pre><code class="language-python"><span class="n">TaskState</span><span class="p">(</span><span class="n">stateStore</span><span class="p">,</span> <span class="n">initialTimeStamp</span><span class="p">):</span>
  <span class="n">currentState</span> <span class="o">=</span> <span class="n">stateStore</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">initialTimeStamp</span><span class="p">)</span>
  <span class="n">checkpointState</span> <span class="o">=</span> <span class="n">currentState</span><span class="o">.</span><span class="n">clone</span>
  <span class="n">checkpointTimestamp</span> <span class="o">=</span> <span class="n">nextCheckpointTimeStamp</span><span class="p">(</span><span class="n">initialTimeStamp</span><span class="p">)</span>
<span class="n">onMessage</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">msg</span><span class="o">.</span><span class="n">timestamp</span> <span class="o">&lt;</span> <span class="n">checkpointTimestamp</span><span class="p">):</span>
    <span class="n">checkpointState</span><span class="o">.</span><span class="n">updateMessage</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
  <span class="n">currentState</span><span class="o">.</span><span class="n">updateMessage</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>  
  <span class="n">maxClock</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">maxClock</span><span class="p">,</span> <span class="n">msg</span><span class="o">.</span><span class="n">timeStamp</span><span class="p">)</span>

<span class="n">onMinClock</span><span class="p">(</span><span class="n">minClock</span><span class="p">):</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">minClock</span> <span class="o">&gt;</span> <span class="n">checkpointTimestamp</span><span class="p">):</span>
    <span class="n">stateStore</span><span class="o">.</span><span class="n">persist</span><span class="p">(</span><span class="n">checkpointState</span><span class="p">)</span>
    <span class="n">checkpointTimeStamp</span> <span class="o">=</span> <span class="n">nextCheckpointTimeStamp</span><span class="p">(</span><span class="n">maxClock</span><span class="p">)</span>
    <span class="n">checkpointState</span> <span class="o">=</span> <span class="n">currentState</span><span class="o">.</span><span class="n">clone</span>

<span class="n">onNewCheckpointInterval</span><span class="p">(</span><span class="n">newStep</span><span class="p">):</span>
  <span class="n">step</span> <span class="o">=</span> <span class="n">newStep</span>  
<span class="n">nextCheckpointTimeStamp</span><span class="p">(</span><span class="n">timestamp</span><span class="p">):</span>
  <span class="n">checkpointTimestamp</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">timestamp</span><span class="o">/</span><span class="n">step</span><span class="p">)</span> <span class="o">*</span> <span class="n">step</span></code></pre></div>

<p>List 1: Task Transactional State Implementation</p>

<h3 id="what-is-dynamic-graph-and-how-it-works">What is dynamic graph, and how it works?</h3>

<p>The DAG can be modified dynamically. We want to be able to dynamically add, remove, and replace a sub-graph.</p>

<p><img src="/img/dynamic.png" alt="Dynamic DAG" />
Figure: Dynamic Graph, Attach, Replace, and Remove</p>

<h2 id="at-least-once-message-delivery-and-kafka">At least once message delivery and Kafka</h2>

<p>The Kafka source example project and tutorials can be found at:
- <a href="https://github.com/gearpump/gearpump/tree/master/examples/streaming/kafka">Kafka connector example project</a>
- <a href="dev-connectors.html">Connect with Kafka source</a></p>

<p>In this doc, we will talk about how the at least once message delivery works.</p>

<p>We will use the WordCount example of <a href="https://github.com/gearpump/gearpump/tree/master/examples/streaming/kafka">source tree</a>  to illustrate.</p>

<h3 id="how-the-kafka-wordcount-dag-looks-like">How the kafka WordCount DAG looks like:</h3>

<p>It contains three processors:
<img src="/img/kafka_wordcount.png" alt="Kafka WordCount" /></p>

<ul>
  <li>KafkaStreamProducer(or KafkaSource) will read message from kafka queue.</li>
  <li>Split will split lines to words</li>
  <li>Sum will summarize the words to get a count for each word.</li>
</ul>

<h3 id="how-to-read-data-from-kafka">How to read data from Kafka</h3>

<p>We use KafkaSource, please check <a href="dev-connectors.html">Connect with Kafka source</a> for the introduction.</p>

<p>Please note that we have set a startTimestamp for the KafkaSource, which means KafkaSource will read from Kafka queue starting from messages whose timestamp is near startTimestamp.</p>

<h3 id="what-happen-where-there-is-task-crash-or-message-loss">What happen where there is Task crash or message loss?</h3>
<p>When there is message loss, the AppMaster will first pause the global clock service so that the global minimum timestamp no longer change, then it will restart the Kafka source tasks. Upon restart, Kafka Source will start to replay. It will first read the global minimum timestamp from AppMaster, and start to read message from that timestamp.</p>

<h3 id="what-method-kafkasource-used-to-read-messages-from-a-start-timestamp-as-we-know-kafka-queue-doesnt-expose-the-timestamp-information">What method KafkaSource used to read messages from a start timestamp? As we know Kafka queue doesn&#8217;t expose the timestamp information.</h3>

<p>Kafka queue only expose the offset information for each partition. What KafkaSource do is to maintain its own mapping from Kafka offset to  Application timestamp, so that we can map from a application timestamp to a Kafka offset, and replay Kafka messages from that Kafka offset.</p>

<p>The mapping between Application timestmap with Kafka offset is stored in a distributed file system or as a Kafka topic.</p>


  </div> <!-- /container -->

  <script src="js/vendor/jquery-2.1.4.min.js"></script>
  <script src="js/vendor/bootstrap-3.3.5.min.js"></script>
  <script src="js/vendor/anchor-1.1.1.min.js"></script>
  <script src="js/main.js"></script>

  <!-- MathJax Section -->
  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      TeX: { equationNumbers: { autoNumber: "AMS" } }
    });
  </script>
  <script>
    // Note that we load MathJax this way to work with local file (file://), HTTP and HTTPS.
    // We could use "//cdn.mathjax...", but that won't support "file://".
    (function(d, script) {
      script = d.createElement('script');
      script.type = 'text/javascript';
      script.async = true;
      script.onload = function(){
        MathJax.Hub.Config({
          tex2jax: {
            inlineMath: [ ["$", "$"], ["\\\\(","\\\\)"] ],
            displayMath: [ ["$$","$$"], ["\\[", "\\]"] ],
            processEscapes: true,
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
          }
        });
      };
      script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') +
        'cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
      d.getElementsByTagName('head')[0].appendChild(script);
    }(document));
  </script>
</body>
</html>