summaryrefslogtreecommitdiffstats
path: root/sbin/ggate/ggatec
Commit message (Collapse)AuthorAgeFilesLines
* Fix warnings found by -Wmising-variable-declarations.ed2012-10-191-1/+1
| | | | | | | | | | | This self-written compiler warning, which is hopefully going to be committed into LLVM sources soon, warns about potentially missing `static' keywords, similar to -Wmissing-prototypes. - bin/pax: Move external declaration of chdname and s_mask into extern.h. - bin/setfacl: Move setfacl.c-specific stuff out of setfacl.h. - sbin/mount_fusefs: Remove char *progname; use getprogname(). - others: add `static' where possible.
* Please welcome HAST - Highly Avalable Storage.pjd2010-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Only Primary node is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total. HAST operates on block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working on block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD. For more information please consult hastd(8), hastctl(8) and hast.conf(5) manual pages, as well as http://wiki.FreeBSD.org/HAST. Sponsored by: FreeBSD Foundation Sponsored by: OMCnet Internet Service GmbH Sponsored by: TransIP BV
* Implement a work-around for poor ggate write performance.pjd2007-04-061-0/+1
|
* Markup fixes.ru2006-09-181-1/+1
|
* Fix a typo s/Made/Make. Use .Pp for a line break, it will quiet thetrhodes2006-06-101-2/+2
| | | | mdoc(7) warning.
* Flush stdout after printing name of created device, so it can be properlypjd2006-03-121-1/+3
| | | | | | | | read when 'ggatec create' is used in backticks or its output is piped to another command. Submitted by: Paul Schenkeveld MFC after: 3 days
* -mdoc sweep.ru2005-11-181-1/+3
|
* Update manual page after ggate rewrite.pjd2005-07-291-7/+6
| | | | MFC after: 1 day
* Reimplement ggatec/ggated applications.pjd2005-07-082-195/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change communication protocol to be much more resistant on network problems and to allow for much better performance. Better performance is achieved by creating two connections between ggatec and ggated one for sending the data and one for receiving it. Every connection is handled by separeted thread, so there is no more synchronous data flow (send and wait for response), now one threads sends all requests and another receives the data. Use two threads in ggatec(8): - sendtd, which takes I/O requests from the kernel and sends them to the ggated daemon on the other end; - recvtd, which waits for ggated responses and forwards them to the kernel. Use three threads in ggated(8): - recvtd, which waits for I/O requests and puts them onto incoming queue; - disktd, which takes requests from the incoming queue, does disk operations and puts finished requests onto outgoing queue; - sendtd, which takes finished requests from the outgoing queue and sends responses back to ggatec. Because there were major changes in communication protocol, there is no backward compatibility, from now on, both client and server has to run on 5.x or 6.x (or at least ggated should be from the same FreeBSD version on which ggatec is running). For Gbit networks some buffers need to be increased. I use those settings: kern.ipc.maxsockbuf=16777216 net.inet.tcp.sendspace=8388608 net.inet.tcp.recvspace=8388608 and I use '-S 4194304 -R 4194304' options for both, ggatec and ggated. Approved by: re (scottl)
* Sort sections.ru2005-01-181-7/+7
|
* Added the EXIT STATUS section where appropriate.ru2005-01-171-1/+1
|
* Fix/clean up return values checking.pjd2004-09-081-9/+9
|
* Print mediasize in human readable form as well.pjd2004-06-211-2/+2
|
* Various style.Makefile(5) improvements.pjd2004-05-201-6/+6
| | | | Provoked by: ru
* Polish the mdoc(7) markup.ru2004-05-121-31/+28
|
* Add missing command.pjd2004-05-031-1/+1
|
* Don't repeat handshake.pjd2004-05-031-4/+4
| | | | | | | | | | | | | | | This little thing can cause a deadlock, because taste mechanism start to work after creation of ggate provider and I/O requests are sent from other classes from the g_event thread, so number of pending events isn't 0. Now ggatec(8) start second handshake and ggated(8) is trying to open GEOM provider (for example md(4)) and it can't, because it hangs on g_waitidle() in g_dev_open(). g_waitidle() cannot finish because there is a pending read on event queue, and this read can't be finished, because ggated(8) can't open target device. GEOM Gate will recover from this deadlock, because requests will timeout, but it of course isn't the best solution and I don't know better one for now, so we should avoid opening GEOM providers while there are pending requests in event queue.
* Paths correction.pjd2004-05-031-2/+2
| | | | Pointed out by: ache, make buildworld
* Fix compiling on 64-bit architectures.pjd2004-05-021-1/+1
|
* GEOM Gate network client and control utility.pjd2004-04-303-0/+708
OpenPOWER on IntegriCloud