Интересная идея. Только надо разработать стратегию динамического увеличения диапазона хэша. Как это сделать эффективно, чтобы не налетель на однократный O(N) при очередной вставке, не вполне понятно.
Это не решит проблемы. Если они сделаны по типу b-tree, то чтобы не жрать в недецких количествах память индексы должны быть кучными, что хрен обеспечишь. Во-вторых, нефигово было бы ограничить длину целого ключа, иначе сильно распухнет индекс. Плюс пойдут тормоза из-за long-int.
Хотя... В моем случае у меня как раз таки есть возможность раздать индексы всем инструментам так, чтобы они были кучными. Надо попробовать.
Может быть тупой вопрос, но как мерялось время? И разница в 15 секунд из 10 минут общего времени работы - это очень важный параметр? Есть ещё куча операций помимо "приёмки" данных?
при помощи функции statistics с параметром wall_clock. Мерялось чистое время обработки.
Разница в 15 секунд на данном тесте на самом деле важна - в тесте фигурирует 100 инструментов, а проектная мощность должна быть в районе десятков тысяч инструментов, а желательно иметь запас до сотен тысяч. Пусть и не с такой средней нагрузкой, как 1000 котировок в минуту - такое реально будет не более чем по тысяче инструментов в пике.
Why Mnesia?
anonymous
December 20 2007, 10:44:26 UTC
Откровенно говоря не понял причем здесь мнезиа. Мы используем мнезию для синхронизации в системе обмена сообщениями. В наших тестах при использовании одного нода с yaws+mnesia (при установке disk-copy), получилось пока предварительно 150 запросов в секунду(это когда мы пишем in-сообщение и читаем out-сообщение) без всяких оптимизаций. Поэтому интересно было бы подробней узнать о Ваших тестах. Может наш тест слишком наивный?
Re: Why Mnesia?gapertonDecember 20 2007, 15:19:29 UTC
Зависит от ваших запросов.
Мой тест: 1) один узел. 2) Intel Core Duo 1,8 3) 10000 транзакций 4) каждая транзакция - 100 операций "чтение" - "запись" в ram only таблицу 5) Каждая тысячная транзакция + операция "запись" в таблицу disk only
Re: Why Mnesia?
anonymous
December 20 2007, 16:56:35 UTC
Понятно зависит, одно дело, если я буду пихать в таблицу несколько десятков строк, а другое мегабайт информации. Так сколько информации вы пихаете в одной транзакции в мнезию?
Comments 28
Reply
Reply
Reply
Хотя... В моем случае у меня как раз таки есть возможность раздать индексы всем инструментам так, чтобы они были кучными. Надо попробовать.
Reply
И разница в 15 секунд из 10 минут общего времени работы - это очень важный параметр? Есть ещё куча операций помимо "приёмки" данных?
Reply
Разница в 15 секунд на данном тесте на самом деле важна - в тесте фигурирует 100 инструментов, а проектная мощность должна быть в районе десятков тысяч инструментов, а желательно иметь запас до сотен тысяч. Пусть и не с такой средней нагрузкой, как 1000 котировок в минуту - такое реально будет не более чем по тысяче инструментов в пике.
Reply
Reply
Reply
Reply
Reply
Мой тест:
1) один узел.
2) Intel Core Duo 1,8
3) 10000 транзакций
4) каждая транзакция - 100 операций "чтение" - "запись" в ram only таблицу
5) Каждая тысячная транзакция + операция "запись" в таблицу disk only
Reply
Reply
Reply
-joel
Reply
btw, do you know the way how you can get a random access to disk_log records? I can't find anything to help with this.
Reply
Leave a comment