head 1.2; access; symbols RPM_4_2_1:1.1.1.5 RPM_4_2:1.1.1.5 RPM_4_1_1:1.1.1.5 RPM_4_1:1.1.1.4 RPM_4_0_5:1.1.1.3 RPM_4_0_4:1.1.1.2 RPM_4_0_3:1.1.1.1 RPM:1.1.1; locks; strict; comment @# @; 1.2 date 2008.01.02.09.55.32; author rse; state dead; branches; next 1.1; commitid z4cpSiAhOCXk5PLs; 1.1 date 2001.07.23.20.45.38; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2001.07.23.20.45.38; author rse; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2002.01.08.00.30.12; author rse; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2003.01.18.13.49.03; author rse; state Exp; branches; next 1.1.1.4; 1.1.1.4 date 2001.10.15.03.47.34; author rse; state Exp; branches; next 1.1.1.5; 1.1.1.5 date 2003.01.18.14.05.00; author rse; state Exp; branches; next ; desc @@ 1.2 log @remove the ancient RPM 4.2.1 source tree copy @ text @
|
![]() ![]() ![]() |
Changing a Berkeley DB application to remotely call a server program requires only a few changes on the client side:
The client application provides a few pieces of information to Berkeley DB as part of the DB_ENV->set_rpc_server call:
The only other item of interest to the client is the home directory that is given to the DB_ENV->open call. The server is started with a list of allowed home directories. The client must use one of those names (where a name is the last component of the home directory). This allows the pathname structure on the server to change without client applications needing to be aware of it.
Once the DB_ENV->set_rpc_server call has been made, the client is connected to the server, and all subsequent Berkeley DB operations will be forwarded to the server. The client does not need to be otherwise aware that it is using a database server rather than accessing the database locally.
It is important to realize that the client portion of the Berkeley DB library acts as a simple conduit, forwarding Berkeley DB interface arguments to the server without interpretation. This has two important implications. First, all pathnames must be specified relative to the server. For example, the home directory and other configuration information passed by the application when creating its environment or databases must be pathnames for the server, not the client system. In addition, because there is no logical bundling of operations at the server, performance is usually significantly less than when Berkeley DB is embedded within the client's address space, even if the RPC is to a local address.
![]() ![]() ![]() |
Copyright Sleepycat Software @ 1.1 log @Initial revision @ text @d1 1 a1 1 @ 1.1.1.1 log @Import: RPM 4.0.3 @ text @@ 1.1.1.2 log @Import: RPM 4.0.4 @ text @d1 1 a1 1 d27 1 a27 1