The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Результаты измерения производительности BerkeleyDB"
Отправлено Аноним, 14-Апр-09 10:59 
>Насколько я понял, тестируется скорость _записи_ в файл (file IO) и в
>BerkeleyDB. При этом, чтобы в файл что-то можно было записать -
>его надо открыть. Для BDB - это не столь важно, можно
>открыть файл с базой в начале, а потом иметь в наличии
>готовый дескриптор. Это, кстати, рекомендуемый способ работы с BDB, поскольку открытие
>файла - дорогая операция. Я не знаю, как это сделано у
> zbr, но есть нехорошие подозрения, что тестирует он как раз
>скорость открытия/закрытия файлов.

Код можно посмотреть в git: http://www.ioremap.net/cgi-bin/gitweb.cgi?p=elliptics.git;a=...
Напрмиер я нашел саму запись, такой же блок для обновления истории, больше для этой команды ничего нет.

Открытие файла недорогая операция, гораздо медленнее обновление кучи метаданных, связанное с созданием нового объекта в директории.


276                 memset(&key, 0, sizeof(DBT));
277                 memset(&data, 0, sizeof(DBT));
278
279                 key.data = cmd->id;
280                 key.size = DNET_ID_SIZE;
281
282                 data.data = buf;
283                 data.size = io->size;
284                 data.ulen = io->size;
285                 data.flags = DB_DBT_PARTIAL | DB_DBT_USERMEM;
286                 data.doff = io->offset;
287                 data.dlen = io->size;
288
289                 err = e->cursor->c_put(e->cursor, &key, &data, DB_KEYFIRST);
290                 if (err) {
291                         e->db->err(e->db, err, "%s: object put failed: offset: %llu, size: %llu, err: %d",
292                                         dnet_dump_id(cmd->id), (unsigned long long)io->offset,
293                                         (unsigned long long)io->size, err);
294                         goto err_out_exit;
295                 }
296

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру