<!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.7.3 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="http://gearpump.io">Gearpump
          <span class="label label-primary" style="font-size: .6em">0.7.3</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="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-local.html">Local Mode</a><li>
              <li><a href="deployment-standalone.html">Standalone Mode</a></li>
              <li><a href="deployment-yarn.html">YARN Mode</a></li>
              <li><a href="deployment-docker.html">Docker Mode</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>
