Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
GNU CVS
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mirabilos
GNU CVS
Commits
8c26df8a
Commit
8c26df8a
authored
21 years ago
by
dprice
Browse files
Options
Downloads
Patches
Plain Diff
* cvs.texinfo (Write proxies): New node.
(config): Note new PrimaryServer option.
parent
9e7206f1
Branches
writeproxy
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
doc/ChangeLog
+5
-0
5 additions, 0 deletions
doc/ChangeLog
doc/cvs.texinfo
+74
-0
74 additions, 0 deletions
doc/cvs.texinfo
doc/stamp-vti
+2
-2
2 additions, 2 deletions
doc/stamp-vti
doc/version.texi
+2
-2
2 additions, 2 deletions
doc/version.texi
with
83 additions
and
4 deletions
doc/ChangeLog
+
5
−
0
View file @
8c26df8a
2004-06-07 Derek Price <derek@ximbiot.com>
* cvs.texinfo (Write proxies): New node.
(config): Note new PrimaryServer option.
2004-06-04 Derek Price <derek@ximbiot.com>
2004-06-04 Derek Price <derek@ximbiot.com>
* writeproxy.rtf: Documentation for new writeproxy design.
* writeproxy.rtf: Documentation for new writeproxy design.
...
...
This diff is collapsed.
Click to expand it.
doc/cvs.texinfo
+
74
−
0
View file @
8c26df8a
...
@@ -2134,6 +2134,7 @@ variable.
...
@@ -2134,6 +2134,7 @@ variable.
* GSSAPI authenticated:: Direct connections using GSSAPI
* GSSAPI authenticated:: Direct connections using GSSAPI
* Kerberos authenticated:: Direct connections with Kerberos
* Kerberos authenticated:: Direct connections with Kerberos
* Connecting via fork:: Using a forked @code{cvs server} to connect
* Connecting via fork:: Using a forked @code{cvs server} to connect
* Write proxies:: Distributing load across several CVS servers
@end menu
@end menu
@node Server requirements
@node Server requirements
...
@@ -2960,6 +2961,63 @@ As with @code{:ext:}, the server is called @samp{cvs}
...
@@ -2960,6 +2961,63 @@ As with @code{:ext:}, the server is called @samp{cvs}
by default, or the value of the @code{CVS_SERVER}
by default, or the value of the @code{CVS_SERVER}
environment variable.
environment variable.
@node Write proxies
@subsection Distributing load across several CVS servers
@cindex PrimaryServer, in CVSROOT/config
@cindex Primary server
@cindex Secondary server
@cindex proxy, write
@cindex write proxy
@sc{cvs} can be configured to distribute usage across several @sc{cvs}
servers. This is accomplished by means of one or more @dfn{write proxies}, or
@dfn{secondary servers}, for a single @dfn{primary server}.
When a @sc{cvs} client accesses a secondary server and only sends read
requests, then the secondary server handles the entire request. If the client
sends any write requests, however, the secondary server becomes a transparent
proxy for the primary server, which actually handles the write request.
In this manner, any number of read-only secondary servers may be configured as
write proxies for the primary server, effectively distributing the load from
all read operations between the secondary servers and restricting the load on
the primary server to write operations and pushing changes to the secondaries.
Primary servers will not automatically push changes to secondaries. This must
be configured via a @file{loginfo} script like the following:
@example
ALL rsync -gopr -essh ./ secondary:/cvsroot/%p &
@end example
You would probably actually want to lock directories for write on the secondary
and for read on the primary before running the @samp{rsync} in the above
example, but describing such a setup is beyond the scope of this document.
A secondary advantage of a write proxy setup is that users pointing at the
secondary server can still execute fast read operations while on a network that
connects to the primary over a slow link or even one where the link to the
primary is periodically broken. Only write operations will require the network
link to the primary.
To configure write proxies, the primary must be specified with the
@samp{PrimaryServer} option in @file{CVSROOT/config} (@pxref{config}).
Once a primary server is configured, secondary servers may be configured by:
@enumerate
@item
Duplicating the primary repository at the new location.
@item
Setting up the loginfo file on the primary to propagate writes to the
new secondary.
@item
Configuring local access to the secondary as you would configure access to any
other CVS server (@pxref{Remote repositories}).
@end enumerate
@c ---------------------------------------------------------------------
@c ---------------------------------------------------------------------
@node Read-only access
@node Read-only access
@section Read-only repository access
@section Read-only repository access
...
@@ -14087,8 +14145,24 @@ please see @ref{Updating Commit Files}.
...
@@ -14087,8 +14145,24 @@ please see @ref{Updating Commit Files}.
@emph{Note that new repositories (created with the @code{cvs init} command)
@emph{Note that new repositories (created with the @code{cvs init} command)
will have this value set to @samp{yes}, but the default value is @samp{no}.}
will have this value set to @samp{yes}, but the default value is @samp{no}.}
@cindex PrimaryServer, in CVSROOT/config
@cindex Primary server
@cindex Secondary server
@cindex proxy, write
@cindex write proxy
@item PrimaryServer=@var{CVSROOT}
When specified, and the repository specified by @var{CVSROOT} is not the one
currently being accessed, then the server will turn itself into a transparent
proxy to @var{CVSROOT} for write requests. Only the @samp{:ext:} method is
currently supported for primaries (actually, @samp{:fork:} is supported as
well, but only for testing - if you find another use for accessing a primary
via the @samp{:fork:} method, please send a note to @email{bug-cvs@@gnu.org}
about it). See @xref{Write proxies} for more on configuring and using write
proxies.
@end table
@end table
@c ---------------------------------------------------------------------
@c ---------------------------------------------------------------------
@node Environment variables
@node Environment variables
@appendix All environment variables which affect CVS
@appendix All environment variables which affect CVS
...
...
This diff is collapsed.
Click to expand it.
doc/stamp-vti
+
2
−
2
View file @
8c26df8a
@set UPDATED
20 May
2004
@set UPDATED
7 June
2004
@set UPDATED-MONTH
May
2004
@set UPDATED-MONTH
June
2004
@set EDITION 1.12.8.1
@set EDITION 1.12.8.1
@set VERSION 1.12.8.1
@set VERSION 1.12.8.1
This diff is collapsed.
Click to expand it.
doc/version.texi
+
2
−
2
View file @
8c26df8a
@set UPDATED
20 May
2004
@set UPDATED
7 June
2004
@set UPDATED-MONTH
May
2004
@set UPDATED-MONTH
June
2004
@set EDITION 1.12.8.1
@set EDITION 1.12.8.1
@set VERSION 1.12.8.1
@set VERSION 1.12.8.1
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment