|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Поскольку из sybase топика нас попросили, выношу обсуждение в отдельный топик. Давайте поговорим о масштабировании различных СУБД. Предлагаю рассматривать промышленные СУБД, работающие на кластерах, архитектуры shared nothig (Informix XPS, DB2 EEE, Teradata , MS SQL server) vs shared disks (Oracle RAC, ??? ). Только для начала договоримся, что под масштабируемостью понимается что-то типа "scalability indicates the capability of a system to increase performance under an increased load when resources (typically hardware) are added...A system whose performance improves after adding hardware, proportionally to the capacity added, is said to be a scalable system." ( http://en.wikipedia.org/wiki/Scalability ) Т.е, говоря по-русски, в каком масштабе изменения в хардвере отражаются на изменении в производительности. Скажем, если добавили второй процессор и производительность (число транзакций в секунду) выросла в 1.99 раза - ай, маладца ! А если выросла только в 1.4 раза - буу, маздай ! Для затравки немного грязи, вылитой на конкурентов : http://www-306.ibm.com/software/data/highlights/scalecluster.html DB2 UDB out scales Oracle and Microsoft SQL Server DB2 Data Management Software Did you know that Oracle is only certified to scale to 8 nodes and Microsoft SQL Server does not have true clustering support? Here's an interesting quote from Microsoft's SQL Server VP: "We'll do a ton of work in scalability around data warehouses in Yukon for partitioning your data, but it's all going to be focused on a single machine. It will take longer than that for us to really get the shared-nothing approach." Gordon Mangione, SQL Server Vice-President in eWeek interview Sept. 9, 2002 ... Note that the 1.8x scalability claimed by Oracle has a compounding effect. That is, every time you double the number of nodes you loose 20% of the capacity of the cluster. By the time you get to 8 nodes, you have only about 5 nodes worth of power. Modern SMPs scale much better than RAC is able to achieve across a cluster. ... и немного размышлений от фаната RAC : http://blogs.sun.com/roller/page/dcb/?anchor=oracle_rac_s_secret Local SGA memory access latency on an SMP node takes from 100 to 400ns (depending on the type of node). However, if that node is part of a RAC Cluster and it needs to access a memory block on another RAC node's shared SGA (via cache fusion) the latency to retrieve that block will be measured in micro-seconds, often 1000x worse! ... And when you try to spread this out among even two nodes, you suffer the consequences of 1000x higher latency, and 100x less throughput. .. So it is no wonder that RAC can run into scaling issues if the data is not highly partitioned, to reduce to a trickle the amount of remote references and cache fusion transfers. TPC-C is an example of a type of benchmark in which the work is split between each node without inter-node interaction. RAC scales wonderfully in that benchmark. The problem is that most ad-hoc databases that customers are attempting to use with RAC involve significant inter-node communications. You can imagine the challenge, even with Infiniband, which still has 1000x higher latency (according to Oracle's tests). ... Okay... what does all this mean? Well, just that Oracle RAC, as I started out saying, is incredible technology that solves a particularly nasty problem that many customers face. But, you must enter the decision to deploy RAC with full knowledge of the engineering trade offs. RAC can be made to perform well in many environments, given a proper design and data/query partitioning and proper skills training. But in general, if there is appreciable inter-node communications, then you should consider using fewer RAC nodes (eg: 2 or 3), in which each node is larger in size. This keeps memory accesses as local as possible. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2005, 22:55 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
вы похоже так и не прочли мой пост, попробуте еще раз. главный поинт в нем - scalability никак не связана со скоростью: Scalability - The ability to scale hardware and software to support larger or smaller volumes of data and more or less users. The ability to increase or decrease size or capability in cost-effective increments with minimal impact on the unit cost of business and the procurement of additional services. т.е. установив oracle RAC у вас система сможет ослуживать гораздо больше пользователей, но среднее время реакции (читай скорость) вполне может уменьшится. ------- на счет кластеров - у мс кажется есть только failover cluster, поэтому остается только db2... и тут у нас хохма. db2 for os/390 как я понимаю - shared-disk, db2 udb - shared disk. смотрим SAP SD Parallel Standard Application Benchmark Results там еще в 2002-ом 4 x AlphaServer ES45 Model 2, 4-way SMP, Alpha EV6.8CB (21264C), 8MB L2C на oracle9 RAC на 40-50% опережает лучший результат db2 os/390 (shared-nothing тут не канает) т.е. документик от ibm немного устарел :) то что у db2 udb можно данные размазать на 1000 нод вызывает только удивление, с какой целью ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2005, 23:43 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
У SQL Server 2000 данные можно размазать по нескольким серверам и объединить их через представление. Он это называют - federated cluster. В Юконе, к сожалению не знаю пока, нет времени заняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2005, 23:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!вы похоже так и не прочли мой пост, попробуте еще раз. главный поинт в нем - scalability никак не связана со скоростью: Scalability - The ability to scale hardware and software to support larger or smaller volumes of data and more or less users. The ability to increase or decrease size or capability in cost-effective increments with minimal impact on the unit cost of business and the procurement of additional services. т.е. установив oracle RAC у вас система сможет ослуживать гораздо больше пользователей, но среднее время реакции (читай скорость) вполне может уменьшится. то что у db2 udb можно данные размазать на 1000 нод вызывает только удивление, с какой целью ?? 1. вы попробуйте проанализировать ваше определение (непонятно, где вы его взяли) - и вам станет ясно, что "to support volumes of data" == "увеличить число транзакций в секунду", а "cost-effective" == "за стоимость второго процессора получаем примерно удвоение производительности". Число юзеров для СУБД вещь нерелевантная - для больших количеств юзеров придумано мультиплексирование. 2. Ухудшение времени реакции с увеличением нагрузки -вещь, вполне достижимая и при немасштабируемой системе :-))). 3. Я не специалист в Oracle, но ваше утверждение "установив oracle RAC у вас система сможет ослуживать гораздо больше пользователей" вызывает у меня подозрения, что вы о RAC знаете еще меньше меня. 4. То, что вы не понимаете, зачем размазывать базу на 1000 нод, меня в моем мнении только укрепляет. Попробуйте помедитировать над понятиями "пропускной канал", "время доступа в локальной памяти vs время доступа к глобальному кэшу", "отказоустойчивость и single point of failure", "фрагментация данных и распараллеливание их обработки". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 01:09 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
я смотрю вы тут новенький :) тогда убедительная просьба воспользоватся поиском, там всего страниц на 20 флейма, как прочтешь - отвечу, а то рассказывать чем view на partitioned nodes оличается от RAC утомительно. на счет определения - берем 10К юзеров, я беру лочу все таблицы для одного пользователя и генерю им немерено tps в посути одно-пользовательском режиме. tps немеряно, а маштабируемость нулевая. а вот "to support volumes of data" даже если на албанский перевести не получется "увеличить число транзакций в секунду" ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 01:34 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!я смотрю вы тут новенький :) тогда убедительная просьба воспользоватся поиском, там всего страниц на 20 флейма, как прочтешь - отвечу, а то рассказывать чем view на partitioned nodes оличается от RAC утомительно. на счет определения - берем 10К юзеров, я беру лочу все таблицы для одного пользователя и генерю им немерено tps в посути одно-пользовательском режиме. tps немеряно, а маштабируемость нулевая. а вот "to support volumes of data" даже если на албанский перевести не получется "увеличить число транзакций в секунду" ;) Во-первых, не надо фамильярничать с человеком, который на форуме на год больше вас. Во-вторых, приведенный умозрительный пример с одним юзером таки доказывает, что про БД у вас сведения очень... абстрактные. tps для одного юзера будет на порядки меньше, чем для сотни - 1) потому, что выполнение транзакции содержит шаги, которые невозможно распараллелить (установление коннекта, идентификация, синтаксический разбор и оптимизация запроса, отдача результатов, посылка подтверждения) 2) потому, что этапы выполнения транзакции загружают разные подсистемы (сеть, цпу, диск, цпу, сеть) - соответственно, при одном юзере подсистемы будут простаивать. В-третьих, "to support larger volume of data" и есть "увеличить число транзакций/запросов в секунду". Потому что покупка и установка второго винта для хранения исторических данных, равно как и покупка десятка лент, сотни болванок или тысячи дискет врядли относится к масштабированию. В-четвертых, TPC benchmark меряется в транзакциях, а не в юзерах, и знаете почему ? Потому что юзер сам по себе нагрузки практически не создает, пока он сидит и ковыряет в носу. О размерах средних транзакций как-то сумели договориться, а о размере носа среднего юзера - ну никак. Вот и меряют в tps, а не в оборотах пальца в носу минуту . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 02:50 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
AAronУ SQL Server 2000 данные можно размазать по нескольким серверам и объединить их через представление. Он это называют - federated cluster. В Юконе, к сожалению не знаю пока, нет времени заняться. Это не кластер, это все умеют уже лет триста как, мелкософт как обычно намеренно вносит путаницу в терминологию. Кластер это когда приложение не знает что оно размазано. Кластер на уровне ОС - СКЛ сервер не знает, кластер на уровне СКЛ сервера - пользовательское приложение (не путать с клиенской частью) не знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 04:02 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
к проблеме RACа (озвученной vybegallo - internode communication & latency) я бы добавил проблему определения, что одна из нод действительно засбоила, и возможность катастрофических последствий, если через какое-то время она "оживет" Ну и по поводу необходимости 1000 узлов - уже есть клиенты с более чем 500 узлами (db2 ese) Технически можно перешагнуть и 1000 рубеж. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 08:58 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
vybegallo Во-первых, не надо фамильярничать с человеком, который на форуме на год больше вас. ну у меня это стандартная реакция на людей у которых "подозрения что знаете еще меньше меня" ;) по второму вопросу - попробуйте не вникать в каждое слово а уловить смысл всей фразы. мой пример элюстрировал что tps в отрыве от кол-ва пользователей ни какой полезной нагрузки не несет, т.е. tps есть, маштабируемости - нет. дальше - зайдите на tpc.org и откройте любой отчет, вы там найдете и кол-во юзеров и время реакции на каждую подзадачку. Oracle app benchmark просто мериет в юзерах + Response Time. да и вы похоже путаете скорость (Response Time) с tps ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 10:36 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
вот у sap более грамотное определение: Scalability is the ability of a system to efficiently utilize the available hardware resources, and to increase the potential throughput by adding extra hardware. A scalable system fulfills the following two requirements resource consumption increases linearly with load response time remains stable with increasing load Scalability can be limited on any level single process single machine cluster / multiple machines https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/events/sdn-meets-labs-walldorf-05/Performance%20and%20Scalability.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 10:46 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
vybegallo - даш мыло, пришлю интересный док по теме ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 12:01 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ну и как я писал в соседнем треде, есть еще и нагрузка, которую привносит GCS (Global Cache Service) и которая достигает 12% CPU utilization на каждую ноду Правда, это следствие первой причины - inter-node communication. Ну и называть sysplex (кластеризация на mainframe) disk share - это уже перебор. Диски там - одна из малеьких и неприметных фич. Кстати, sysplex наверное и был могильщиком остальных производителей mainframe (off-topic такой) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 13:55 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggvну и как я писал в соседнем треде, есть еще и нагрузка, которую привносит GCS (Global Cache Service) и которая достигает 12% CPU utilization на каждую ноду Правда, это следствие первой причины - inter-node communication. Ну и называть sysplex (кластеризация на mainframe) disk share - это уже перебор. Диски там - одна из малеьких и неприметных фич. Кстати, sysplex наверное и был могильщиком остальных производителей mainframe (off-topic такой) IBM offers both a shared-nothing (for Unix, Linux, and Windows) and a shared-disk (on the mainframe only) approach. Shared-nothing made sense for the distributed platforms because IBM wanted a portable code base and because IBM doesn't control the underlying operating system and hardware for most of those platforms. Years of joint development between the DB2 and the OS/390 and z/OS operating system software teams and the S/390 and zSeries hardware teams went into making the shared-disk approach, normally the less-scalable option, successful on the mainframe. (C) Craig S. Mullins is director of DB2 technology http://www.db2mag.com/db_area/archives/2002/q1/mullins.shtml объяснять про RAC желания нет - уже с вами обсуждали, а вот про ibmвский shared-nothing есть впрос - допустим большая система, там таблички clients, invoices, orders, как я должен их размазать по 500 нодам, чтоб хоть что-то при этом работало и как вы это свяжете с маштабируемостью (определение у нас есть :) ) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 14:32 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
и не смотря на приведенную ссылку, sysplex это гораздо больше, чем совместное использование дисков, вернее это в последнюю очередь совместное использование дисков. Но точнее токо документация поможет, так как опыта нету - в РФ всего одна инсталляция. По поводу RAC и не надо ничего пояснять - не работаюшая архитектура на более чем 4 узлах, и проблемно работающая на 4. По поводу как DPF работать будет - надо спрашивать Deutsche Telekom, Sprint PCS, State Farm Insurance, JPMorganChase и других. Или читать доку, на худой конец. Там (в обзоре архитектуры) написано, как размазываются данные, и как "масштабируются" запросы (распаралелливаются), и даже можно вычитать, как распаралеллить мелкий запрос, который ну никак не хочет занимать больше одного CPU, а нам надо чтобы занял. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 15:19 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
да ... предлагаете мерятся списком кастомеров ? мне это не интересно. RAC работает и в отличии от shared-nothing на реальных OLPT задачах, у реальных кастомеров, где shared-notning тесты SAP SD-paralel ? нешмогли ? да и поскольку у меня плохо с худыми концами и осоьенно с концами в Deutsche Telekom может все же просветите как размазывание на 50 узлов упомянутых 3х табличек скажется на маштабируемости OLPT системы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 16:00 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
на сколько я знаю, shared nothing практически не используется для OLTP, и как раз по причине того, что приложения должны быть заточены под такое окружение - ну то же самое, что мы читали выше о проблемах с RAC and latency Было официальное высказывание - развитие мощности SMP идет опережающими темпами, и существующие можности систем не могут быть освоены клиентскими OLTP приложениями (косвено и последние TPC-C тесты это подтверждают. Да и не косвено), и особого смысла городить кластер OLTP нет - все равно потеря производительности большая (несмотря на sharing/не-sharing) по сравнению с SMP. Ну и опять же - ограничение масштабируемости shared disk. (только не надо затрагивать вопрос стоимости - был бы смысл в построении хотя бы мало узлового RAC'a мало-процессорных дешевых машин если бы не лицензионные отчисления) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 16:50 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggvна сколько я знаю, shared nothing практически не используется для OLTP, и как раз по причине того, что приложения должны быть заточены под такое окружение - ну то же самое, что мы читали выше о проблемах с RAC and latency да-да :) и я четко представляю почему. НО в отличии от shared nothing у оракла есть тьма реальных тестов/инсталяций RAC для OLPT задач, от SAP до OEBS. ggv Было официальное высказывание - развитие мощности SMP идет опережающими темпами, и существующие можности систем не могут быть освоены клиентскими OLTP приложениями (косвено и последние TPC-C тесты это подтверждают. не знаю что за заявление, но явно не оракловое. но я вижу что 10g RAC с процами на 100Mhz слабее оказался быстрей чем новейший MSSQL2005 на TPC-C. ggv особого смысла городить кластер OLTP нет - все равно потеря производительности большая (несмотря на sharing/не-sharing) по сравнению с SMP. могу свалить тучу саксес стори месных (российских) банков которые объясняли зачем им файловер + балансер в виде RAC понадобился и как им было плохо без него. в связи с "10grid" их тьма, вы читать будете ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 17:17 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ну заявление было от IBM - и про их Power , так что MSSQL не в тему. По поводу failover - есть и лучше решение, чем RAC, и у других, и у самого оаракла. RAC при сбое ноды дает 1) большое время перераспределения ответсвенности 2) снижение производительности То есть "два в одном флаконе" (и failover и balancer) чуда не сотворяют. Так что вполне можно заменять такие чудесные двух-нодовые кластера на один SMP с faiover - снижения производительности не будет (повышение может быть) Можно также DPF (shared nothing) с OLTP- но приложение надо писать именно с учетом такой работы (не так уж сложно впрочем) Интересно было бы таки написать такое приложение (адаптировать существующее) и провести замеры. Хм, идея самому понравилась.... Железо/софт есть.... Время надо. PS вопрос стоимости опять таки опущен ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 17:32 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggvну заявление было от IBM - и про их Power , так что MSSQL не в тему. дык оно и понятно, кто ж в рекламе признается что мы не можем OLPT на кластере, приходится рассказывать что не нада ... ggv По поводу failover - есть и лучше решение, чем RAC, и у других, и у самого оаракла. RAC при сбое ноды дает 1) большое время перераспределения ответсвенности 2) снижение производительности 1. вас ввели в заблуждение, 3-5 секунд я наблюдал на демонстрации + зайдите на оракловую ветку, там куча вопросов на эту тему обсуждалось. 2. практически любой уважаемый производитель в течении дня вам заменят вышедшую из строя ноду и работа на это время не остановится. 3. у shared-nothing еще печальней, нужно или дублировать каждую ноду или с тормозами распихивать избыточные данные по нодам и после получить такую же недостачу в нодах. ggv Можно также DPF (shared nothing) с OLTP- но приложение надо писать именно с учетом такой работы (не так уж сложно впрочем) не видел, не верю. ЗЫ. в след раз всетаки запощу саксес стори кому и зачем нужен RAC :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 17:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Ну IBM можно и поверить - в OLTP их SMP делает любые кластера пока. Не вижу оснований для сомнений По поводу 3-5 секунд - вранье, то есть позвольте усомниться. Время определения Instance failure задается параметром, по умолчанию 15 сек, минимум 6 сек. Плюс время на все остальное. Но 6 сек - самоубийство DBA. Если нода оживет - кирдык. Ну а по поводу печальности дублирования каждой ноды для failover - так ничего печального. Каждая 9 после запятой стоит денег, и расходу растут нелинейно. Лицензионно дублирование ноды - одна лицензия, значит расходов только на хард Но мы ведь не ведем дискуссию о стоимости. А раз так - то ничего печального ни с failover, ни с производительностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 18:11 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
особенно порадовало - замена ноды в течении дня.... Вот это действительно печально. Действительно ужасная скорость восстановления. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 18:12 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
я с секундометром не стоял, может и 6 секунд :) дальше, задержку в несколько секунд почуят только юзера упавшей ноды которые просто будут перекинуты на соседнии ноды, не зависимо оживет упавшая или нет. если нода оживет, то ничего не случится - с нее все юзера будут всеравно сняты. на счет лицензий, в oracle standart edition RAC включен бесплатно . никаких дополнительных лицензий не требуется. так что кластер на оракле может леко быть на порядок дешевле SMP решения ibm. на счет востановления ноды я не вижу большого горя если юзеры обнаружат что одна из 4х нод упала и приложение оставшийся день на 25% работает медленее. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 18:34 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Database Recovery in ORAC environment The Database Instance relies on all of these components to implement instance recovery for failed instances, in addition to handling normal database operations. When a database instance or a node in the cluster fails, Oracle cluster database needs to do recovery for the database just as it does for a single instance database. Since other nodes in the cluster is still providing services to the clients, Oracle cluster database makes sure the recovery time is as little as possible through concurrent recovery operations. The global cache service (GCS) maintains global cache resources status to insure the consistency of database. If a node fails, it needs to rebuild the global cache resource information. Recovery cannot start until the GCS finishes rebuilding the information. Effectively, the whole database is “frozen” during this time. Since the cache resources for database blocks are distributed among the cluster nodes, the time needed for rebuilding GCS information is minimized. Only the cache resources that reside or are mastered by the GCSs on the failed nodes need to be rebuilt or re-mastered. This phase takes only a few seconds on average. http://otn.oracle.com/products/oracle9i/pdf/rac_building_ha_rel2.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 18:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!! ggvну и как я писал в соседнем треде, есть еще и нагрузка, которую привносит GCS (Global Cache Service) и которая достигает 12% CPU utilization на каждую ноду Правда, это следствие первой причины - inter-node communication. Ну и называть sysplex (кластеризация на mainframe) disk share - это уже перебор. Диски там - одна из малеьких и неприметных фич. Кстати, sysplex наверное и был могильщиком остальных производителей mainframe (off-topic такой) IBM offers both a shared-nothing (for Unix, Linux, and Windows) and a shared-disk (on the mainframe only) approach. Shared-nothing made sense for the distributed platforms because IBM wanted a portable code base and because IBM doesn't control the underlying operating system and hardware for most of those platforms. Years of joint development between the DB2 and the OS/390 and z/OS operating system software teams and the S/390 and zSeries hardware teams went into making the shared-disk approach, normally the less-scalable option, successful on the mainframe. (C) Craig S. Mullins is director of DB2 technology http://www.db2mag.com/db_area/archives/2002/q1/mullins.shtml объяснять про RAC желания нет - уже с вами обсуждали, а вот про ibmвский shared-nothing есть впрос - допустим большая система, там таблички clients, invoices, orders, как я должен их размазать по 500 нодам, чтоб хоть что-то при этом работало и как вы это свяжете с маштабируемостью (определение у нас есть :) ) ? Моя точка зрения, в том числе на указанную статью : 1. Shared disk архитектура относительно нормально масштабируется при использовании специализированного оборудования (межнодной шины/коммуникатора) - что есть на мэйнфремах и чего нет у Оракла. 2. Пользователи Oracle используют RAC в первую очередь для failover, а не для повышения общей производительности, которая растет совершенно нелинейно с добавлением нодов. 3. MMP архитектура подходит для DSS систем и не подходит для OLTP систем. 2 ggv : мое мыло vybegallo03 эт яху дот ком ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 19:07 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!да ... предлагаете мерятся списком кастомеров ? мне это не интересно. RAC работает и в отличии от shared-nothing на реальных OLPT задачах, у реальных кастомеров Не-оракл кастомеры в таких случаях используют HADR (high-availibility data replication). Работает надежней, поскольку а)нет single point of failure - дисковой подсистемы; б) можно разнести географически; в) второй сервер вполне можно использовать для запросов. Преимуществом RAC является то, что второй сервер можно использовать для записи, а недостатком - падение производительности обеих серверов при согласовании глобального кэша. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2005, 19:12 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
vybegallo Не-оракл кастомеры в таких случаях используют HADR (high-availibility data replication). да наверно mysql/sybase/mssql кастомеры тоже так поступают, это не фича субд, oarcle8 так через атлантику реплицировала еще в 2003-м. vybegallo Работает надежней, поскольку а)нет single point of failure - дисковой подсистемы; продублируйте дисковую подсистему также как это приходится это делать ibm в shared-nothing и будет счастье. vybegallo б) можно разнести географически; нельзя, OLPT загнется. только как файловер. vybegallo в) второй сервер вполне можно использовать для запросов. ну так только фоспро не умеет, mssql, sybase и оракл все умеют. преимущество RAC в том что ненадо сразу выкладовать на весь сервер, можно взять 2 ноды и через 2 года добавить еще 2 дешовые ноды, а не брать 32х голового монстра сегодня. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 01:12 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!! vybegallo Не-оракл кастомеры в таких случаях используют HADR (high-availibility data replication). да наверно mysql/sybase/mssql кастомеры тоже так поступают, это не фича субд, oarcle8 так через атлантику реплицировала еще в 2003-м. vybegallo Работает надежней, поскольку а)нет single point of failure - дисковой подсистемы; продублируйте дисковую подсистему также как это приходится это делать ibm в shared-nothing и будет счастье. vybegallo б) можно разнести географически; нельзя, OLPT загнется. только как файловер. vybegallo в) второй сервер вполне можно использовать для запросов. ну так только фоспро не умеет, mssql, sybase и оракл все умеют. преимущество RAC в том что ненадо сразу выкладовать на весь сервер, можно взять 2 ноды и через 2 года добавить еще 2 дешовые ноды, а не брать 32х голового монстра сегодня. 1. HADR это таки фича СУБД, вас дезинформировали. Вы, очевидно, под этим термином понимаете что-то свое. Информикс имел эту фичу в незапамятных девяностых, начиная примерно с 6й версии. 2. насчет "нельзя разнести географически, OLTP загнется" - WalMart-у расскажите. Они, дураки, не знают, целый дублирующий центр в другом штате держат. (осторожно, вкрадчиво) - или вы полагаете, что HADR заключается в пересылке логов по мере их заполнения ? 3. HA позволяет использовать достаточно дешевые дисковые массивы, в то время как RAC, как я понял, весьма требователен к оборудованию. Опять повторю - репликация устойчива к катастрофам, а ваши дублированные массивы накроются одним торнадо. 4. И через четыре года вы упретесь в потолок (RAC сертифицирован для max 8 нод, верно ?) при этом ваши 8 нод будут реально давать производительность 5ти. В то время как процессоров доставить много ума не надо, а производительность в SMP растет практически линейно. Практический вопрос - у вас сколько кластеров в RAC ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 01:35 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Ну еще Yo неверно понял - нет невозможности построить кластер на DPF, но это не рекомендуется вендором без quality assurance, так как изза межнодовой коммуникации производительность будет ниже SMP box'а (но все-таки при 3 и более нодах этой коммуникации может быть меньше, чем в shared disk, все будет зависеть от распределения данных и запросов) Далее надо задаться вопросом зачем Зачем люди делают кластера баз? 1) Достижение производительности недостижимой на SMP box'е 2) Достижение производительности сравнимой с SMP box'ом но из "дешевых" составляющих и достижением меньшей общей стоимости 3) Failover ......... n) Тщеславие, научный интерес (что впрочем почти одно и то же) n+1) повышение доходов вендора Давайте продолжать список Ну с последним пунктом все ясно С предпоследним, впрочем, тоже Failover - не совсем удовлетворительно у всех кластеров. Здесь и снижение производительности, И потребность дублировать общие диски, ноды, (кстати Yo неправильно понял Mutual Takeover) Здесь лучше специализированных решений нет (oracle guard и упоминавшийся HADR informix'a и db2) 1) Для RAC не верно - не достигается такая производительность, здесь наверное и у Yo сомнений нет. 2) Тоже неверно для RAC - совокупная стоимость не будет дешевле. Если у Yo ил и у кого еще есть сомнения - давайте считать. Возьмем трех вендоров (IBM, HP, кто еще?) И посчитаем для трех ведущих баз общую стоимость включающую и лицензии, и maintenance, и стоимость дисковых подсистем (если они не в составе среверов). ну ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:03 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
не знаю что такое HRDF, я посчитал что это что то типа этого http://zdnet.ru/?ID=308209 так можно хоть фокспро реплицировать, но какое отношение это имеет к кластерам ? просто ни чем не примечательный стендбай. давайте вернемся к кластерам. дальше, в SMP я например не умею пихать 8 процов, где 4 дырки, если вы так умеете - научите. ЗЫ. а сколько у меня должно быть кластеров ? как гондонов как минимум пачка ? ЗЗЫ. я с кластерами никогда не работал, но года через 2 похоже прийдется разворачивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:15 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ну и мантра "поставим две дешевые машинки, а затем еще две дешевые" не катит. К дешевым машинкам придется ставить недешевые устройства, и от трех и до 4 нод придется согласиться с потерей производительности. Больше четырех нод внедрений все равно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:17 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
автор1) Для RAC не верно - не достигается такая производительность, здесь наверное и у Yo сомнений нет. OK, давайте смотреть: http://www.oracle.com/apps_benchmark/html/0443A_Report1.html http://www.oracle.com/apps_benchmark/html/0443A_Report1.html мы видим что 4х-нодовый кластер вытянул 13020 а smp 15004 при этом ноды у кластера заметно слабее 1.65GHz против 1.9GHz. я не уверен что если бы у кластера были бы 1.9GHz, то он бы не обошел smp. попозже покапаюсь сдесь, может что еще найти можно. и тогда посчитаем цену. http://www.oracle.com/apps_benchmark/html/results.html ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:26 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Уважаемый Yo - Oracle заявлял, что у себя в лабе создал 16 нод кластер. Я сегодня с утра к зеркалу подошел - ну чемпион мира, не меньше. Давайте опираться на независимые тесты. Оракл писал о не ограниченной масштабируемости и линейном росте производительности - полная лажа оказалась. По поводу 8 CPU в четыре дырки - вы таки знаете, и IBM и SUN такое умеют. Тот же тривиальный SUN B1000 можно проапгрейдить заменой CPU на двухядерный А еще можно шасси взять и позже платами добивать Да много вариантов. У меня на старой работе заменили стариный RS/6000 - просто вернули местному IBM и доплатили. Получили новый. Вариантов куча. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:39 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
хорошо, oebs не нравится берем SAP, не суть важно: http://www.oracle.com/solutions/performance_scalability/sap_8cpu_raclinux.html 2x4-way(3Ghz) xeon RAC делает 1x8way(3Ghz) xeon на db2 SUN на двухядерный ?? это в 2007 чтоли ? на счет дырок - я слышал что у сана платишь за 4 а они ставят 8 но дизаблят 4. разве не так ? ЗЫ. а вот у RAC оптерон ноды действительно можно проапгрейдить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ну вот здесь http://www50.sap.com/benchmarkdata/sd2tier.asp и здесь http://www50.sap.com/benchmarkdata/sd3tier.asp помогите найти то, на что ссылается oracle. Я ищу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 09:57 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Я не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 10:00 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggvЯ не нашел. тест там где и положено быть кластеру в SD-Parallel http://www.sap.com/solutions/benchmark/sd1_results.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 11:13 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Да, увидел результат RAC на 2 4-way Intel Xeon MP 3GHz - 1350 как и указано на сайте оракла Но смотрю на http://www50.sap.com/benchmarkdata/sd2tier.asp и вижу IBM eServer p5 Model 570, 8-way SMP, POWER5 1.9 GHz, 32 - с результатом 2600 Ну и ? Чего-то я недопонимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 11:35 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggvДа, увидел результат RAC на 2 4-way Intel Xeon MP 3GHz - 1350 как и указано на сайте оракла Но смотрю на http://www50.sap.com/benchmarkdata/sd2tier.asp и вижу IBM eServer p5 Model 570, 8-way SMP, POWER5 1.9 GHz, 32 - с результатом 2600 Ну и ? Чего-то я недопонимаю. вы просто торопитесь и невнимательно смотрите ... посмотрите на строчку выше в SD-Parallel :) 2 x IBM eServer p5 Model 570, 4-way SMP, POWER5, 1.9 GHz, 32 KB(D) + 64 KB(I) L1 cache per processor, 1.92 MB L2 cache and 36 MB L3 cache per 2 processors 2400 юзеров. а потом смотрим на последние тесты таво же eServer p5 Model 570 на линухе от 06/30/2005 и там обнаруживаем 2000 юзеров. при этом учитываем что оракл выступает на стареньком 9iRAC, а 10-ка занчительно шустрее. ЗЫ. я не пытаюсь доказать, что RAC быстрее db2, я показываю что оракловый RAC маштабируется как минимум не хуже чем оракл на SMP. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 11:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Да, есть такая строчка. Только вывод другой - RAC имеет производительность, чем SMP. К сожалению, нету свежих тестов SAP SD oracle на 8-way SMP - с чем сравнивать? Ну и опять же - кол-во нод удручает.... Везде 2. Я таки глядя на архитектуру устройства RAC http://www.sql.ru/forum/actualfile.aspx?id=1797864 не могу согласится, что производительность будет хотя бы не хуже SMP, а добавлением нод она будет просто катастрофически падать. Этакое "тройное рукопожатие", да между кучи нод..... Кстати, есть TTCP - transaction TCP, как раз чтобы избежать "тройного рукопожатия". Интересный проект. Ну а в shared nothing рукопожатие всегда двойное. Нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:08 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
и зачем смотреть на тест от 06/30/2005 если можно смотреть на тест от 07/13/2004 - 2600 users, Я его выше и упоминал, этот тест, вот этот вот IBM eServer p5 Model 570, 8-way SMP, POWER5 1.9 GHz ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:12 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
off-topic, но рядом с темой Сравним тесты того самого p570 - 07/13/2004 - IBM eServer p5 Model 570, 8-way SMP, POWER5 1.9 GHz - AIX 06/30/2005 - IBM eServer p5 Model 570, 8-way SMP, POWER5 1.9 GHz - SuSe Linux Ну и результат смотрим.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:15 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
что-то я не понимаю куда вы смотрите, я вижу так: 2x4-way xeon RAC делает db2 на винде 2x4-way IBM eServer p5 Model 570 RAC делает db2 на линух но 2x4-way IBM eServer p5 Model 570 RAC проигрывает db2 на aix т.е. скорость больше зависит от операционки, чем от кластер/smp. дальше мы можем смотреть и tpc и oebs benchmarks везде как и заявляет оракл маштабируемость на уровне smp. где-то была картинка как в oebs добавили к 2 нодам еще 2 и получили почти линейную маштабируемость. так что ваше утверждение автор1) Для RAC не верно - не достигается такая производительность, здесь наверное и у Yo сомнений нет. я считаю в корне неверным. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:25 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
блажен кто верует. Вера - сильная вещь. В одной и той же инфе мы видим разное. Ну посмотрите на абсолютные результаты. Теперь еще есть сомнения в масштабируемости RAC ? Ну после просмотра SAP SD уже пожалуй нечего смотреть, технических аргументов тоже уже вряд ли будет, тестов тоже нет. Можно тему закрывать, оставаясь всем при своем мнении. До следующего интересного топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:36 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
обождите :) у вас в обсалютных цифрах разница менее 10% и вы хотите сказать что эта катострофическая потеря ?? если да, то можно взять p5 Model 570 и некластерные тесты tpc и глянуть на разницу между ораклом и db2 + попраку на 9i vs 10gR2 и уверен получим что RAC окажется быстрей чем oracle smp. и потом у нас еще есть пункт 2: автор2) Тоже неверно для RAC - совокупная стоимость не будет дешевле. Если у Yo ил и у кого еще есть сомнения - давайте считать. вечерком обязательно посчитаем ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:51 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ну раз обождать...... Вы выдернули мою цитату 1) - она о достижении максимально возможной абсолютной производительности. Извините за грубость (плохо себя чувствую) но здесь кластера в полной заднице как по TPC-C так и по SAP. Давайте подождем новых тестов. Вот и MS скоро сделает. И еще есть интересный тест TPC-App (http://www.tpc.org/tpc_app/default.asp) Вот интересно будет. Засим разрешите таки продолжить работу, остальные все молчат, одни мы с вами препираемся без результатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 12:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!не знаю что такое HRDF, я посчитал что это что то типа этого http://zdnet.ru/?ID=308209 так можно хоть фокспро реплицировать, но какое отношение это имеет к кластерам ? просто ни чем не примечательный стендбай. давайте вернемся к кластерам. дальше, в SMP я например не умею пихать 8 процов, где 4 дырки, если вы так умеете - научите. ЗЫ. а сколько у меня должно быть кластеров ? как гондонов как минимум пачка ? ЗЗЫ. я с кластерами никогда не работал, но года через 2 похоже прийдется разворачивать. Если вы не знаете, что такое High Availibility Data Replication - то не бросайтесь спорить на эту тему. Про способы наращивания серверов / обмена серверов с доплатой вам уже рассказали. Жаль, конечно, что все ваши знания кластеров пока чисто теоретические, а представления об их возможностях почерпнуты из бенчмарков. Хотелось бы поговорить с практиками. Вот, к примеру, что практики пишут в comp.databases.oracle.server : ---- I've done it and the one thing I can tell you is that RAC has what I call the 'spotlight' effect: It is extremely good at pointing out very poorly written code. And often with the result that performance goes down rather than up. ---- bad code is bad code and hurts. But bad code with RAC is poison. ---- One warning - someone else made the comment that the manuals say "if is scales on one node it will scale on RAC". What the manuals actually says is "if it won't scale on one node it won't scale on RAC". ---- My advice based on my experiences with RAC is never use RAC, if there is any way how to do the job without it! If you're unable to tune your single instance database, then on RAC you will not be able to tune it at all. ---- Here a short general rule of thumb for RAC: (1) If you need PERFORMANCE - scale vertically (put more cpu's, memory, etc.) in your database machine. (2) If you need HIGHAVAILABILITY scale horizontal means - use a cluster. It is true that if you add cluster nodes instead of scaling vertically - you will gain some more performance BUT - not as much as scaling vertically - and at a higher cost (hardware + more administration) ---- В таком вот аксепте ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 21:21 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
2vybegallo умоляю, не нужно встревать в технический разговор с аргументами на уровне детского сада, петька с соседнего двора имел секс со шлюхой и ему не понравилось и он считает, что дрочить лучше. мне действительно на такое нечего ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2005, 21:55 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!2vybegallo умоляю, не нужно встревать в технический разговор с аргументами на уровне детского сада, петька с соседнего двора имел секс со шлюхой и ему не понравилось и он считает, что дрочить лучше. мне действительно на такое нечего ответить. У кого что болит... Вы, похоже, не понимаете, что в солидных фирмах солидные дяди, прежде чем бросаться в пучины новой дорогостоящей технологии, от которой будут зависеть их шести-семизначные зарплаты и бонусы, берут у вендора список клиентов, и едут побеседовать. С глазу на глаз. Потому что маркетинг маркетингом, бенчмарки бенчмарками, но ценнее мнения опытного пользователя пока ничего не придумано. ну, знаете, на эту тему даже такая народная мудрость имеется - про умных, которые предпочитают учиться на чужих ошибках. Кстати, петьки из comp.databases.oracle.server подозрительно дружно утверждают, что RAC ведет себя тем лучше, чем сильнее разграничены данные между нодами. Мне это почему-то напоминает эмуляцию архитектуры "shared nothing" , нет ? Или, думаете, врут петьки, не нужно переписывать приложения и перекраивать базы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2005, 00:37 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
2vybegallo уважаемый, может вы разбираетесь в балете или замечательный собеседник на тему живописи, но разговора по RAC у нас с вами не получется. ну нечего мне ответить о ораспределении даных по нодам ... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2005, 09:22 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!2vybegallo уважаемый, может вы разбираетесь в балете или замечательный собеседник на тему живописи, но разговора по RAC у нас с вами не получется. ну нечего мне ответить о ораспределении даных по нодам ... Да это я уже понял. Грабель вы еще и издали не видали. Жвль, что действительно специалисты по RAC себя не обнаруживают - хотелось послушать людей от сохи, теоретиков мне и коллеги ЧАЛа больше чем достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2005, 09:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
vybegallo Yo!!2vybegallo уважаемый, может вы разбираетесь в балете или замечательный собеседник на тему живописи, но разговора по RAC у нас с вами не получется. ну нечего мне ответить о ораспределении даных по нодам ... Да это я уже понял. Грабель вы еще и издали не видали. Жвль, что действительно специалисты по RAC себя не обнаруживают - хотелось послушать людей от сохи, теоретиков мне и коллеги ЧАЛа больше чем достаточно. вот тут немного есть: На сколько эффективен RAC и тут кое что: Что лучше 4 однопроцессорных ноды или один 4-х процессорный сервак? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2005, 14:14 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
O RAC, nemnogo: http://info.forbis.lt/pub/home?pnews=7135 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2005, 15:23 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
KostaaO RAC, nemnogo: http://info.forbis.lt/pub/home?pnews=7135 То что они написали лажа полная, по крайней мере я так буду думать, пока не будет уточнений как тестировали и с чем сравнивали. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2005, 18:08 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ggv По поводу RAC и не надо ничего пояснять - не работаюшая архитектура на более чем 4 узлах, и проблемно работающая на 4. Не говорите ерунды. У нас в ebay все нормально работает и на 6 узлах и более. Не работает у тех, у кого руки не из того места растут. У них и Teradata тоже не масштабируется, и DB2. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 02:47 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
злой - не врите ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 11:24 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
2ggv Вы случайно не тот самый ggv который иногда появляется в обсуждениях статей на zdnet.ru? Уж больно похоже. 2Yo!! Эка вам маркетинг Oracle голову то задурил? Остороженей надо. Что касается темы. Таки ggv все же более прав. Что есть RAC? - это софтверный коммутатор, то есть замена аппаратного коммутатора который используется в больших SMP железках ( кажется начиная с 16 узлов ). Накой он нужен? Для того чтобы подерживать когерентность кэшей в случае c RAC - это SGA - узлов. в случае с SMP(NUMA) - это кэшы процессора - обмен блоками памяти в SMP( NUMA) архитектурах осушествляется на уровне страниц памяти, а в случае RAC на уровне блоков. То есть принцип работы почти один и тот же. Суть в задержках. Пока задержки на подержание когерентности кэша в SMP(NUMA) архитектурах ниже , чем в случае с RAC. Это до тех пор пока Oracle не предъявит доказательств обратного . Пока у него с этим слабо. Теперь про доказательства. Я тоже люблю тесты SAP SD 2. Найдите там максимальный результат. Fujitsu PRIMEPOWER 2500, 128-way SMP, SPARC64 V 2.08 GHz, 256 KB L1 cache, 4 MB L2 cache Solaris/Oracle9i SAPS = 2116330 http://www.sap.com/solutions/benchmark/pdf/cert1305.pdf Лучший результат в случае RAC. 4 x AlphaServer ES45 Model 2, 4-way SMP, Alpha EV6.8CB (21264C), 8MB L2C Tru64/Oracle 9i RAC SAPS= 60,420 http://www.sap.com/solutions/benchmark/pdf/CERT3102.pdf Разницу в 35 раз говорит сама за себя. Если бы у RAC было так гладко с масштабируемостью, то мы бы уже давно увидели результаты на каждом углу, но их нет и в ближ. будущем не будет насколько я понимаю. Только не надо говорить про не сравнимые конфигурации. Я говорю о результатах достигнутых в результате использования технологии. И лично для меня RAC - это разводилово клиентов на деньги. Я думаю тоже самое касается и MSSQL кластера. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 15:38 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
авторТолько не надо говорить про не сравнимые конфигурации. Я говорю о результатах достигнутых в результате использования технологии. И лично для меня RAC - это разводилово клиентов на деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 15:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
авторТолько не надо говорить про не сравнимые конфигурации. Я говорю о результатах достигнутых в результате использования технологии. И лично для меня RAC - это разводилово клиентов на деньги. ну вот, вы даже сами практически за меня ответ написали, вы сравниваете 16-процесорную систему которую забросили и не развивают уже черт знает сколько и современную 128 процесорную ... вы же не думали что RAC должен был сотварить чудо ?? давайте все же посмотрим что у нас с фактами: SAP 2x4-way xeon RAC делает db2 на винде 2x4-way IBM eServer p5 Model 570 RAC делает db2 на линух 2x4-way IBM eServer p5 Model 570 RAC проигрывает db2 на aix TPC-C RAC на HP Integrity rx5670 Cluster 64P 1,184,893 делает SQL2005 на HP Integrity Superdome 64P c/s 1,082,203 Oracle на HP Integrity Superdome 1,008,144 OEBS http://www.oracle.com/apps_benchmark/html/0443A_Report1.html http://www.oracle.com/apps_benchmark/html/0443A_Report1.html 4х-нодовый кластер вытянул 13020 а smp 15004 при этом ноды у кластера заметно слабее 1.65GHz против 1.9GHz. т.е. факт в том, что во всех доступных тестах RAC маштабируется как минимум не хуже, в принципе только это я пытался доказать. а вот почему нет RAC-тестов на больших машинах в SAP но есть в TPC-C/TPC-H можно порассуждать/пофантазировать. если у вас есть знания на эту тему было бы интересно услышать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 16:20 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!! авторТолько не надо говорить про не сравнимые конфигурации. Я говорю о результатах достигнутых в результате использования технологии. И лично для меня RAC - это разводилово клиентов на деньги. ну вот, вы даже сами практически за меня ответ написали, вы сравниваете 16-процесорную систему которую забросили и не развивают уже черт знает сколько и современную 128 процесорную ... вы же не думали что RAC должен был сотварить чудо ?? давайте все же посмотрим что у нас с фактами: SAP 2x4-way xeon RAC делает db2 на винде 2x4-way IBM eServer p5 Model 570 RAC делает db2 на линух 2x4-way IBM eServer p5 Model 570 RAC проигрывает db2 на aix TPC-C RAC на HP Integrity rx5670 Cluster 64P 1,184,893 делает SQL2005 на HP Integrity Superdome 64P c/s 1,082,203 Oracle на HP Integrity Superdome 1,008,144 OEBS http://www.oracle.com/apps_benchmark/html/0443A_Report1.html http://www.oracle.com/apps_benchmark/html/0443A_Report1.html 4х-нодовый кластер вытянул 13020 а smp 15004 при этом ноды у кластера заметно слабее 1.65GHz против 1.9GHz. т.е. факт в том, что во всех доступных тестах RAC маштабируется как минимум не хуже, в принципе только это я пытался доказать. а вот почему нет RAC-тестов на больших машинах в SAP но есть в TPC-C/TPC-H можно порассуждать/пофантазировать. если у вас есть знания на эту тему было бы интересно услышать. 1. Вы забываете что в случае с RAC-ом есть еще 65 x AlphaServer ES45 Model 2, 4-way SMP, Alpha EV6.8CB (21264C) серверов приложений на которые происходит обработка данных. В случае с SAP SD обработка данных происходит на сервере. Так что засчитываем 65 процессоров дополнительно или нет ? 2. Просто с замиранием сердца жду чуда. Покажите результаты SAP SD Parallel с участием RAC где используются хотя бы 64 процессора на стороне сервера СУБД? Ну а уж если вы покажите мне 100 проц, то я моему восхищению просто не будет границ. Итак ссылку в студию. TPC-C не предлагать - это не серьезно. 3. Тесты OEBS - не подходят. Пояснить почему? 4. Тесты TPC-C,TPC-H по сравнению с SAP-SD. 4.1. Принципиальное отличие в том что SAP-SD -официальный сайзинг который использую при покупке системы на определенное число пользователей. То есть тест SAP-SD говорит от том что для определенного числа пользователей SAP необходимо такое -то железо. В случае с TPC-C это просто синтетический тест, слишком далекий от реальных приложений. 4.2. По условиям теста SAP SD тест прекращается если время отклика становится больше 2сек. В случае с TPC-C время отклика никак не ограничивается. То есть если запрос будет выпольнятся 1 час и успешно выполнится , то это нормально он будет учтен , но как вы понимаете это уже не OLTP cистема. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 16:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
2EugeneS 1. у меня машинка для игр мощней чем этот 4-way alpha, какой смысл сравнивать этого с новейшими спарками ? 2. нет таких, почему не знаю, но судя по тестам TPC их нет не потому что RAC не может. может потому что 9ка так неможет, может результат некрасивый, может по времени отклика не смогли, не знаю, зачем нам гадать ?? вот почему они на древней 9ке гоняют когда вон 10R2 есть, SAP не сертефицировал ? 3. да, было бы интересно. 4. тут полностью согласен но со своей стороны хочу еще раз сказать, мне не интересно гадать. меня интересуют факты. есть тесты от конкретных производителей по которым можно делать относительные выводы, но делать выводы по alpha vs sparc, 3tier vs 2tier, 4-way vs 64-way для меня уже слишком ... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 17:42 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!!2EugeneS 1. у меня машинка для игр мощней чем этот 4-way alpha, какой смысл сравнивать этого с новейшими спарками ? 2. нет таких, почему не знаю, но судя по тестам TPC их нет не потому что RAC не может. может потому что 9ка так неможет, может результат некрасивый, может по времени отклика не смогли, не знаю, зачем нам гадать ?? вот почему они на древней 9ке гоняют когда вон 10R2 есть, SAP не сертефицировал ? 3. да, было бы интересно. 4. тут полностью согласен но со своей стороны хочу еще раз сказать, мне не интересно гадать. меня интересуют факты. есть тесты от конкретных производителей по которым можно делать относительные выводы, но делать выводы по alpha vs sparc, 3tier vs 2tier, 4-way vs 64-way для меня уже слишком ... 2. То-то и оно. Вот когда будет тогда и будем говорить про масштабируемость RAC-ов. Насчет 10gR2, он всего 2 дней как официально выложен на сайте. 3. Все очень просто. В этом случае Oracle нельзя проконтролировать. А что делают капиталисты когда они без котроля ? - Беспредельничают. То же самое касается всех остальных производителей ПО и железа. 4. Факты гласят. Приемлемых результатов у Oracle RAC - нет. Теперь что касается сравнений. В случае с RAC используется сервера приложений. Не так ли? То есть если мы хотим сравнивать, то правильней было бы взять 1. SMP сервер БД + сервера приложений 2. сервер БД RAC + сервера приложений Для случае один существует специально тест SAP SD 3. Идем, смотрим 2002 год выбираем сервер с 16 проц. Unisys e-@ction Enterprise Server ES7000, 16-processors, Pentium Xeon 1.6 GHz, 256 KB L2 cache, 12 GB main memory http://www.sap.com/solutions/benchmark/pdf/cert4902.pdf SAPS = 97580 Объяснять надо, что 1Ghz Alpha -процессор трудносравним по быстродействию с Pentium Xeon 1.6Ghz? Что получаемся опять почти 2 каратный проигрыш. Просто в тестах нет серверов с 16 проц от Sun и IBM, но можно даже не сомневаться что результаты там еще лучше. Такое сравнение подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 18:19 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
автор3. Все очень просто. В этом случае Oracle нельзя проконтролировать. А что делают капиталисты когда они без котроля ? - Беспредельничают. То же самое касается всех остальных производителей ПО и железа. по этим тестам люди точно также выбирают железо для своих oebs. точно также. автор4. Факты гласят. Приемлемых результатов у Oracle RAC - нет. я привел с десяток тестов, мне не понятно чем они вас не устроили и вы начали выдумывать какой результ мог бы получится если бы да ка бы ?? авторТеперь что касается сравнений. вот видите если чуть подумать то разница уже не 35, а 2 раза. а если повнимательней посравнивать современный xeon и alpha времен напалеона ? кеш, шину, i/o я уверен, что разница будет гораздо больше 200% и не в пользу alpha. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2005, 18:37 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
О масштабируемости RAC. Если "затык" по производительности находится на диске (по термонологии Оракла "в базе данных"), например в виде блокировки, то никакая кластеризация этой проблемы не решит. Если же затык в "instance" (по терминологии Оракла) то она решается RAC'ом. Например если вы ожидаете доступа к неким структкрам данных в памяти, доступ к которым синхронизирован, то наличие N узлов и N "комплектов" данной структуры позволяет вам меньше ждать. В мире DWH делают так: на одном узле живет ETL, на другом процессы считающие summaries и загружающие данные в Data Marts. Столкновения этих процессов друг с другом на диске сводятся к минимуму. Если же у вас борьба за данные на диске или за боркировку, то у вас будут тормозить и Teradata с DB2. Тут надо "в консерватории что-то менять". Для реально больших хранилищ данных при выборе СУБД считают деньги. Если есть site license на Oracle, то его и ставят. Или если жесткие требования по немедленной загрузке данных (tricle feed). В протмном слкчае могут и Teradata поставить. Вопрос упирается в бабки. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2005, 00:45 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Зл0йО масштабируемости RAC. Если "затык" по производительности находится на диске (по термонологии Оракла "в базе данных"), например в виде блокировки, то никакая кластеризация этой проблемы не решит. Если же затык в "instance" (по терминологии Оракла) то она решается RAC'ом. Например если вы ожидаете доступа к неким структкрам данных в памяти, доступ к которым синхронизирован, то наличие N узлов и N "комплектов" данной структуры позволяет вам меньше ждать. Совершенно верно, только нужна инфраструктура которая подерживает синхронность или коггерентность этих структур. В случае с RAC-ом это СACHE FUSION, в случае SMP(NUMA) систем это коммутатор, обеспечивающий когерентность памяти. Собственно многопроцессорные системы потому так дорого и стоят, потому что этот коммутатор довольно не простя вещь. Про задержки я писал. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2005, 10:05 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Ну, что Yo! как всегда оказался совершенно прав. в SAP SD Parallel опубликован результат RAC 10g на 5 узлах по 8 Power6 процев. Этот результат опережает на 17% самую навороченую у SAP-SD на данный момент SMP конфигурацию из 64 Itanium на 10g. http://www.sap.com/solutions/benchmark/pdf/Cert6607.pdf ЗЫ. всех переживших праздник - С НОВЫМ ГОДОМ ! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2008, 12:01 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo!! vybegallo в) второй сервер вполне можно использовать для запросов. ну так только фоспро не умеет, mssql, sybase и оракл все умеют. Что бы запустить запрос нужно разрывать синхронизацию. Разве это можно назвать умеют? Или всетаки есть способы запуска запроса без остановки наката логов, поделитесь пожалуйста докой где про это описано. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2008, 15:47 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
onstat- Что бы запустить запрос нужно разрывать синхронизацию. Разве это можно назвать умеют? Или всетаки есть способы запуска запроса без остановки наката логов, поделитесь пожалуйста докой где про это описано. дык, вам же там вроде как ответили - вы пытаетесь слать запросы на физический стендбай, а вам нужен логический. RTFM тут: http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96653/considerations.htm#50976 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2008, 16:05 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.!Ну, что Yo! как всегда оказался совершенно прав. в SAP SD Parallel опубликован результат RAC 10g на 5 узлах по 8 Power6 процев. Этот результат опережает на 17% самую навороченую у SAP-SD на данный момент SMP конфигурацию из 64 Itanium на 10g. http://www.sap.com/solutions/benchmark/pdf/Cert6607.pdf ЗЫ. всех переживших праздник - С НОВЫМ ГОДОМ ! а вы что с чем сравниваете ? В SAP SD Parallel with Round robin - ничего, кроме RAC, нет с 2000 года. В SAP SD Standard Application - лучший результат рвет ваш "рекорд" как тузик грелку, 468000 SAPS супротив 183680. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2008, 18:21 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Выбегалло а вы что с чем сравниваете ? В SAP SD Parallel with Round robin - ничего, кроме RAC, нет с 2000 года. В SAP SD Standard Application - лучший результат рвет ваш "рекорд" как тузик грелку, 468000 SAPS супротив 183680. так не удивительно RAC единственый из кластеров shared-disk и конкурентов на OLTP задачах у него пока нет. на счет 468000 SAPS эт вы с 3-tier путаете - это другой тест ... но я не удивлен ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 00:12 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.! так не удивительно RAC единственый из кластеров shared-disk и конкурентов на OLTP задачах у него пока нет. Нет не единственный. IBM Informix v11 тоже может кластеризоваться как shared-disk. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 10:04 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
onstat- Нет не единственный. IBM Informix v11 тоже может кластеризоваться как shared-disk. единственный, в вашем документике речь идет о shared-disk standby,а не кластере. там на секондари ноды можно пускать read only запросики, конечно интересно, но какой прок от этих нод OLTP задаче ? к стате вопросик, IDS вроде как блокировочник и при чтении раставляет блокировки, как блокировки нод узнают про блокиовки других нод ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 11:08 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.! onstat- Нет не единственный. IBM Informix v11 тоже может кластеризоваться как shared-disk. единственный, в вашем документике речь идет о shared-disk standby,а не кластере. там на секондари ноды можно пускать read only запросики, конечно интересно, но какой прок от этих нод OLTP задаче ? Для разгрузки основной ноды производящей изменения. Yo.! к стате вопросик, IDS вроде как блокировочник и при чтении раставляет блокировки, как блокировки нод узнают про блокиовки других нод ? Да он блокировочник, блокировки хранит только в памяти. Версия 11 имеет "версионность" глубиной в одну транзакцию. ( Что бы не говорили, что в Informix писатели блокируют читателей (С) не мое). Описание самого процесса синхронизации блокировок мне пока найти не удалось. Если у кого есть ссылка на доку где это описано, сам с удовольствием почитаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 15:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.! Выбегалло а вы что с чем сравниваете ? В SAP SD Parallel with Round robin - ничего, кроме RAC, нет с 2000 года. В SAP SD Standard Application - лучший результат рвет ваш "рекорд" как тузик грелку, 468000 SAPS супротив 183680. так не удивительно RAC единственый из кластеров shared-disk и конкурентов на OLTP задачах у него пока нет. на счет 468000 SAPS эт вы с 3-tier путаете - это другой тест ... но я не удивлен ;) вы нормально ответить можете, что с чем сравниваете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 21:37 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
там на секондари ноды можно пускать read only запросики, конечно интересно, но какой прок от этих нод OLTP задаче ? Когда Jerry Keesee (Director of the Informix Lab) был в Москве, он сказал, что в будущем будет возможность читать и писать всем нодам в этой схеме. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2008, 16:46 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
http://infocenter.sybase.com/help/topic/com.sybase.dc00768_1501/html/ase_ce_ug/ase_ce_ug3.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2008, 18:54 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
uphttp://infocenter.sybase.com/help/topic/com.sybase.dc00768_1501/html/ase_ce_ug/ase_ce_ug3.htm ого, действительно shared-disk cluster. и блокировки и кеш синхронизует, красота 2sysmaster если появится - будет интересно посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2008, 19:31 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
снова RAC опередел самую навороченную smp железячку 4 ноды Oracle/Sun Fire X4470, 4 Xeon X7560 processors / 32 cores показали 221020 SAPS IBM Power System 780, 8 Processors / 64 Cores паказал 202180 SAPS ЗЫ. крупнее 780, System 795 с 256-cores как я понял только пару дней назад начали продавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2010, 12:39 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
кстати у RAC response time уже лучше чем у smp: Average dialog response time: 0.86 seconds (RAC) Average dialog response time: 0.98 seconds (IBM) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2010, 12:43 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
vybegalloYo!!2vybegallo уважаемый, может вы разбираетесь в балете или замечательный собеседник на тему живописи, но разговора по RAC у нас с вами не получется. ну нечего мне ответить о ораспределении даных по нодам ... Да это я уже понял. Грабель вы еще и издали не видали. Жвль, что действительно специалисты по RAC себя не обнаруживают - хотелось послушать людей от сохи, теоретиков мне и коллеги ЧАЛа больше чем достаточно. Естественно. Вы же не способны ни один вопрос обсуждать по существу:) А с людьми от сохи, конечно, удобнее обсуждать форму, а не содержание:) Один человек от сохи расскажет почему лучше А (потому что в глаза не видел B), а другой - наоборот:) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2010, 19:06 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Почитал, остался в непонятках --- какой прок от обсуждения "абстрактной" масштабируемости, если разные задачи ведут себя совершенно по-разному при переходе с одной ноды на кластер, при росте кластера, да даже и просто при добавлении ядер. Более того, у нас были "бредовые" с точки зрения любого учебника случаи, когда "кластер" из 8 нод на одном восьмиядерном ящике и 1/8 памяти для каждой ноды обгонял просто "нормальную" базу на той же машине. А вообще у нас самый большой экспериментальный кластер был 200*(Quad Xeon / 16Gb RAM), сейчас самый большой постоянно доступный публично --- 8 * (2*Quad Xeon / 32Gb RAM). Virtuoso Cluster Edition, разумеется. Исходя из того, что в Оракле не глупее нас люди сидят, не предвижу никаких необычных проблем, скажем, с RAC на 32-64 машинах. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 23:23 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruБолее того, у нас были "бредовые" с точки зрения любого учебника случаи, когда "кластер" из 8 нод на одном восьмиядерном ящике и 1/8 памяти для каждой ноды обгонял просто "нормальную" базу на той же машине. Согласитесь, это всё же означает, что в "нормальной" базе стоит что-то докрутить (хотя бы автоматическое распадание на восемь восьмушек). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2010, 21:01 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
softwareriv_an_ruБолее того, у нас были "бредовые" с точки зрения любого учебника случаи, когда "кластер" из 8 нод на одном восьмиядерном ящике и 1/8 памяти для каждой ноды обгонял просто "нормальную" базу на той же машине.Согласитесь, это всё же означает, что в "нормальной" базе стоит что-то докрутить (хотя бы автоматическое распадание на восемь восьмушек).Рацуха, конечно, интересная, осталось только придумать, как при смене профиля загрузки то распадаться на восьмушки то слипаться назад, и всё это не прерывая обслуживание клиентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2010, 23:28 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
В общем-то можно, но вряд ли это оптимальный путь. А вот где, почему и начиная с какого предела "нормальная" база тормозит по сравнению с "восьмушками" - имхо стоит тщательно изучить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2010, 23:37 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru Более того, у нас были "бредовые" с точки зрения любого учебника случаи, когда "кластер" из 8 нод на одном восьмиядерном ящике и 1/8 памяти для каждой ноды обгонял просто "нормальную" базу на той же машине. если восьмиядерный ящик был нума то ничего удивительного. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2010, 02:10 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
softwarerВ общем-то можно, но вряд ли это оптимальный путь. А вот где, почему и начиная с какого предела "нормальная" база тормозит по сравнению с "восьмушками" - имхо стоит тщательно изучить.Да нечего там было изучать. Очень большая база с RDF и много-много юзеров, каждый из которых ковыряется read-only в одних и тех же "очень активных" данных плюс каких-то неповторяющихся "непопулярных". Под Linux, а у него есть противная особенность: просто вход и выход из мьютекса не стоят почти ничего, а вот начало ожидания на мьютексе стоит примерно столько же, сколько целая выборка строки по ключу. В случае кластера проблемы с мьютексами уменьшились настолько, что экономия перевесила даже IPC. Поскольку для такого эффекта нужно, чтобы сервер "лёг на полку", не справляясь с нагрузкой, на практике такой сценарий просто не должен встречаться. (Потом появились деньги, и вместо одного ящика поставили 8. Как раз вовремя, потому что база подросла до 2.5e10 фактов, ну и юзеров ещё больше стало.) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2010, 08:41 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.! крупнее 780, System 795 с 256-cores как я понял только пару дней назад начали продавать.ну вот появился результат теста для 795 - 384330 попугаев ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2010, 18:42 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Андрей ПанфиловYo.! крупнее 780, System 795 с 256-cores как я понял только пару дней назад начали продавать.ну вот появился результат теста для 795 - 384330 попугаев И опять RAC bite the dust ! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2010, 10:36 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Выбегалло И опять RAC bite the dust ! :) поставят чуть крупнее ноды и снова будут впереди. например 8-сокетов, а не 4. или как в прошлый раз 6 нод System 780 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2010, 17:21 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.!поставят чуть крупнее ноды и снова будут впереди. например 8-сокетов, а не 4. или как в прошлый раз 6 нод System 780 как в воду глядел: 740250 saps на 6 x Sun Fire X4800 M2, 8 processors / 80 cores Xeon Processor E7-8870, 2.40 GHz для сравнения самая большая железячка на сегодняшний момент: 688630 IBM Power 795, 32 Processors / 256 Cores POWER7, 4 Ghz т.е. RAC всего на 6 копеешных узлах промасштабировался дальше самой большой железячки ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 22:50 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.!Yo.!поставят чуть крупнее ноды и снова будут впереди. например 8-сокетов, а не 4. или как в прошлый раз 6 нод System 780 как в воду глядел: 740250 saps на 6 x Sun Fire X4800 M2, 8 processors / 80 cores Xeon Processor E7-8870, 2.40 GHz для сравнения самая большая железячка на сегодняшний момент: 688630 IBM Power 795, 32 Processors / 256 Cores POWER7, 4 Ghz т.е. RAC всего на 6 копеешных узлах промасштабировался дальше самой большой железячки Что значит "промасштабировался дальше", кривая масштабирования лежит ниже чем у IBM? Или в абсолютных величинах при прочих неравных? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 22:58 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
промасштабировался дальшеЧто значит "промасштабировался дальше", кривая масштабирования лежит ниже чем у IBM? Или в абсолютных величинах при прочих неравных? в абсолютных. там товарищи в обсуждении выше утверждали, что RAC не сможет потянуть ту нагрузку, какую тянут взрослые SMP. а он не просто потянул, он переплюнул. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 23:15 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Yo.!промасштабировался дальшеЧто значит "промасштабировался дальше", кривая масштабирования лежит ниже чем у IBM? Или в абсолютных величинах при прочих неравных? в абсолютных. там товарищи в обсуждении выше утверждали, что RAC не сможет потянуть ту нагрузку, какую тянут взрослые SMP. а он не просто потянул, он переплюнул. Товарищи сверху много обобщают. В задачах с интенсивным обменом данными действительно SMP пойдет дальше, тут принципиальные особенности. А сравнивать надо на равных CPU, RAM и дисковой подсистеме. Но если грамотно писать приложение и проектировать базу то в некоторых задачах RAC конечно сможет масштабироваться на сотни узлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 23:30 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
промасштабировался дальшеесли грамотно писать приложение и проектировать базу то в некоторых задачах RAC конечно сможет масштабироваться на сотни узлов.Кто б спорил. Я уже в нескольких топиках по разным поводам описал один свежий кластер у клиента: 120 * (Quad Xeon / 8Gb / 10 * 1Tb HDD) + 144 * (2 * Quad Xeon / 16Gb / 2 * 128Gb SSD) + 8 * (4 * 10-core / 1024Gb ) + хороший инфинибанд, Что из подзадач совсем хорошо по горизонтали раскидывается --- пихается в первую группу кластера, что похуже --- во вторую, что совсем никак (матерные обходы графов, скажем) --- на 8 самых толстых айбиэмовых ящиков. Попытки обойтись без этих 8 ящиков радости не принесли, хотя программеры там, уж поверьте на слово, _очень_ грамотные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 00:10 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruпромасштабировался дальшеесли грамотно писать приложение и проектировать базу то в некоторых задачах RAC конечно сможет масштабироваться на сотни узлов.Кто б спорил. Я уже в нескольких топиках по разным поводам описал один свежий кластер у клиента: 120 * (Quad Xeon / 8Gb / 10 * 1Tb HDD) + 144 * (2 * Quad Xeon / 16Gb / 2 * 128Gb SSD) + 8 * (4 * 10-core / 1024Gb ) + хороший инфинибанд, Что из подзадач совсем хорошо по горизонтали раскидывается --- пихается в первую группу кластера, что похуже --- во вторую, что совсем никак (матерные обходы графов, скажем) --- на 8 самых толстых айбиэмовых ящиков. Попытки обойтись без этих 8 ящиков радости не принесли, хотя программеры там, уж поверьте на слово, _очень_ грамотные. Я так понимаю это единый гетерогенный виртузоный кластер, с инфинибандом 40 Гбит/сек. А у вас как организован протокол обмена данными по инфинибанду, это RDMA, который действительно Direct через контроллер памяти в обход CPU? И каков у вас характер нагрузки требующий айбиэмовские ящики, он диктует повышенные требования к маленьким задержкам или большой пропускной способности? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 13:42 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruпропущено... Кто б спорил. Я уже в нескольких топиках по разным поводам описал один свежий кластер у клиента: 120 * (Quad Xeon / 8Gb / 10 * 1Tb HDD) + 144 * (2 * Quad Xeon / 16Gb / 2 * 128Gb SSD) + 8 * (4 * 10-core / 1024Gb ) + хороший инфинибанд, Что из подзадач совсем хорошо по горизонтали раскидывается --- пихается в первую группу кластера, что похуже --- во вторую, что совсем никак (матерные обходы графов, скажем) --- на 8 самых толстых айбиэмовых ящиков. Попытки обойтись без этих 8 ящиков радости не принесли, хотя программеры там, уж поверьте на слово, _очень_ грамотные. Я так понимаю это единый гетерогенный виртузоный кластер, с инфинибандом 40 Гбит/сек. Он единый и гетерогенный, но под виртуозой там будет очень немного, порядка 16 "средних" ящиков, порядка 600Gb на дисках. Остальное --- разнообразные софтинки клиента, в основном самописные. А у вас как организован протокол обмена данными по инфинибанду, это RDMA, который действительно Direct через контроллер памяти в обход CPU?Мы только системные вещи юзаем, какой-то специальной поддержки именно инфинибанда в Виртуозе нет (равно как и "разумных" сетевых карт, SAN и т.п.). В наше оправдание могу сказать, что мы не мучаем ни IPC ни сеть кучами мелких пакетов, у нас туда-сюда бегают преимущественно большие буферы, причём процессы общаются "каждый с каждым", без "централизованных затыков". И каков у вас характер нагрузки требующий айбиэмовские ящики, он диктует повышенные требования к маленьким задержкам или большой пропускной способности?Я б так сказал: для каждого отдельного юзера важна как можно меньшая латентность, если задача векторизуется плохо, то время выполнения будет прямо пропорционально латентности. Мы б рады были взгромоздить всё на один толстый ящик вместо табуна более мелких, но тогда процы будут забиты, а две трети дорогущей памяти ящика будут простаивать вообще. Выходит, что 16 "средних" ящиков будут и дешевле и (для правильно написанных хранимок) ненамного хуже. Если юзеров много, то они "сообща" могут, конечно, и сеть перегрузить, но на практике нам даже двух гигабитных эзернетов хватает, чтобы восьмиядерный ящик не простаивал, загрузка вроде 1 min avg load user 670% sys 50% wa 2% id 0% получается легко. Если взять обычный "комодный кластер" из 6--8 восьмиядерных "комодных" ящиков с дублированием (т.е. 6--8 пар ящиков с идентичными фрагментами БД на дисках в каждой паре), то на каждой дешёвой интеловской мамке для рабочих станций обнаружится аккурат два порта по 1000. Можно взять два "комодных" 16-портовых свича по $130 с внутренней пропускной 32Gb/sec (или 24-портовых с внутренней 48Gb/sec), в один воткнуть все eth0 всех ящиков, в другой все eth1, и на этом всё (не считая аплинков и ящика для бэкапов). При этом, скажем, если расковырять 16-портовый свич, то обычно обнаружится, что это фактически два 8-портовых свича, соединённых двухпортовым свичом, поэтому в каждой паре идентичных ящиков первый ящик надо воткнуть в порт с 1 по 8, а второй --- с 9 по 16, минимизируя число мелкосхем, которые будут добавлять латентность (и риск убить пакет вообще). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 15:26 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru, а можно узнать что за задачи решаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 16:02 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru , 1. Т.е. айбиэмовские ящики не под вашу систему брались? 2. Здесь понятно, движение в сторону гибкости, а не специализации. Предположительно значит задача не ставит необходимость в низколатентном доступе к большому количеству узлов для каждого запроса, при большом количестве запросов или пользователей. А получить все данные скопом в принципе выход. У вас через "преимущественно большие буферы" между узлами данные передаются скопом для одной записи, таблицы, запроса или нескольких запросов за один раз? 3. Процы забиваются из-за ожиданий на мьютексах или из-за чего? Просто я ещё ни разу не видел что-бы используя СУБД память простаивала. Собственно всегда используется под кэш дисковой подсистемы. Низкая латентность между узлами важна при низколатентном доступе пользователей по спец. протоколам или при сильном размазывании данных, т.е. большом количестве серверов. Допустим каждый простой запрос требует сбора данных с 20% серверов. Тогда не используя специализированных средств передачи между узлами получим общее падение производительности до 20%. (Здесь конечно принимаем крайний случай когда нагрузка на межнодовый запрос равна нагрузки простого запроса пользователя) Теперь если запросов не только много, но они ещё и относительно тяжелые, то потребуется сильнее размазывать данные. А значит увеличивая количество серверов сбор данных будет увеличиваться с 20% до 100%. Что и будет означать предел масштабирования. Дублирование серверов же хорошо для read only и плохо для write. Ну и оверхеды различных протоколов по сравнению с RDMA Infiniband конечно не маленькие. Латентность на RDMA можно достичь до 10мкс. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 17:07 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
SergSuperiv_an_ru, а можно узнать что за задачи решаются?конкретно эта инсталляция будет под базу знаний, порядка 50 гигафактов, плюс RDB2RDF из некоторых "посторонних" баз данных. Эти "посторонние" базы скоро будут мигрировать с расположенного рядом "старого" кластера в этот "новый", после чего "старый" кластер плюс его standby вместе станут standby-ем для критической части "нового". Данные там в основном узко-специально-научные, поэтому являются для меня абсолютно тёмным лесом, даже если куски попадаются мне на глаза :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 17:29 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru , 1. Т.е. айбиэмовские ящики не под вашу систему брались?Нет, под толстые симуляции. 2. Здесь понятно, движение в сторону гибкости, а не специализации. Предположительно значит задача не ставит необходимость в низколатентном доступе к большому количеству узлов для каждого запроса, при большом количестве запросов или пользователей. А получить все данные скопом в принципе выход. У вас через "преимущественно большие буферы" между узлами данные передаются скопом для одной записи, таблицы, запроса или нескольких запросов за один раз?Для нескольких запросов (или ответов на них) в ходе исполнения одного или нескольких запросов. 3. Процы забиваются из-за ожиданий на мьютексах или из-за чего? Просто я ещё ни разу не видел что-бы используя СУБД память простаивала. Собственно всегда используется под кэш дисковой подсистемы.Процы заняты полезным делом. Но если ставить эту конкретную задачу на один ящик с терабайтом ОЗУхи, то считайте сами --- 50 гигафактов в сжатых колонках, примерно по 6 байт на факт, дадут 300 гигабайт. На диске будет вдвое больше, 600 гигабайт, потому что для каждой страницы будут лежать её копия до последнего чекпойнта плюс текущая версия, но буферизовать даже в идеальном случае всего 300 гигабайт. Остальные 700 гигов надо было бы бы отдать под что-нибудь, но avg load под "нас" хотелось бы от 60 и выше, а ядер и так всего 40. Если б нам на растерзание дали ящик, скажем, с 80 ядрами и 384 гигами ОЗУхи, мы б не отказались, а так совсем неразумно по деньгам. Тем более, что они хотят на нём прогнать BSBM / BIBM / TPC-H / RDF-H, и нам совсем не улыбается увидеть публичные отчёты с издевательски большими $/QMpH и $/QphH. Ну и оверхеды различных протоколов по сравнению с RDMA Infiniband конечно не маленькие. Латентность на RDMA можно достичь до 10мкс.Заплатят за допиливание --- прикрутим тот быстрый IPC, который они выберут. С удовольствием. Тем более что наш протокол восстанавливает ошибки сам, ему от нижнего слоя достаточно "UDP" без гарантий доставки и сохранения порядка, а не целого "TCP". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 17:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruПроцы заняты полезным делом. Но если ставить эту конкретную задачу на один ящик с терабайтом ОЗУхи, то считайте сами --- 50 гигафактов в сжатых колонках, примерно по 6 байт на факт, дадут 300 гигабайт. А запросы тратят CPU больше всего на индексный поиск, агрегацию, скалярные функции или на внутренние нужды? iv_an_ruТем более, что они хотят на нём прогнать BSBM / BIBM / TPC-H / RDF-H, и нам совсем не улыбается увидеть публичные отчёты с издевательски большими $/QMpH и $/QphH. Если они это IBM, то ничего удивительного :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 18:36 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
промасштабировался дальшеiv_an_ruПроцы заняты полезным делом. Но если ставить эту конкретную задачу на один ящик с терабайтом ОЗУхи, то считайте сами --- 50 гигафактов в сжатых колонках, примерно по 6 байт на факт, дадут 300 гигабайт. А запросы тратят CPU больше всего на индексный поиск, агрегацию, скалярные функции или на внутренние нужды?Это уж от запросов зависит, ну и хранимки сами по себе тоже жрут хорошо, тем более что есть ведь и такие "длинные" функции, как применение XSLT или обогащение HTML-ного документа дополнительными сылками. промасштабировался дальшеiv_an_ruТем более, что они хотят на нём прогнать BSBM / BIBM / TPC-H / RDF-H, и нам совсем не улыбается увидеть публичные отчёты с издевательски большими $/QMpH и $/QphH. Если они это IBM, то ничего удивительного :)Нет, не IBM, хотя тоже три буквы. Как отчёты опубликуют, так можно будет и сказать, кто. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2011, 19:18 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru , кстати у вас виртуоза это СУБД с вертикальным хранением RDF, блокировочник и с кластером архитектуры MPP(shared nothing)? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 01:27 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данных iv_an_ru , кстати у вас виртуоза это СУБД с вертикальным хранением RDF, блокировочник и с кластером архитектуры MPP(shared nothing)?Да, это "жёсткий" блокировочник и shared nothing cluster, версии до седьмой умеют только горизонтально хранить, седьмая (пока ещё не общедоступная) умеет и вертикально хранить (причём не только RDF :). Ну а главный источник доходов --- виртуальная схема, в которой для разработчика приложений нет разницы между таблицами, хранящимися на самой виртуозе и таблицами, лежащими на присоединённых серверах других вендоров. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 09:38 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruмодель представления данных iv_an_ru , кстати у вас виртуоза это СУБД с вертикальным хранением RDF, блокировочник и с кластером архитектуры MPP(shared nothing)?Да, это "жёсткий" блокировочник и shared nothing cluster, версии до седьмой умеют только горизонтально хранить, седьмая (пока ещё не общедоступная) умеет и вертикально хранить (причём не только RDF :). Ну а главный источник доходов --- виртуальная схема, в которой для разработчика приложений нет разницы между таблицами, хранящимися на самой виртуозе и таблицами, лежащими на присоединённых серверах других вендоров. А что значит "жесткий" блокировочник? :) Да, такая виртуальная схема снимает вопрос о необходимости миграции на другую СУБД. Можно использовать обе :) Кстати у вас каждая нода владеет своим куском данных и не может передавать их на владение другой ноде как в Oracle RAC, поэтому необходимость в синхронизации блокировок есть только между дублирующими серверами? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 12:21 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхА что значит "жесткий" блокировочник? :)Он даже не пытается как-то переупорядочить транзакции, чтобы уменьшить число роллбэков или сделать ещё что умное. Как результат, среди транзакций полная "дедовщина" --- если случается дедлок, то всегда откатывается та транзакция, которая к этому моменту захватила меньше данных, без каких-либо "смягчающих обстоятельств". Для защиты от слишком блокирующих запросов есть "anytime query" --- можно указать, что запрос не должен нормально выполняться дольше такого-то времени, по достижении таймера у запроса возникает иллюзия, что все таблицы внезапно "опустели", и он волей-неволей возвращает частичный результат. Зато при необходимости транзакции могут длиться часами, хорошо бегают распределённые транзакции и checkpoint проходит совершенно незаметно для всех транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 12:44 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхКстати у вас каждая нода владеет своим куском данных и не может передавать их на владение другой ноде как в Oracle RAC, поэтому необходимость в синхронизации блокировок есть только между дублирующими серверами?Совершенно верно. При этом есть возможность эскалации блокировок (автоматической замены многих строковых одной страничной) + возможность создавать частичные индексы + для маньяков возможность на уровне приложения писать в разные индексы таблицы отдельными операторами. Всё это снижает затраты на синхронизацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 12:49 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru возможность создавать частичные индексы + для маньяков возможность на уровне приложения писать в разные индексы таблицы отдельными операторами. Всё это снижает затраты на синхронизацию. Частичные индексы - это partial index по диапазонам так понимаю. А что значит писать в разные индексы? Упрощение взаимодействия по идее должно сильно повысить масштабируемость. Кстати, примерно во сколько раз получается выигрыш в производительности от применения вертикального хранения, в 2, 5, 10, 100? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 13:18 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхiv_an_ru возможность создавать частичные индексы + для маньяков возможность на уровне приложения писать в разные индексы таблицы отдельными операторами. Всё это снижает затраты на синхронизацию. Частичные индексы - это partial index по диапазонам так понимаю.Это когда в индексе есть только некоторые из колонок primary key, напр. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
А если только G известно, то ищем G в RDF_QUAD_GS, потом S в RDF_QUAD_SP, потом P и S в P,S,O,G c проверкой G. При этом неполные индексы настолько малы, что ложатся в память, а полных индексов всего два вместо четырёх. модель представления данныхА что значит писать в разные индексы? Натурально, особо извратное приложение может, например, сделать пакетный INSERT SOFT в самый локальный для него индекс, посмотреть, что действительно вставилось, и уже только действительно новые строки вставлять в менее удобные индексы. Упрощение взаимодействия по идее должно сильно повысить масштабируемость. Кстати, примерно во сколько раз получается выигрыш в производительности от применения вертикального хранения, в 2, 5, 10, 100?[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 13:44 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхУпрощение взаимодействия по идее должно сильно повысить масштабируемость. Ещё б совпадали "упрощение для машины" и "упрощение для разработчика" :( модель представления данныхКстати, примерно во сколько раз получается выигрыш в производительности от применения вертикального хранения, в 2, 5, 10, 100?Выигрыш там в памяти. На если после этого активное подмножество начинает целиком умещаться в память, а диск только обновления пишет, то и по скорости выигрыш образуется. Я вот тут подробней рассказывал, правда не совсем СУБДшникам: Облако и куб: RDF в аналитической базе данных , и тут в конце тоже ссылки на русскоязычные конспекты по RDF/SPARQL . ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2011, 13:54 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruмодель представления данныхУпрощение взаимодействия по идее должно сильно повысить масштабируемость. Ещё б совпадали "упрощение для машины" и "упрощение для разработчика" :( Имеется ввиду разработчик который разрабатывает СУБД или разработчик который разрабатывает БД? iv_an_ruмодель представления данныхКстати, примерно во сколько раз получается выигрыш в производительности от применения вертикального хранения, в 2, 5, 10, 100?Выигрыш там в памяти. На если после этого активное подмножество начинает целиком умещаться в память, а диск только обновления пишет, то и по скорости выигрыш образуется. Я вот тут подробней рассказывал, правда не совсем СУБДшникам: Облако и куб: RDF в аналитической базе данных , и тут в конце тоже ссылки на русскоязычные конспекты по RDF/SPARQL . Интересно, что-то вы там серьёзное делаете :) На сколько я понял для RDF было отставание в 3 раза от реляционной модели, а после применения работ Абади стало примерно равно? И "производительность по RDF-H наконец-то оказалась сравнима с производительностью TPC-H" уже с учетом того, что в реляционной модели также применили вертикальное хранение или в реляционной оно не дает заметного выигрыша? Раньше реляционные сжимались лучше, а сейчас при вертикальном хранении данные сжимаете и насколько хорошо они сжимаются относительно реляционной модели? Кстати, а почему вы говорите "К тому же эта мера ускоряет чтение с жёсткого диска, но не снижает требований к размеру ОЗУ." В чем проблема хранить в ОЗУ сжатые данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2011, 20:25 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхНа сколько я понял для RDF было отставание в 3 раза от реляционной модели, а после применения работ Абади стало примерно равно? ... Раньше реляционные сжимались лучше, а сейчас при вертикальном хранении данные сжимаете и насколько хорошо они сжимаются относительно реляционной модели? При старом "горизонтальном" хранении TPC-H масштаба 1G ложился в 140000 страниц, RDF-H того же масштаба жрал 630000 страниц. При новом "вертикальном" хранении тот же TPC-H усох до 90000 страниц, а RDF-H --- до 250000 страниц. модель представления данныхИ "производительность по RDF-H наконец-то оказалась сравнима с производительностью TPC-H" уже с учетом того, что в реляционной модели также применили вертикальное хранение или в реляционной оно не дает заметного выигрыша? RDF никогда не догонит "классику" по масштабируемости и по скорости. Но он не догонит на тех задачах, на которых классические методы _применимы_. Когда в базе знаний что-то сделать _можно_, а в базе данных --- _нереально_, уже как-то не важно, во сколько раз база данных была бы быстрее, будь это реально. В итоге будущее, безусловно, за гибридами, чтобы разработчики приложений могли для каждого куска использовать наиболее подходящую комбинацию инструментов. Ну а пока сообщество старательно делится на СУБД-шников и СУБЗ-сников. Это такой же идиотизм, как если бы строители делились на сторонников использования одних только кирпичей и сторонников использования одного только цементного раствора --- и это после изобретения нормальной кладки :) RDF-H --- это как раз тест, показывающий самый плохой случай для RDF, если сравнивать с классикой. Методы разгона TPC-D (и теперь TPC-H) полировались десятилетиями, и это ровно то, для чего SQL и создавался в первую очередь. В то же время тупой экспорт этих данных в RDF-H и "лобовой" перевод запросов из SQL в SPARQL не демонстрирует никаких преимуществ базы знаний, они разрабатывались для другого. модель представления данныхКстати, а почему вы говорите "К тому же эта мера ускоряет чтение с жёсткого диска, но не снижает требований к размеру ОЗУ." В чем проблема хранить в ОЗУ сжатые данные?Чтобы и в памяти хранить сжатые данные, надо многократно разжимать их большими кусками. Это не только расходует время само по себе, но и забивает кэш процессора, что чревато падением производительности остального кода буквально на порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2011, 22:47 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Т.е. RDF от вертикального хранения выиграл больше :) iv_an_ruмодель представления данныхКстати, а почему вы говорите "К тому же эта мера ускоряет чтение с жёсткого диска, но не снижает требований к размеру ОЗУ." В чем проблема хранить в ОЗУ сжатые данные?Чтобы и в памяти хранить сжатые данные, надо многократно разжимать их большими кусками. Это не только расходует время само по себе, но и забивает кэш процессора, что чревато падением производительности остального кода буквально на порядок. В принципе да. Здесь вопрос в том насколько действительно большой разрыв в производительности систем хранения и исполнения. И насколько неоднородно идет обращение к данным. Если к одним данным идет в 100 раз больше запросов чем к другим, то да. Если достаточно однородно, то в любом случае расжать из ОЗУ будет быстрее чем поднять с диска. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2011, 23:03 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхВ принципе да. Здесь вопрос в том насколько действительно большой разрыв в производительности систем хранения и исполнения. И насколько неоднородно идет обращение к данным. Если к одним данным идет в 100 раз больше запросов чем к другим, то да. Если достаточно однородно, то в любом случае расжать из ОЗУ будет быстрее чем поднять с диска. Когда-то давно, когда для "крутых персоналок" стандартом были 2 мегабайта ОЗУ, продавал я одну расчётную софтинку, которая просила возмутительные 4 мегабайта ОЗУ. Потом вылез у меня конкурент, который стал как раз сжимать данные, и для многих задач стал укладываться в обычные 2 мегабайта. Обычная задачка у меня обсчитывалась за обеденный перерыв, у него --- за ночь. Закопал я "вражину" простым демпингом. Если клиент ворчал, что вот люди и на двух считают, и его задача действительно со сжатием влезала в 2 мега, то я обещал ему при покупке моей программулины подарок --- недостающие два мега. ...тогда я пообещал себе, что никогда не буду пытаться сжимать память... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2011, 23:27 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru , я согласен, хорошая метафоричная история. Но допустим доступ к дисковому массиву 600 МБс, доступ к памяти четырехканальной 40 000 МБс, итого примерно 100 раз. Допустим всего ОЗУ 64 ГБ, допустим половина под дисковый кэш (32 ГБ). Что лучше, иметь доступ к 32 ГБ со скоростью 40 000 МБс (в 100 раз), или к 64 ГБ со скоростью 4 000 МБс (в 10 раз)? Причем мы говорим именно про дисковый кэш, а не всю память сжимать-разжимать ;) И причем 600 МБс это последовательные IO к диску, а случайные 60 МБс, т.е. разница будет нет 100 и 10, а 1000 и 100 раз ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2011, 23:45 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данных iv_an_ru , я согласен, хорошая метафоричная история. Но допустим доступ к дисковому массиву 600 МБс, доступ к памяти четырехканальной 40 000 МБс, итого примерно 100 раз. Допустим всего ОЗУ 64 ГБ, допустим половина под дисковый кэш (32 ГБ). Что лучше, иметь доступ к 32 ГБ со скоростью 40 000 МБс (в 100 раз), или к 64 ГБ со скоростью 4 000 МБс (в 10 раз)? Причем мы говорим именно про дисковый кэш, а не всю память сжимать-разжимать ;) И причем 600 МБс это последовательные IO к диску, а случайные 60 МБс, т.е. разница будет нет 100 и 10, а 1000 и 100 раз ;) Рассмотрим грустный пример. Нужно вам сделать index lookup, взять целое поле по целому ключу, 160 байт на одну строку таблицы, 50 строк в странице. Несжатая память: вы двоичным поиском дёргаете 8 слов плюс девятое слово-значение, и перед тем "нулевое" слово --- версия индекса, с которой создавалась страница и всякие флаги. Трафик 10 64-битных строк кэша проца, readonly. Сжатая память: вы разжимаете 8 килобайт (т.е. 1000 строк кэша проца) в 16 килобайт (ещё 2000 строк, причём записи, за что NUMA подтормозит дополнительно). Итого только непосредсвенные затраты на трафик в 400 раз больше --- из 4000 перелопаченных строк реально понадобятся только 10. Такой КПД приводит к тому, что условные 40 000 МБс принесли полезных данных всего-то 100МБс, что удручающе похоже на приличный массив дисков. А ещё мы нагадили в кэш проца, ну и вообще проц заняли "чем попало", потеряв в скорости. Получается, что для сжатых страниц дискового кэша в памяти надо завести ещё кэш разжатых страниц. И снабдить всё это подобающими мьютексами (на которых тоже будут случаться тормоза). Оно того не стоит, чесслово. Вывод. Если денег на ОЗУ жестоко не хватает, то нужно ещё немножко урезать ОЗУ, а на сэкономленное купить SSD. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2011, 00:23 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru в 16 килобайт (ещё 2000 строк, причём записи, за что NUMA подтормозит дополнительно). А тут NUMA подтормозит в предположении, что проц может писать не в свою память или из-за выяснений куда писать? iv_an_ruИтого только непосредсвенные затраты на трафик в 400 раз больше --- из 4000 перелопаченных строк реально понадобятся только 10. Такой КПД приводит к тому, что условные 40 000 МБс принесли полезных данных всего-то 100МБс, что удручающе похоже на приличный массив дисков. В принципе да, только если уж говорим про кэш проца, то это уже не 40 000 МБс и 100 МБс, а на пару порядков больше :) Но в любом случае конечно index lookup здесь не выиграет. А вот index scan вполне бы мог ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2011, 10:52 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru , А в чем отличие RDF от EAV или это синонимы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 20:42 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхiv_an_ru в 16 килобайт (ещё 2000 строк, причём записи, за что NUMA подтормозит дополнительно). А тут NUMA подтормозит в предположении, что проц может писать не в свою память или из-за выяснений куда писать?Из-за распространения "разметки загрязнений", чтобы другие процессоры пометили строку в кэше как устаревшую, если она содержит данные из свежезаписанного куска памяти. модель представления данныхiv_an_ruИтого только непосредсвенные затраты на трафик в 400 раз больше --- из 4000 перелопаченных строк реально понадобятся только 10. Такой КПД приводит к тому, что условные 40 000 МБс принесли полезных данных всего-то 100МБс, что удручающе похоже на приличный массив дисков. В принципе да, только если уж говорим про кэш проца, то это уже не 40 000 МБс и 100 МБс, а на пару порядков больше :) Но в любом случае конечно index lookup здесь не выиграет. А вот index scan вполне бы мог ;)Мы говорим про чтение в кэш проца из памяти, а не регистров из кэша. А index scan на большом масштабе... Если что-то не работает _ваапще_, то уже не важно, с какой именно скоростью оно не работает :) Вот на некоторых графических задачах действительно "index lookup" по "плиткам" изображения, там да, успешно сжимают именно память. Классический пример --- RIP на типографских фотовыводителях, особенно постскрипта. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 21:29 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
отличие RDF от EAV iv_an_ru , А в чем отличие RDF от EAV или это синонимы?RDF --- это стандартизованный (потому переносимый) вариант EAV-представления. Я на одном семинаре рисовал разные варианты представления классического "мира кубиков" . Из всех вариантов просто победил самый ограниченный, зато дешёвый :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 21:38 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruМы говорим про чтение в кэш проца из памяти, а не регистров из кэша. Да :) С index lookup разобрались. Оверхеды на порядки больше чем выигрыш. iv_an_ru А index scan на большом масштабе... Если что-то не работает _ваапще_, то уже не важно, с какой именно скоростью оно не работает :) А вот это не совсем понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 21:50 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
модель представления данныхiv_an_ru А index scan на большом масштабе... Если что-то не работает _ваапще_, то уже не важно, с какой именно скоростью оно не работает :) А вот это не совсем понял.С ростом базы обычно падает доля предикатов, которые давали бы значения в некоторых коротких диапазонах. Или фильтрация даёт почти уникальные (в масштабе базы) значения, и они оказываются раскиданы очень далеко друг от друга, или фильтрация оставляет такое количество значений, что их за разумное время обработать невозможно вообще --- за время обхода базы либо данные устареют, либо ответ уже не будет нужен, либо осёл/дрессировщик/падишах помрёт. Немудрячий запрос "сумма стоимостей междугородных звонков за сегодня" прекрасно сработает на сырых данных офисной АТС, но невозможен для China Mobile. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 22:26 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruмодель представления данныхпропущено... А вот это не совсем понял.С ростом базы обычно падает доля предикатов, которые давали бы значения в некоторых коротких диапазонах. Или фильтрация даёт почти уникальные (в масштабе базы) значения, и они оказываются раскиданы очень далеко друг от друга, или фильтрация оставляет такое количество значений, что их за разумное время обработать невозможно вообще --- за время обхода базы либо данные устареют, либо ответ уже не будет нужен, либо осёл/дрессировщик/падишах помрёт. Немудрячий запрос "сумма стоимостей междугородных звонков за сегодня" прекрасно сработает на сырых данных офисной АТС, но невозможен для China Mobile. Т.е. для большой БД здесь два варианта: 1. Или фильтрация даёт почти уникальные (в масштабе базы) значения, и они оказываются раскиданы очень далеко друг от друга 2. или фильтрация оставляет такое количество значений, что их за разумное время обработать невозможно вообще --- за время обхода базы либо данные устареют... 1. Здесь в соответствии с кардинальностью будет выбран: - index lookup, тогда как мы выяснили сжатие только добавит оверхед и сьест CPU - index scan, тогда без сжатия пойдет загрузка в базу больших объемов данных и сжатие поможет 2. Здесь естественно идет index scan. На таких объемах данные секционируются по дням или чаще. Дневная секция составит к примеру 10^9 китайцев * 20 звонков за день в среднем = 20 * 10^9. Для сферического DWH в вакууме будет: объем строки: 8 байт списанные деньги + 8 байт номер исходящего абонента + 8 байт входящего + 8 байт время разговора + хедер строки допустим как в PG 24 байта = 56 байт объем дневной секции: 56 * 20 * 10^9 = 1.1 ТБ. На RAID из 24 дисков со скоростью около 1 ГБ/сек эти данные загрузятся за 18 минут = (1100ГБ /1 ГБсек) / 60 сек Обработает такой поток данных 2 CPU х 6 Cores. Т.е. за 18 минут мы посчитаем агрегат для материализованного представления которым в дальнейшем и будем пользоваться. И здесь вопрос, что лучше для увеличения скорости в 2 раза. - увеличить в 2 раза СХД и CPU(в 2 раза больше дисков и быстрее работает СХД, в 2 раза надо больше CPU) - увеличить в 4 раза CPU(4 CPU разжимают данные + 4 CPU их обрабатывают) (предполагаем что сжатие идет в 2 раза, но обычно оно в 3-10 раз) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 23:14 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
(набрал длинный ответ, но случайно нажал Ctrl-A вместо Shift-A, и продолжил набор :( В двух словах --- 18 минут не получится, потому что по двум номерам "междугородность" не установить --- нужны дополнительные данные для роаминга, редиректов и т.п. Поэтому категорию запросов надо предусмотреть заранее, и либо предусматривать 2.5-нормальную форму для схемы, либо вкладываться в быстрый произвольный доступ, либо и то и то. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 23:39 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ru(набрал длинный ответ, но случайно нажал Ctrl-A вместо Shift-A, и продолжил набор :( В двух словах --- 18 минут не получится, потому что по двум номерам "междугородность" не установить --- нужны дополнительные данные для роаминга, редиректов и т.п. Поэтому категорию запросов надо предусмотреть заранее, и либо предусматривать 2.5-нормальную форму для схемы, либо вкладываться в быстрый произвольный доступ, либо и то и то. (8 байт номер исходящего абонента + 8 байт входящего) имеется ввиду 64 битные идентификаторы на справочники номеров. Справочники по сравнению с таблицей фактов будут на порядки меньше. Сжимать справочники или нет, конечно вопрос. В любом случае отличие максимум в разы, получается примерно такой порядок на достаточно обычном серверном оборудовании. Хоть в звезде, хоть в снежинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2011, 23:57 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_rusoftwarerВ общем-то можно, но вряд ли это оптимальный путь. А вот где, почему и начиная с какого предела "нормальная" база тормозит по сравнению с "восьмушками" - имхо стоит тщательно изучить.Да нечего там было изучать. Очень большая база с RDF и много-много юзеров, каждый из которых ковыряется read-only в одних и тех же "очень активных" данных плюс каких-то неповторяющихся "непопулярных". Под Linux, а у него есть противная особенность: просто вход и выход из мьютекса не стоят почти ничего, а вот начало ожидания на мьютексе стоит примерно столько же, сколько целая выборка строки по ключу. В случае кластера проблемы с мьютексами уменьшились настолько, что экономия перевесила даже IPC. Поскольку для такого эффекта нужно, чтобы сервер "лёг на полку", не справляясь с нагрузкой, на практике такой сценарий просто не должен встречаться. (Потом появились деньги, и вместо одного ящика поставили 8. Как раз вовремя, потому что база подросла до 2.5e10 фактов, ну и юзеров ещё больше стало.) А это только в Linux такая особенность, что ожидание занятых ресурсов через мьютекс съедает больше чем межпроцессный обмен по IPC? Или в Unix(AIX)/Solaris/Windows также? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2011, 09:02 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
мьюеткс vs IPCiv_an_ruпропущено... Да нечего там было изучать. Очень большая база с RDF и много-много юзеров, каждый из которых ковыряется read-only в одних и тех же "очень активных" данных плюс каких-то неповторяющихся "непопулярных". Под Linux, а у него есть противная особенность: просто вход и выход из мьютекса не стоят почти ничего, а вот начало ожидания на мьютексе стоит примерно столько же, сколько целая выборка строки по ключу. В случае кластера проблемы с мьютексами уменьшились настолько, что экономия перевесила даже IPC. Поскольку для такого эффекта нужно, чтобы сервер "лёг на полку", не справляясь с нагрузкой, на практике такой сценарий просто не должен встречаться. (Потом появились деньги, и вместо одного ящика поставили 8. Как раз вовремя, потому что база подросла до 2.5e10 фактов, ну и юзеров ещё больше стало.) А это только в Linux такая особенность, что ожидание занятых ресурсов через мьютекс съедает больше чем межпроцессный обмен по IPC? Или в Unix(AIX)/Solaris/Windows также?Вообще-то в каждой операционке свой график цены "сработавшего" мьютекса от общего числа "достаточно активных" нитей, между которыми планировщику надо выбирать. Скажем, винда замечательно выбирает из двух нитей, потом резкий спад скорости, то есть всё умышленно оптимизировано для популярного случая нити активно рисующей и нити активно считающей. Linux начинает чуть хуже, зато более плавно деградирует. AIX показывает самый заметный overhead на паре нитей, но зато этот overhead --- практически константа, и ящик одинаково пофигистично держит любой тип нагрузки. И да, хороший пакетный протокол IPC может обогнать ожидалки мьютексов, когда цена ожидания начинает становиться сравнимой с таймслайсом планировщика. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2011, 19:04 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
Кстати, вопрошающим не сказано, какие объекты синхронизации рассматриваются: внутриядерные или в разделяемой пользовательской памяти. Первые имеют преимущество при преобладающем ожидании, вторые - при редком ожидании. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2011, 19:53 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
RXLКстати, вопрошающим не сказано, какие объекты синхронизации рассматриваются: внутриядерные или в разделяемой пользовательской памяти. Первые имеют преимущество при преобладающем ожидании, вторые - при редком ожидании. iv_an_ru сказал, что ест "ожидание на мьютексах", что может быть при засыпании, а значит используя ядро ОС. "в разделяемой пользовательской памяти" имеется ввиду собственная реализация объекта синхронищации многопоточности через атомарные операции с переменной в разделяемой памяти? iv_an_ru , а IPC выгирывает у мьютекса в этом случае за счет группировки и пакетной обработки разделяемых ресурсов? И да, почему допустим не использовали объекты синхронизации не использующие ядро и засыпание? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2011, 20:21 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
мьюеткс vs IPC"в разделяемой пользовательской памяти" имеется ввиду собственная реализация объекта синхронищации многопоточности через атомарные операции с переменной в разделяемой памяти? Да. Только не согласен с характеристикой "собственная". Не мало таких штук используется в POSIX threads. Ожидание, как правило, выполняется не в цикле, а в yield(). iv_an_ru , а IPC выгирывает у мьютекса в этом случае за счет группировки и пакетной обработки разделяемых ресурсов? И да, почему допустим не использовали объекты синхронизации не использующие ядро и засыпание? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2011, 21:52 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
RXLКстати, вопрошающим не сказано, какие объекты синхронизации рассматриваются: внутриядерные или в разделяемой пользовательской памяти. Первые имеют преимущество при преобладающем ожидании, вторые - при редком ожидании.Разнообразные, но рабочие лошадки под виндой --- WaitForSingleObject (...INFINITE) для длинных и EnterCriticalSection для коротких, под pthreads классический спин pthread_mutex_trylock плюс pthread_mutex_lock, а с самодельными фибрами в единственном потоке, сами понимаете, вообще ничего не надо, вот только годятся они теперь разве что для карманных устройств. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2011, 01:06 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruИ да, хороший пакетный протокол IPC может обогнать ожидалки мьютексов, когда цена ожидания начинает становиться сравнимой с таймслайсом планировщика. Так а за счет чего все таки IPC обгоняет ожидалки мьютексов? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2011, 23:18 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
ожидалки мьютексовiv_an_ruИ да, хороший пакетный протокол IPC может обогнать ожидалки мьютексов, когда цена ожидания начинает становиться сравнимой с таймслайсом планировщика. Так а за счет чего все таки IPC обгоняет ожидалки мьютексов?Если мьютекс начинает ждать на хотя бы каждой десятой записи, а в пакет влезает 10000 сообщений и он "стоит" максимум два сообщения, то... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2011, 23:33 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruожидалки мьютексовпропущено... Так а за счет чего все таки IPC обгоняет ожидалки мьютексов?Если мьютекс начинает ждать на хотя бы каждой десятой записи, а в пакет влезает 10000 сообщений и он "стоит" максимум два сообщения, то... А почему бы для высокой конкуренции не использовать MutexSpinCount? Т.е. не становиться сразу в ожидании на мьютексе, а делать mutex.try_lock() некоторое число раз до того как заснуть. Причем с шагом равным минимальному числу таков необходимых для вашей выборки. Либо этому числу деленному на общее количество ядер, что бы в среднем поток на каждом ядре делал try() каждые N-тактов, которые необходимы для выборки. Это конечно потребует синхронизации кэшей через барьеры памяти, но мьютекс их в любом случае потребует. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 03:01 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
MutexSpinCountiv_an_ruпропущено... Если мьютекс начинает ждать на хотя бы каждой десятой записи, а в пакет влезает 10000 сообщений и он "стоит" максимум два сообщения, то...А почему бы для высокой конкуренции не... делать mutex.try_lock() некоторое число раз до того как заснуть.А проблема выглядит так, как описано, уже с учётом этого трюка, без него было бы хуже. В коде используются две разные "породы" мьютексов, для "коротких в среднем" и для "длинных в среднем" ожиданий, с разной политикой по поводу try_lock. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 07:48 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruMutexSpinCountпропущено... А почему бы для высокой конкуренции не... делать mutex.try_lock() некоторое число раз до того как заснуть.А проблема выглядит так, как описано, уже с учётом этого трюка, без него было бы хуже. В коде используются две разные "породы" мьютексов, для "коротких в среднем" и для "длинных в среднем" ожиданий, с разной политикой по поводу try_lock. Вообще странно потому, что при таком раскладе почти никто не будет становиться в ожидание на мьютексе. Если конечно разброс ожиданий не велик. Если же разброс ожиданий велик, то SpinCount можно менять динамически. Поток захватывающий мьютекс может атомарно устанавливать(передавать) число тактов необходимое ему для разблокирования мьютекса и которое необходимо ждать другим до очередного try(). Это исключит лишнюю синхронизацию кэшей и постановку в ожидание для длинных блокировок. Плюс используя shared_mutex и учитывая, что по вашим словам большой перевес в сторону читающих транзакций, только пишущие транзакции в _редчайших_ случаях будут виновниками ожиданий на мьютексе. Неужели это все используется и не решает проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 13:56 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
MutexSpinCount, На самом деле трюков там куда больше, но пусть хотя бы самые интересные из них останутся маленьким секретом ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 18:09 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruMutexSpinCount, На самом деле трюков там куда больше, но пусть хотя бы самые интересные из них останутся маленьким секретом ;) Ну интересней, а точнее эффективней чем LockFree контейнеры, WaitFree таблицы задач и версионность на разных уровнях ещё не придумали :) Cliff Click с LockFree Hash Table, IBM c HazardPointers и прочие ;) Просто странно, что даже со всеми интересными трюками были: iv_an_ruБолее того, у нас были "бредовые" с точки зрения любого учебника случаи, когда "кластер" из 8 нод на одном восьмиядерном ящике и 1/8 памяти для каждой ноды обгонял просто "нормальную" базу на той же машине. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2011, 00:53 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
MutexSpinCount, Ситуация, когда в скромных 128 гигов ОЗУ умещаются 13 миллиардов записей, причём с 2 полными и 3 неполными индексами --- она странная сама по себе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2011, 05:42 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
iv_an_ruMutexSpinCount, Ситуация, когда в скромных 128 гигов ОЗУ умещаются 13 миллиардов записей, причём с 2 полными и 3 неполными индексами --- она странная сама по себе :) Получается 10 байт на запись. Это выглядит очень интересно по сравнению со средним оверхедом в 25 байт на запись в rows-oriented DBMS, к которой большинство тут популярных РСУБД относится. Но насколько я понимаю у вас column-oriented, а тут уже нужно сравнивать допустим с Exadata V2 Hybrid Columnar Compression, где column-oriented да ещё и с сжатием :) А насчет ожиданий на мьютексах, восьмушки были быстрее по общему количеству запросов в секунду или именно латентность была меньше, и эти измерения проводились при нагрузке CPU близкой к 100%? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:23 |
|
Поговорим о масштабировании
|
|||
---|---|---|---|
#18+
MutexSpinCountА насчет ожиданий на мьютексах, восьмушки были быстрее по общему количеству запросов в секунду или именно латентность была меньше, и эти измерения проводились при нагрузке CPU близкой к 100%?По общему количеству запросов в секунду. На той версии, которая готовится сейчас к выпуску, одиночный процесс будет всё же быстрее на той конкретной нагрузке, но это было достигнуто ценой заморочек в других местах. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:41 |
|
|
start [/forum/moderation_log.php?user_name=778]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
198ms |
get tp. blocked users: |
2ms |
others: | 2489ms |
total: | 2795ms |
0 / 0 |