cmogstored dev/user discussion/issues/patches/etc
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] cmogstored 1.7.0 - a mogstored alternative
@ 2018-12-18  4:12  6% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2018-12-18  4:12 UTC (permalink / raw)
  To: mogile, cmogstored-public

cmogstored is an alternative implementation of the "mogstored" storage
component of MogileFS.  cmogstored is implemented in C and does not use
Perl at runtime.  cmogstored is the only component you need to install
on a MogileFS storage node.

Changes:

    The big feature in this release is "devNNN/usage" are served
    from memory, allowing up-to-date usage information even
    unwritable/unreadable filesystems.

    This can also be used to reduce spinups and wear on HDDs.

    "devNNN/usage" files are still updated on the FS by default for
    compatibility with existing HTTP servers, but admins may wish
    to disable updates to them by removing all permissions from
    the "usage" files:

            chmod 0000 $MOG_DOCROOT/dev*/usage

    Filesystem errors from the sendfile(2) syscalls are also
    logged to syslog.  There's also a bugfix for zombies for
    libkqueue-on-epoll users, but that doesn't affect native
    kqueue users on *BSDs.

    And the usual round of gnulib, minor doc and style updates.

    18 changes since v1.6.0:

          cmogstored.h: remove unused mog_file.mmptr member
          doc: documentation for ioq
          doc: further comment updates around ioq
          build-aux/txt2pre: support '=' in URLs
          test/inherit: fix ambiguous parenthese warning
          test/inherit: stop testing Ruby itself
          doc: update URLs to HTTPS
          compat_sendfile: ensure this works without an offset
          doc/queues.txt: add key point about only retrieving ONE event
          fix trace.h dependency on probes.h
          update to gnulib.git 90f289f249a266b1afb9c63e182f5d979d17df5f
          http_get.c: log filesystem-level errors from sendfile
          serve /dev*/usage requests from memory
          doc: URL updates to reduce redirects and favor HTTPS
          test/inherit.rb: fix syntax error under Ruby 1.8
          update copyrights for 2018 and use SPDX for "GPL-3.0+"
          selfwake: enable self-pipe with kqueue
          http_parser: workaround parsing OOM in Ragel 6.10

https://bogomips.org/cmogstored/files/cmogstored-1.7.0.tar.gz
SHA-256: b5847b837e72f573832fd5e35d0f541cf5d743c9af10369ea48ecdd9bf8d872b

* homepage: http://bogomips.org/cmogstored/README
* git clone https://bogomips.org/cmogstored.git
* git clone https://bogomips.org/cmogstored.git
* gitweb: http:s//repo.or.cz/w/cmogstored.git
* list: cmogstored-public@bogomips.org (subscription optional)
* archives: https://bogomips.org/cmogstored-public/
* nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.cmogstored

^ permalink raw reply	[relevance 6%]

* [PATCH 2/1] doc: further comment updates around ioq
  @ 2016-12-24  8:51  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-12-24  8:51 UTC (permalink / raw)
  To: cmogstored-public

Let's not forget about this queue, it is a useful design.
---
 cmogstored.h | 10 +++++-----
 ioq.c        |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/cmogstored.h b/cmogstored.h
index f5c682e..db87ac0 100644
--- a/cmogstored.h
+++ b/cmogstored.h
@@ -99,18 +99,18 @@ enum mog_next {
 struct mog_ioq {
 	unsigned cur;
 	unsigned max;
-	pthread_mutex_t mtx;
+	pthread_mutex_t mtx; /* protects cur, max, ioq_head */
 	SIMPLEQ_HEAD(ioq_head, mog_fd) ioq_head;
-	bool contended;
-	struct mog_svc *svc;
+	bool contended; /* hint, not protected */
+	struct mog_svc *svc; /* initialized once at creation */
 };
 
 struct mog_wbuf;
 struct mog_dev {
 	dev_t st_dev;
 	uint32_t devid;
-	struct mog_ioq ioq;
-	struct mog_ioq fsckq;
+	struct mog_ioq ioq; /* normal requests */
+	struct mog_ioq fsckq; /* low-priority for MogileFS fsck */
 };
 
 struct mog_rbuf {
diff --git a/ioq.c b/ioq.c
index c515a8b..9408786 100644
--- a/ioq.c
+++ b/ioq.c
@@ -37,7 +37,7 @@
  *                                 |                   /
  *                                 `---------<---------'
  *
- * mog_ioq_next is automatically called when releases a regular file.
+ * mog_ioq_next is automatically called when a thread releases a regular file.
  */
 __thread struct mog_ioq *mog_ioq_current;
 
@@ -140,7 +140,7 @@ void mog_ioq_next(struct mog_ioq *check_ioq)
 		mog_activeq_push(mog_ioq_current->svc->queue, mfd);
 	}
 	/*
-	 * We may not touch or use client_mfd here anymore.  Another
+	 * We may not touch mfd after mog_activeq_push.  Another
 	 * thread may already have it.  In the worst case, it's been
 	 * closed due to epoll/kqueue running out-of-space and another
 	 * system call (open/accept) may have already reused the FD
-- 
EW


^ permalink raw reply related	[relevance 7%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-12-24  8:33     [PATCH] doc: documentation for ioq Eric Wong
2016-12-24  8:51  7% ` [PATCH 2/1] doc: further comment updates around ioq Eric Wong
2018-12-18  4:12  6% [ANN] cmogstored 1.7.0 - a mogstored alternative Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/cmogstored.git/

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 read-only IMAP folder(s) and NNTP newsgroup(s).