List for cgit developers and users
 help / color / mirror / Atom feed
From: cgit at cryptocrack.de (Lukas Fleischer)
Subject: [PATCH 2/2] Add a cache-snapshot-ttl configuration variable
Date: Wed,  5 Feb 2014 10:46:04 +0100	[thread overview]
Message-ID: <1391593564-10662-3-git-send-email-cgit@cryptocrack.de> (raw)
In-Reply-To: <1391593564-10662-1-git-send-email-cgit@cryptocrack.de>

This can be used to specify the TTL for snapshots. Snapshots are usually
static and do not ever change. On the other hand, tarball generation is
CPU intensive.

One use case of this setting (apart from increasing the lifetime of
snapshot cache slots) is caching of snapshots while disabling the cache
for static/dynamic HTML pages (by setting TTL to zero for everything
except for snapshot requests).

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c       | 6 ++++++
 cgit.h       | 1 +
 cgitrc.5.txt | 5 +++++
 3 files changed, 12 insertions(+)

diff --git a/cgit.c b/cgit.c
index 36251e7..1ca5735 100644
--- a/cgit.c
+++ b/cgit.c
@@ -184,6 +184,8 @@ static void config_cb(const char *name, const char *value)
 		ctx.cfg.cache_dynamic_ttl = atoi(value);
 	else if (!strcmp(name, "cache-about-ttl"))
 		ctx.cfg.cache_about_ttl = atoi(value);
+	else if (!strcmp(name, "cache-snapshot-ttl"))
+		ctx.cfg.cache_snapshot_ttl = atoi(value);
 	else if (!strcmp(name, "case-sensitive-sort"))
 		ctx.cfg.case_sensitive_sort = atoi(value);
 	else if (!strcmp(name, "about-filter"))
@@ -331,6 +333,7 @@ static void prepare_context(void)
 	ctx.cfg.cache_max_create_time = 5;
 	ctx.cfg.cache_root = CGIT_CACHE_ROOT;
 	ctx.cfg.cache_about_ttl = 15;
+	ctx.cfg.cache_snapshot_ttl = -1;
 	ctx.cfg.cache_repo_ttl = 5;
 	ctx.cfg.cache_root_ttl = 5;
 	ctx.cfg.cache_scanrc_ttl = 15;
@@ -995,6 +998,9 @@ static int calc_ttl()
 	if (!strcmp(ctx.qry.page, "about"))
 		return ctx.cfg.cache_about_ttl;
 
+	if (!strcmp(ctx.qry.page, "snapshot"))
+		return ctx.cfg.cache_snapshot_ttl;
+
 	if (ctx.qry.has_sha1)
 		return ctx.cfg.cache_static_ttl;
 
diff --git a/cgit.h b/cgit.h
index 496d0f6..0badc64 100644
--- a/cgit.h
+++ b/cgit.h
@@ -210,6 +210,7 @@ struct cgit_config {
 	int cache_scanrc_ttl;
 	int cache_static_ttl;
 	int cache_about_ttl;
+	int cache_snapshot_ttl;
 	int case_sensitive_sort;
 	int embedded;
 	int enable_filter_overrides;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 8eafc4a..33929f5 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -88,6 +88,11 @@ cache-about-ttl::
 	version of the repository about page. Negative values have infinite
 	ttl. Default value: "15".
 
+cache-snapshot-ttl::
+	Number which specifies the time-to-live, in minutes, for the cached
+	version of snapshots. Negative values have infinite ttl. Default
+	value: "-1".
+
 cache-size::
 	The maximum number of entries in the cgit cache. Default value: "0"
 	(i.e. caching is disabled).
-- 
1.8.5.3



  parent reply	other threads:[~2014-02-05  9:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-05  9:46 [PATCH 0/2] Add an option to cache snapshots cgit
2014-02-05  9:46 ` [PATCH 1/2] Skip cache slot when time-to-live is zero cgit
2014-02-06 19:52   ` Jason
2014-02-06 21:07     ` cgit
     [not found]       ` <CAHmME9q805o8hczd1MW1Mw+DzJzRmE-5C9i6CB+cX2um_R=+yA@mail.gmail.com>
2014-02-08 13:41         ` Jason
2014-02-08 13:45           ` cgit
2014-02-20 18:58             ` Jason
2014-02-20 19:59               ` [PATCH] " cgit
2014-02-20 20:03                 ` Jason
2014-02-20 20:07                 ` cgit
2014-02-21  0:37                   ` Jason
2014-02-05  9:46 ` cgit [this message]
2014-02-05 14:44   ` [PATCH 2/2] Add a cache-snapshot-ttl configuration variable Jason
2014-02-05 15:09     ` cgit
2014-02-08 13:36       ` cgit
2014-02-20 18:56         ` Jason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1391593564-10662-3-git-send-email-cgit@cryptocrack.de \
    --to=cgit@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).