ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: Inet-Admins
Inet-Admins mailing list archive (inet-admins@info.east.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [inet-admins] database engine for high load



> From owner-inet-admins@info.east.ru Mon Feb 21 11:40:13 2000
> To: inet-admins@info.east.ru
> From: Alex Tutubalin <lexa@lexa.ru>
> Subject: [inet-admins] database engine for high load
> Date: Mon, 21 Feb 2000 11:37:34 +0300
>
>
> Hi,
>
>  ia> Berkeley DB 1.85 на P200 обеспечивает порядка 2200 put/get в секунду
>  ia> еще с тем,  что все идет через самописный интерфейс UDP 127.0.0.1.
>  ia> Если у тебя insert/update не многоключевые - это ли не то, что надо?
> У меня составной ключ и multiple readers. Из-за второго 1.85 не подходит, нужна 
> 2.x (либо все обращения делать через 'db server', но это именно то чего не 
> хочется)
>
> С 2.x на моих таблицах (hash) получается
>  - первые 100000 записей - около 1000 get+put/sec (это с shared mpool,
>    иначе не работает multiple reader)
>  - при росте таблицы скорость падает до ~600 в секунду.
hash, особенно при больших (>10000) таблицах начинает реально тормозить.
используй btree

>
> Долго не экспериментировал.
>
>  ia> мне кажется, что максимально что можно было бы выжать оптимизируя БД
>  ia> и интерфейс (msg, unix dgram) - не больше, чем в полтора раза
>  ia> ускоришь.
> А нет исходников того сервера (или выжимки) на почитать ? Может я что-то просто 
> не знаю или не юзаю ?
к сожалению, это никак.
в твоем случае подошло-бы вот что -
dumb datagram server, который принимает запросы на чтение/запись,
и делает свое db_get/db_put. concurrency - без проблем, все
решается на уровне IPC. никакой многопотоковости/многоселектовости.
и не важно сколько readers/writers. ограничение - размер ключа/данных
8-16 Кб.

в качестве чернового эксперимента можно сделать тестовую программу,
которая открывает на диске файл БД, эмулирует твои запросы - без
всякого interprocess communications. Конечно, аггрегирование
составных ключей из нескольких таблиц в запросах нужно будет делать
самому, он если они не очень сложные и узко определены, овчинка
будет стоить выделки. Но у меня везде требования были простые - 
один простой ключ и данные. 




Sincerely your,
	Cyril A. Vechera
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
Archive is accessible on http://info.east.ru/rus/inetadm.html



 




Copyright © Lexa Software, 1996-2009.