* [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).