Question sur Berkeley DB: faut il valider les operations par des appels
à la methode sync, ou bien faut il laisser DB se debrouiller et flusher
quand il veut?
--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DINH Viêt Hoà
Question sur Berkeley DB: faut il valider les operations par des appels à la methode sync, ou bien faut il laisser DB se debrouiller et flusher quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
typedef struct { DBTYPE type; int (*close)(const DB *db); int (*del)(const DB *db, const DBT *key, u_int flags); int (*fd)(const DB *db); int (*get)(const DB *db, DBT *key, DBT *data, u_int flags); int (*put)(const DB *db, DBT *key, const DBT *data, u_int flags); int (*sync)(const DB *db, u_int flags); int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags); } DB;
sync A pointer to a routine to flush any cached information to disk. If the database is in memory only, the sync routine has no effect and will always succeed.
-- DINH V. Hoa,
"Le monde n'attend que toi ! " -- FiLH
Question sur Berkeley DB: faut il valider les operations par des appels
à la methode sync, ou bien faut il laisser DB se debrouiller et flusher
quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu
veux.
typedef struct {
DBTYPE type;
int (*close)(const DB *db);
int (*del)(const DB *db, const DBT *key, u_int flags);
int (*fd)(const DB *db);
int (*get)(const DB *db, DBT *key, DBT *data, u_int flags);
int (*put)(const DB *db, DBT *key, const DBT *data,
u_int flags);
int (*sync)(const DB *db, u_int flags);
int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags);
} DB;
sync A pointer to a routine to flush any cached information to disk.
If the database is in memory only, the sync routine has no
effect and will always succeed.
Question sur Berkeley DB: faut il valider les operations par des appels à la methode sync, ou bien faut il laisser DB se debrouiller et flusher quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
typedef struct { DBTYPE type; int (*close)(const DB *db); int (*del)(const DB *db, const DBT *key, u_int flags); int (*fd)(const DB *db); int (*get)(const DB *db, DBT *key, DBT *data, u_int flags); int (*put)(const DB *db, DBT *key, const DBT *data, u_int flags); int (*sync)(const DB *db, u_int flags); int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags); } DB;
sync A pointer to a routine to flush any cached information to disk. If the database is in memory only, the sync routine has no effect and will always succeed.
-- DINH V. Hoa,
"Le monde n'attend que toi ! " -- FiLH
manu
DINH Viêt Hoà wrote:
Question sur Berkeley DB: faut il valider les operations par des appels à la methode sync, ou bien faut il laisser DB se debrouiller et flusher quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation des I/O en le faisant?
-- Emmanuel Dreyfus Publicité subliminale: achetez ce livre! http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
DINH Viêt Hoà <dinh.viet.hoa@free.fr> wrote:
Question sur Berkeley DB: faut il valider les operations par des appels
à la methode sync, ou bien faut il laisser DB se debrouiller et flusher
quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu
veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout
bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation
des I/O en le faisant?
--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
Question sur Berkeley DB: faut il valider les operations par des appels à la methode sync, ou bien faut il laisser DB se debrouiller et flusher quand il veut?
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation des I/O en le faisant?
-- Emmanuel Dreyfus Publicité subliminale: achetez ce livre! http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
DINH Viêt Hoà
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation des I/O en le faisant?
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache en lecture.
Par contre, les perf en écriture, ça dépend de ce que tu appelles "à tout bout de champ". Parce que j'imagine que Berkeley DB aurait plutôt tendance à grouper les écritures. Si jamais tu t'amuses à appeler ->sync() un peu trop souvent, évidemment, tu perds l'optimisation en écriture.
Pour ton application, ne serait-il pas mieux de placer des espèces de points de reprise ? C'est-à-dire, essayer de déterminer un point dans ton application où tu souhaites plutôt être sûr d'avoir tout sur disque, au détriment des performances.
-- DINH V. Hoa,
"Le monde n'attend que toi ! " -- FiLH
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu
veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout
bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation
des I/O en le faisant?
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache
en lecture.
Par contre, les perf en écriture, ça dépend de ce que tu appelles "à
tout bout de champ". Parce que j'imagine que Berkeley DB aurait plutôt
tendance à grouper les écritures. Si jamais tu t'amuses à appeler
->sync() un peu trop souvent, évidemment, tu perds l'optimisation en
écriture.
Pour ton application, ne serait-il pas mieux de placer des espèces de
points de reprise ? C'est-à-dire, essayer de déterminer un point dans
ton application où tu souhaites plutôt être sûr d'avoir tout sur disque,
au détriment des performances.
tu peux éventuellement fermer le fichier pour flusher la base, non ?
Enfin, sinon, tu as un appel ->sync(), qui en théorie, fait ce que tu veux.
Oui, mais la question que je me pose, c'est puis-je l'appeller à tout bout de champ, ou bien est-ce que je casse un mecanisme d'optimisation des I/O en le faisant?
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache en lecture.
Par contre, les perf en écriture, ça dépend de ce que tu appelles "à tout bout de champ". Parce que j'imagine que Berkeley DB aurait plutôt tendance à grouper les écritures. Si jamais tu t'amuses à appeler ->sync() un peu trop souvent, évidemment, tu perds l'optimisation en écriture.
Pour ton application, ne serait-il pas mieux de placer des espèces de points de reprise ? C'est-à-dire, essayer de déterminer un point dans ton application où tu souhaites plutôt être sûr d'avoir tout sur disque, au détriment des performances.
-- DINH V. Hoa,
"Le monde n'attend que toi ! " -- FiLH
manu
DINH Viêt Hoà wrote:
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache en lecture.
C'est tout le sens de a question :)
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
DINH Viêt Hoà <dinh.viet.hoa@free.fr> wrote:
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache
en lecture.
C'est tout le sens de a question :)
--
Emmanuel Dreyfus
A lire: 240 pages en français sur l'administration UNIX avec BSD
http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3
manu@netbsd.org
s'ils ont fait ça bien, à priori, je dirai que ça ne casse pas le cache en lecture.
C'est tout le sens de a question :)
-- Emmanuel Dreyfus A lire: 240 pages en français sur l'administration UNIX avec BSD http://www.eyrolles.com/php.informatique/Ouvrages/9782212112443.php3