Принимать БД пишет быстрее, чем БД может их записать - PullRequest
0 голосов
/ 15 февраля 2012

У нас есть решение, которое глобально распределено по нескольким серверам Sybase DB и оснащено кэшем Oracle Coherence.

Теперь нам необходимо поддерживать «операции записи в кэш», хотя из-за международной репликацииприрода нашей БД, мы должны принимать данные для БД, сохраняющиеся быстрее, чем БД может фактически записать данные, с чем вы, вероятно, все согласитесь, это большая проблема.

Поэтому мне интересно, каков рекомендуемый подход для решенияэта ситуация будет такой:

Примечания:

  • Нет ограничений
  • В соответствии со статистикой использования несколько шардов разделены

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Я решил использовать горизонтальное разбиение для некоторых из более крупных и часто используемых таблиц, что изначально поддерживается Sybase ASE 15+ и прозрачно для клиентских приложений.

0 голосов
/ 16 февраля 2012

Один подход к рассмотрению:

БД может потенциально писать медленнее, чем нужно, если вы пишете в оптимизированную для чтения базу данных или таблицы. Там может быть много ограничений и индексов, и много времени «тратится» на их проверку и пересчет.

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

Тогда будет другой процесс, который будет передавать данные из оптимизированной для записи в оптимизированную для чтения (постоянную) схему.

По сути, если синхронный процесс работает с ограничениями, его можно разделить на несколько асинхронных процессов с использованием механизмов регулирования и / или очереди.

...