2

Я использовал реализацию Java-теста с открытым исходным кодом теста TPC-C (называемый TCJ-TPC-C через JDBC (созданный MMatejka в прошлом году)), чтобы сравнить производительность Oracle и 2 СУБД OSS.Причины отсутствия теста производительности для систем баз данных oss?

TPC-C является стандартом в собственной сфере, и мой вопрос:

Каковы основные причины, что систематически не реализован тест производительности для систем баз данных OSS?

+0

Никто не подталкивает его, нет средств для его продвижения, все платформы отличаются друг от друга, в то время как набор TPC требует очень жестких требований (альтернативные решения могут бить TPC, но arent разрешен, поскольку они сгибают правила) Не поймите меня неправильно , Я бы хотел, чтобы было более ровное игровое поле. – rlb

+0

Я не уверен, понимаю ли я ... Вы имеете в виду, что нет денег и кто-нибудь, кто это понимает? вся система баз данных немного отличается, я прав? Итак, почему это так специфично для OSS? Что означает, что альтернативный зол может бить TPC? (какой альтернативный зол? какие правила?) Я здесь новый, поэтому извиняюсь за свое недоразумение. –

+1

@StevePatris Для OSS, вероятно, нет ощутимого значения, затрачивая много времени на то, чтобы получить контрольный показатель для работы, время, которое может быть лучше потрачено на исправление ошибок или написание новых функций. В то время как для коммерческих поставщиков это может быть дополнительным аргументом «продажи». –

ответ

0

Во-первых, я не уверен, что ваш вопрос идеально подходит для SO, поскольку он приближается к мнению, и поэтому весь мой ответ больше мнения, чем факта. большую часть из которых я читал на протяжении многих лет, но больше не буду искать ссылки/доказательства. Я не являюсь членом TPC, но серьезно исследовал попытку получить базу данных хранилища dsitributed, протестированную в рамках пакета TPC-H.

Бенчмарки

Они являются большими в тестировании одного функции и сравнивая их, к сожалению, нигде не так просто, как кажется. Компании будут прилагать большие усилия для получения лучших результатов, иногда (так я слышал), реализующих определенные функции в источнике для эталона. Существует много дискуссий о том, как надежные результаты тестов в целом. Кроме того, эталонный тест может быть идеально подходящим для некоторого продукта, но не для другого.

В вашем примере используется Jdbc, но не у каждой базы данных есть jdbc, или, что еще хуже, это может быть «незначительный болт», чтобы включить этот класс приложения. Таким образом, выполнение тестов через jdbc, когда все основное использование будет встроено в sql, может неправильно отображать некоторые решения.

Есть некоторые аргументы в пользу того, что тесты отвлекают поставщиков от реальных приоритетов, они тратят силы и реализуют функции исключительно для контрольных показателей.

Бенчмарки также может быть очень легко неправильно, даже TPC представляет собой набор различных критериев, и вы должны выбрать правильный для ваших нужд (TPC-C для OLTP, TPC-H для ДСС и т.д.)

TPC

Если это прочитано как отрицательное для tpc, пожалуйста, простите меня, я pro tpc.

Tpc определяет очень плотный набор требований к испытаниям. Вы должны следовать этим буквам. Для TPC-H это пример того, что вы должны сделать

  1. сделать несколько трасс, некоторые параллельно, некоторые одного пользователя
  2. использовать именно SQL при условии, вы не должны изменить его на всех. Если вам нужно, потому что ваша система использует несколько иной синтаксис, но должна получить отказ.
  3. вы должны использовать внешний аудитор.
  4. вы не можете указывать colmns и т. Д., Кроме того, что указано.
  5. для ТПЧ вы должны сделать запись в определенном образе (что исключает «одного писателя баз данных типа)

выше гарантирует, что люди, читающие результаты могут иметь доверие к целостности результатов, что является большим для корпоративного покупателя.

Tpc - некоммерческая организация, и любой может присоединиться.Существует плата, но это не главный барьер, за исключением OSS. Вы только реально заплатите эту комиссию, если считаете, что можете добиться действительно отличных результатов, или вам нужны опубликованные результаты для участия в тендерах на правительственные контракты и т. Д.

Самая большая проблема, которую я вижу с tpc для oss, заключается в том, что она сильно искажена к реляционным поставщикам и очень немногим решениям oss могут соответствовать критериям входа с их предложениями, или если они это сделают, они могут не работать достаточно хорошо для каждого теста. Выполнение эталона также может быть отвлечением для некоторых команд.

Альтернативы TPC

, конечно, альтернативы существуют для TPC, но никто на самом деле не набирать обороты, пока еще, что я в курсе. Крупные поставщики часто оговаривают, что вы не можете сравнивать свои продукты и публиковать результаты. Таким образом, любой новый ориентир должен быть политически прост, чтобы получить их на борту. Я согласен с позицией продавцов здесь, я бы не хотел, чтобы кто-то неправильно реализовал контрольный показатель и плохо сообщил о моем продукте.

Ландшафт базы данных сильно сломался с тех пор, как начался tpc, но многие приложения «bet you business» по-прежнему работают на «классических» базах данных, поэтому у них все еще есть место. Тем не менее, с ростом nosql и т. Д., Есть место для новых тестов, но реальный вопрос становится тем, что нужно измерить - даже при использовании xyz как% kitten%. Или xyz, как «котенок%». Будет иметь драматические последствия для различных решений. Если вы решите, какой общий интерфейс wil, вы разрешите (odbc, jdbc, http/ajax, embedded sql и т. Д.), Каждый из этих интерфейсов сильно влияет на производительность. Как насчет реальных моделей, таких как ACID для реляционных моделей и возможных моделей согласованности? Что относительно аппаратных/программных решений, которые используют специально разработанные аппаратные средства?

Каждая база данных создала компромиссные решения для разных нужд, и эталон пытается попытаться выровнять игровое поле, что действительно возможно, если у вас есть что-то общее или сообщите о множестве разных показателей.

Одной из проблем с попыткой создать альтернативу является то, что «кто будет платить»? Вам нужен консенсус по типу тестов для выполнения, а затем вам нужно провести аудит результатов, чтобы они были значимыми. Все это стоит денег.