You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dm...@apache.org on 2020/02/07 19:25:15 UTC
svn commit: r1873754 - in /ignite/site/branches/ignite-redisign: ./
features/ images/ includes/ use-cases/ use-cases/comparison/
use-cases/platforms/
Author: dmagda
Date: Fri Feb 7 19:25:14 2020
New Revision: 1873754
URL: http://svn.apache.org/viewvc?rev=1873754&view=rev
Log:
Added digital integration hub use case and removed old pages adjusting redirects
Added:
ignite/site/branches/ignite-redisign/images/digital-hub.png (with props)
ignite/site/branches/ignite-redisign/use-cases/datagrid.html
- copied, changed from r1873753, ignite/site/branches/ignite-redisign/features/datagrid.html
ignite/site/branches/ignite-redisign/use-cases/dih.html
- copied, changed from r1873721, ignite/site/branches/ignite-redisign/use-cases/hpc.html
ignite/site/branches/ignite-redisign/use-cases/provenusecases.html
- copied, changed from r1873753, ignite/site/branches/ignite-redisign/provenusecases.html
Removed:
ignite/site/branches/ignite-redisign/features/datagrid.html
ignite/site/branches/ignite-redisign/provenusecases.html
ignite/site/branches/ignite-redisign/use-cases/comparison/
ignite/site/branches/ignite-redisign/use-cases/platforms/
Modified:
ignite/site/branches/ignite-redisign/.htaccess
ignite/site/branches/ignite-redisign/download.html
ignite/site/branches/ignite-redisign/includes/header.html
Modified: ignite/site/branches/ignite-redisign/.htaccess
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/.htaccess?rev=1873754&r1=1873753&r2=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/.htaccess (original)
+++ ignite/site/branches/ignite-redisign/.htaccess Fri Feb 7 19:25:14 2020
@@ -14,6 +14,7 @@ Redirect 301 /features/persistence.html
Redirect 301 /features/deploy.html /arch/clustering.html
Redirect 301 /features/igniterdd.html /use-cases/spark/shared-memory-layer.html
Redirect 301 /use-cases/spark/shared-memory-layer.html /use-cases/spark-acceleration.html
+Redirect 301 /use-cases/spark/sql-queries.html /use-cases/spark-acceleration.html
Redirect 301 /use-cases/caching/database-caching.html /use-cases/in-memory-cache.html
Redirect 301 /use-cases/database/in-memory-database.html /use-cases/in-memory-database.html
Redirect 301 /use-cases/database/distributed-database.html /use-cases/in-memory-database.html
@@ -24,6 +25,13 @@ Redirect 301 /features/igfs.html /use-ca
Redirect 301 /features/mapreduce.html /use-cases/hadoop-acceleration.html
Redirect 301 /use-cases/database/key-value-store.html /use-cases/key-value-store.html
Redirect 301 /usecases.html /
+Redirect 301 /use-cases/comparison/ignite-for-rdbms.html /
+Redirect 301 /use-cases/comparison/ignite-for-nosql.html /
+Redirect 301 /features/datagrid.html /use-cases/datagrid.html
+Redirect 301 /use-cases/platforms/dotnet.html /features/multilanguage.html
+Redirect 301 /provenusecases.html /use-cases/provenusecases.html
+Redirect 301 /features/datavisualization.html /features/manageandmonitor.html
+Redirect 301 /addons.html /features.html
RewriteEngine On
Modified: ignite/site/branches/ignite-redisign/download.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/download.html?rev=1873754&r1=1873753&r2=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/download.html (original)
+++ ignite/site/branches/ignite-redisign/download.html Fri Feb 7 19:25:14 2020
@@ -127,14 +127,14 @@ under the License.
onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_sql');">
Distributed SQL</a>
</li>
- <li><a href="/features/datagrid.html" aria-label="DataGrid"
+ <li><a href="/use-cases/key-value-store.html" aria-label="DataGrid"
onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_key_value');">
Distributed Key-Value</a>
</li>
- <!--<li><a href="/arch/persistence.html"-->
- <!--onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'persistence');">-->
- <!--Distributed Persistence</a>-->
- <!--</li>-->
+ <li><a href="/arch/persistence.html"
+ onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'persistence');">
+ Native Persistence</a>
+ </li>
<li><a href="/features/transactions.html" aria-label="Transactions"
onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'acid_transactions');">
ACID Transactions</a>
@@ -165,95 +165,73 @@ under the License.
<!-- Ignite tooling. -->
<li role="presentation" class="submenu-header">Tooling</li>
- <li><a href="/features/datavisualization.html#apache-ignite-web-console" aria-label="Ignite Web Console"
- onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'ignite_web_console');">
- Ignite Web Console</a>
- </li>
- <li><a href="/features/datavisualization.html" aria-label="Data Visualization and Analysis"
- onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'data_visualization');">
- Data Visualization and Analysis</a>
+ <li><a href="/features/manageandmonitor.html" aria-label="Ignite Management & Monitoring"
+ onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'ignite_manage_monitor');">
+ Management & Monitoring</a>
</li>
</ul>
</li>
+
<li class="dropdown" style="cursor: pointer;">
<a class="dropdown-toggle" data-toggle="dropdown" aria-label="Use Cases">Use Cases<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
- <li role="presentation" class="submenu-header">Proven by</li>
- <li><a href="/provenusecases.html" aria-label="Proven Use Cases"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'proven_usecases');">
- Ignite in Production</a>
- </li>
-
- <li class="divider">
- <!--Database-->
- <li role="presentation" class="submenu-header">Data Store</li>
- <li><a href="/use-cases/database/distributed-database.html" aria-label="Data Store"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'distributed-database');">
- Distributed Database</a>
- </li>
- <li><a href="/use-cases/database/in-memory-database.html" aria-label="In-Memory Database"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'distributed-database');">
- In-Memory Database</a>
+ <li role="presentation" class="submenu-header">Caching & Database</li>
+ <li><a href="/use-cases/in-memory-cache.html"
+ aria-label="In-Memory Cache"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'in_memory_cache');">
+ In-Memory Cache</a>
</li>
<li><a href="/features/datagrid.html" aria-label="In-Memory Data Grid"
onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'data_grid');">
In-Memory Data Grid</a>
</li>
- <li><a href="/use-cases/database/key-value-store.html" aria-label="Key-Value Store"
+ <li><a href="/use-cases/in-memory-database.html" aria-label="In-Memory Database"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'distributed-database');">
+ In-Memory Database</a>
+ </li>
+ <li><a href="/use-cases/key-value-store.html" aria-label="Key-Value Store"
onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'key_value_store');">
Key-Value Store</a>
</li>
<li class="divider">
- <!--In-Memory Caching-->
- <li role="presentation" class="submenu-header">In-Memory Cache</li>
- <li><a href="/use-cases/caching/database-caching.html" aria-label="Database Caching"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'database-caching');">
- Database Caching</a>
- </li>
- <li><a href="/use-cases/caching/jcache-provider.html" aria-label="JCache Provider"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'jcache-provider');">
- JCache Provider</a>
- </li>
- <li><a href="/use-cases/caching/hibernate-l2-cache.html" aria-label="Hibernate L2 Cache"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'hibernate-l2-cache');">
- Hibernate L2 Cache</a>
+ <li role="presentation" class="submenu-header">Data & Compute Hubs</li>
+ <li><a href="/use-cases/hpc.html" aria-label="High-Performance Computing"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'massive_parallel_processing');">
+ High-Performance Computing</a>
</li>
- <li><a href="/use-cases/caching/web-session-clustering.html" aria-label="Web Session Clustering"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'web-session-clustering');">
- Web Session Clustering</a>
+ <li><a href="/use-cases/dih.html" aria-label="Digital Integration Hub"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'digital_integration_hub');">
+ Digital Integration Hub</a>
</li>
+
<li class="divider">
- <!-- Comparison -->
- <li role="presentation" class="submenu-header">Comparison</li>
- <li><a href="/use-cases/comparison/ignite-for-nosql.html" aria-label="Ignite for NoSQL Users"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'ignite-for-nosql');">
- Ignite for NoSQL Users</a>
+ <li role="presentation" class="submenu-header">Faster Analytics</li>
+ <li><a href="/use-cases/spark-acceleration.html"
+ aria-label="Apache Spark Acceleration"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'apache_spark_acceleration');">
+ Apache Spark Acceleration</a>
</li>
- <li><a href="/use-cases/comparison/ignite-for-rdbms.html" aria-label="Ignite for RDBMS Users"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'ignite-for-rdbms');">
- Ignite for RDBMS Users</a>
+ <li><a href="/use-cases/hadoop-acceleration.html"
+ aria-label="Hadoop Acceleration"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'hadoop_acceleration');">
+ Apache Hadoop Acceleration</a>
</li>
+
<li class="divider">
- <!--Ignite with Spark-->
- <li role="presentation" class="submenu-header">Ignite with Spark</li>
- <li><a href="/use-cases/spark/shared-memory-layer.html" aria-label="In-Memory Store for Spark"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'shared-memory-layer');">
- In-Memory Store for Spark</a>
- </li>
- <li><a href="/use-cases/spark/sql-queries.html" aria-label="Faster SQL for Spark"
- onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'sql-queries');">
- Faster Sql for Spark</a>
+ <li role="presentation" class="submenu-header">Ignite in Production</li>
+ <li><a href="/provenusecases.html" aria-label="Powered by Ignite"
+ onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'proven_usecases');">
+ Powered by Ignite</a>
</li>
</ul>
</li>
<li class="dropdown" style="cursor: pointer;">
<a class="dropdown-toggle" data-toggle="dropdown" aria-label="Resources">Resources
- <span
- class="caret"></span></a>
+ <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li role="presentation" class="submenu-header">Docs & APIs</li>
<li><a href="#">APIs</a></li>
@@ -302,7 +280,7 @@ under the License.
<li class="divider"></li>
<li role="presentation" class="submenu-header">Meetups & Events</li>
- <li><a href="/events.html">Ignite Meetups</a></li>
+ <li><a href="/meetup-groups.html">Ignite Meetups</a></li>
<li><a href="/events.html">Upcoming Events</a></li>
</ul>
</li>
Added: ignite/site/branches/ignite-redisign/images/digital-hub.png
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/images/digital-hub.png?rev=1873754&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ignite/site/branches/ignite-redisign/images/digital-hub.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: ignite/site/branches/ignite-redisign/includes/header.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/includes/header.html?rev=1873754&r1=1873753&r2=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/includes/header.html (original)
+++ ignite/site/branches/ignite-redisign/includes/header.html Fri Feb 7 19:25:14 2020
@@ -128,7 +128,7 @@
onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'massive_parallel_processing');">
High-Performance Computing</a>
</li>
- <li><a href="#TODO" aria-label="Digital Integration Hub"
+ <li><a href="/use-cases/dih.html" aria-label="Digital Integration Hub"
onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'digital_integration_hub');">
Digital Integration Hub</a>
</li>
@@ -150,7 +150,7 @@
<li class="divider">
<li role="presentation" class="submenu-header">Ignite in Production</li>
- <li><a href="/provenusecases.html" aria-label="Powered by Ignite"
+ <li><a href="/use-cases/provenusecases.html" aria-label="Powered by Ignite"
onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'proven_usecases');">
Powered by Ignite</a>
</li>
@@ -158,8 +158,7 @@
</li>
<li class="dropdown" style="cursor: pointer;">
<a class="dropdown-toggle" data-toggle="dropdown" aria-label="Resources">Resources
- <span
- class="caret"></span></a>
+ <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li role="presentation" class="submenu-header">Docs & APIs</li>
<li><a href="#">APIs</a></li>
Copied: ignite/site/branches/ignite-redisign/use-cases/datagrid.html (from r1873753, ignite/site/branches/ignite-redisign/features/datagrid.html)
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/datagrid.html?p2=ignite/site/branches/ignite-redisign/use-cases/datagrid.html&p1=ignite/site/branches/ignite-redisign/features/datagrid.html&r1=1873753&r2=1873754&rev=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/datagrid.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/datagrid.html Fri Feb 7 19:25:14 2020
@@ -33,7 +33,7 @@ under the License.
<!DOCTYPE html>
<html lang="en">
<head>
- <link rel="canonical" href="https://ignite.apache.org/features/datagrid.html"/>
+ <link rel="canonical" href="https://ignite.apache.org/use-cases/datagrid.html"/>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Copied: ignite/site/branches/ignite-redisign/use-cases/dih.html (from r1873721, ignite/site/branches/ignite-redisign/use-cases/hpc.html)
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/dih.html?p2=ignite/site/branches/ignite-redisign/use-cases/dih.html&p1=ignite/site/branches/ignite-redisign/use-cases/hpc.html&r1=1873721&r2=1873754&rev=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/use-cases/hpc.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/dih.html Fri Feb 7 19:25:14 2020
@@ -33,15 +33,15 @@ under the License.
<!DOCTYPE html>
<html lang="en">
<head>
- <link rel="canonical" href="https://ignite.apache.org/use-cases/hpc.html"/>
+ <link rel="canonical" href="https://ignite.apache.org/use-cases/dih.html"/>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description"
- content="Apache Ignite enables high-performance computing by providing APIs for data and
- compute-intensive calculations. Turn your commodity hardware or cloud environment into a distributed supercomputer."/>
+ content="Apache Ignite functions as a low-latency and shared store of the digital integration hub architecture
+ that caches and persists data sets scattered across many disjointed back-end databases and systems."/>
- <title>High-Performance Computing With Apache Ignite</title>
+ <title>Digital Integration Hub - Apache Ignite</title>
<!--#include virtual="/includes/styles.html" -->
@@ -53,80 +53,83 @@ under the License.
<main id="main" role="main" class="container">
<section id="shared-memory-layer" class="page-section">
- <h1 class="first">High-Performance Computing With Apache Ignite</h1>
+ <h1 class="first">Building Digital Integration Hub With Apache Ignite</h1>
<div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 10px 0;">
<div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0">
<p>
- High-performance computing (HPC) is the ability to process data and perform complex
- calculations at high speeds. Apache Ignite enables HPC by providing APIs for compute- and
- data-intensive calculations. The APIs implement the MapReduce paradigm and let you run
- arbitrary tasks across the cluster of Ignite nodes.
- </p>
- <p>
- Having Ignite as a high-performance compute cluster, you can turn a group of commodity
- machines or a cloud environment into a distributed supercomputer of interconnected Ignite
- nodes.
+ A digital integration hub (DIH) is an advanced platform architecture that aggregates
+ multiple back-end systems and databases into a low-latency and shared data store. Apache
+ Ignite can function as this high-performance shared store by caching and persisting data sets
+ dispersed across many disjointed external databases and systems.
</p>
+
<p>
- Ignite enables speed and scale for HPC scenarios by processing records in memory with the
- elimination of data shuffling and network utilization.
+ Applications typically access Ignite via an API services layer and get substantial
+ performance growth by requesting data from this only distributed store that, in its turn,
+ keeps all the records in memory and offloads the back-end systems.
</p>
</div>
<div class="col-sm-6 col-md-6 col-xs-12" style="padding-right:0">
- <img class="img-responsive" src="/images/collocated_processing.png" width="440px"
+ <img class="img-responsive" src="/images/digital-hub.png" width="440px"
style="float:right;"/>
</div>
-
</div>
- <div class="page-heading">Co-located Processing</div>
<p>
- Ignite uses the notion of co-located processing to guide HPC workloads implementations in distributed
- in-memory environments. The primary aim of this type of processing is to increase the performance of
- your complex calculations by running them straight on the Ignite cluster nodes. In such a case, the
- calculations process only local data sets of the cluster nodes, thus, avoiding records shuffling over
- the network. It results in minimal network utilization, and an order of magnitude performance increase
- depending on the data volume.
+ The primary purpose of Ignite as of a DIH component is to enable implementations of large-scale and
+ high-throughput architectures that prevent the back-end systems from being overwhelmed with excessive
+ workloads and to avoid complex integrations between the back-end databases and front-end API services.
</p>
+ <div class="page-heading">Synchronization of Apache Ignite and Back-End Systems</div>
<p>
- To exploit the co-located processing in practice, first, you need to co-locate data by storing related
- records on the same cluster node. Consider your bank account and transactions posted to it as an example
- of related or co-located data. Once you set <code>accountID</code> as an affinity
- key for <code>Transactions</code> table, then you'll instruct Ignite to store all the transactions with
- the same <code>accountId</code> on a single cluster node that keeps the record of your account in
- <code>Accounts</code> table.
+ Ignite, as the high-performance data store, needs to be synchronized with the back-end databases via
+ streaming, event-based, change data capture (CDC), or other techniques.
</p>
<p>
- As soon as data is co-located, Ignite can execute compute- and data-intensive logic on the cluster nodes
- that store the records required for the calculation. For instance, a payment processing system can send
- a compute task for previous transactions verification to a specific Ignite node that stores your account
- record with all completed transactions and finish fraud-detection verifications locally on that machine.
- Thus, instead of pulling all the transactions back to the application over the network, the processing
- system eliminates network utilization by running verifications on the nodes that store actual data.
- The effect is even more significant when the system needs to process millions of transactions per second,
- verifying billions of previously completed payments.
+ Ignite provides a <code>CacheStore</code> interface for one-way synchronization between an Ignite
+ cluster and an external store supporting relational databases and some NoSQL stores out-of-the-box.
+ The interface allows Ignite to write-through or write-behind all the changes to the backend-systems
+ automatically. It also includes transactions - Ignite coordinates and commits a transaction across its
+ in-memory cluster as well as an external transactional database.
</p>
- <div class="page-heading">Compute APIs</div>
+ <p>
+ For bi-directional synchronization, you can consider various streaming, CDC, and event-based
+ technologies. For instance, Kafka, Spark, Debezium are widely used to keep Ignite in sync with other
+ databases.
+ </p>
+
+ <div class="page-heading">Real-Time Analytics</div>
<p>
- Ignite provides compute APIs (also known as compute grid in Ignite) for creation and scheduling custom
- tasks of arbitrary complexity. The APIs implement MapReduce paradigm and presently available for Java,
- C# and C++ programming languages.
+ Although real-time analytics is not a defining characteristic of digital integration hub architectures,
+ in some situations, you can end up consolidating operational and analytical data silos in Apache Ignite.
+ If this happens, you can tap into Ignite SQL, compute and machine learning capabilities for real-time
+ analytics needs.
</p>
<div class="page-heading">Learn More</div>
<p>
- <a href="http://localhost/features/collocatedprocessing.html">
- <b>Co-located processing <i class="fa fa-angle-double-right"></i></b>
+ <a href="https://apacheignite-mix.readme.io/docs/overview" target="docs">
+ <b>Ignite and Streaming Technologies <i class="fa fa-angle-double-right"></i></b>
</a>
</p>
<p>
- <a href="https://apacheignite.readme.io/docs/compute-grid" target="docs">
- <b>Compute APIs <i class="fa fa-angle-double-right"></i></b>
+ <a href="https://apacheignite-fs.readme.io/docs/overview" target="docs">
+ <b>Ignite and Spark Integration <i class="fa fa-angle-double-right"></i></b>
+ </a>
+ </p>
+ <p>
+ <a href="/features/sql.html">
+ <b>Distributed SQL <i class="fa fa-angle-double-right"></i></b>
+ </a>
+ </p>
+ <p>
+ <a href="http://localhost/features/collocatedprocessing.html">
+ <b>Co-located Processing <i class="fa fa-angle-double-right"></i></b>
</a>
</p>
<p>
Copied: ignite/site/branches/ignite-redisign/use-cases/provenusecases.html (from r1873753, ignite/site/branches/ignite-redisign/provenusecases.html)
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/provenusecases.html?p2=ignite/site/branches/ignite-redisign/use-cases/provenusecases.html&p1=ignite/site/branches/ignite-redisign/provenusecases.html&r1=1873753&r2=1873754&rev=1873754&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/provenusecases.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/provenusecases.html Fri Feb 7 19:25:14 2020
@@ -33,7 +33,7 @@ under the License.
<!DOCTYPE html>
<html lang="en">
<head>
- <link rel="canonical" href="https://ignite.apache.org/provenusecases.html" />
+ <link rel="canonical" href="https://ignite.apache.org/use-cases/provenusecases.html" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />