|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Привет котаны-братаны. По мотивам Мониторинг изменений в базах данных Буду краток. Две базы. Два приложения. И 1 месседж брокер. Запускаем мастера и подчиеннного. Код: java 1.
Код: java 1.
Вобщем надо как-то так исхитриться чтоб изменения мастера попали в Slave. Топология сети - любая. База - любая (postgres как пример) Брокер - любой. Требований по SLA нету. Как сделаете так и будет. Изменения - только DML (Insert/Update/Delete) Go-go кодить. P.S. Ну триггерочки и служебные таблички там уж сами посоздавайте если надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 20:29 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton Go-go кодить. нафига? https://google.gik-team.com/?q=postgresql master slave replication Ты же хорошо представляешь, сколько строк кода и сколько такая система реально стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 20:45 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, сколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 21:14 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Понты делов. К воскресенье будет POC. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 21:57 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton Понты делов. К воскресенье будет POC. Прям со сплит брейном и поддержкой оффлайн? И чтоб ни единого разрыва! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:16 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Вы уже процедуру main написали? А? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:17 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton Go-go кодить. нафига? https://google.gik-team.com/?q=postgresql master slave replication Ты же хорошо представляешь, сколько строк кода и сколько такая система реально стоит. Абстрактный JDBC источник. Я-же писал в задании. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:22 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky Если это тоже что и XA - то это тормозной кусок говна. Синхронная фиксация в две системы. Тормоз еще тот. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:25 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton База - любая (postgres как пример) ... P.S. Ну триггерочки и служебные таблички там уж сами посоздавайте если надо. Бессмысленное занятие, каждая уважающая себя СУБД уже имеет механизмы репликации работающие на уровне ядра, триггерочками получится тормозной кусок говна)) Хотя если данных не много и репликация почтовая, то может и пригодится поделье, но даже в этом случае нативная для СУБД часть будет составлять основной объем кода, на промежуточном уровне будет только забор готовых upsert/delete и применение их на другой инстанс в нужном порядке. Основная проблема будет в том, что триггеры на операции срабатывают непосредственно при проведении операции, а фиксация происходит позже и триггера уровня строки на фиксацию нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:41 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
iOracleDev, Ты серьёзно так напрягся? Чувак. Это пятничный топик. Это брейншторм. Это челлендж. Здесь не ищут коробочных решений!!! Go-go!! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:44 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, Смотрю с интересом на то что получится, особенно на часть касающуюся СУБД)) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 22:49 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Не стоит забывать о проблемах связанных с текущим временем. Если запрос содержит insert currentSystemTime или random - в общем нечто недетерминированное, то просто прогнать инсерт на реплике не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 23:50 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton Если это тоже что и XA - то это тормозной кусок говна. Синхронная фиксация в две системы. Тормоз еще тот. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 00:44 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
забыл ник Не стоит забывать о проблемах связанных с текущим временем. Если запрос содержит insert currentSystemTime или random - в общем нечто недетерминированное, то просто прогнать инсерт на реплике не получится А что будет видеть триггер? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 10:57 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
В качестве первого закидона. Этот код я писал еще летом. И это еще не CDC. Это подготовка схемы БД к созданию служебных таблиц и триггеров. Код - требует улучшений. В частности - отвязки от Постгреса и привязки к генерализованной СУБД. Есть еще второй вариант такого-же CDC где EAV табличка заменяется на множество типизированных. Код: javascript 1. 2. 3. 4. 5. 6.
Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 11:21 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Всё. Больше никаких тузов в рукаве у меня нет. Надо садиться и писать чортов код. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 11:26 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Думаю над docker-compose. Исключительно в целях тестирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 13:42 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Docker-compose. Пока вот так вот. Еще не тестил. Возможно не хватает некоторых env-переменных для ApacheMQ. Логины-пароли там. Админка и прочее. Вобщем добавте кому не лень. Здесь /bigdata - это просто мой локальный путь где диск толстый и есть место для флуда. Замените его соотв на ваш путь как будет удобно. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 00:31 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Дополнение №1 к базовому заданию. Для EAV-модели. Что делать с транзакциями на удаление строк в том случае если в таблице нет PK ? Скорее всего - ничего. Придется констатировать что мы не можем удалять такие строки на Slave системе. Итого: игнорируем delete/update для таблиц без PK. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 00:38 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Вобщем в докер-композиции я всё напутал. Порты не те. Вот так работает. Можно уже заходить на админский порт MQ и смотреть чо как. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Еще надо придумать как автоматизировать создание и наполнение БД. Здесь я пока - пас. Надеюсь что у мемберов есть под рукой какая-то учебная базячка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 01:36 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Дополнение к базовому заданию №2 Как передавать информацию о первичных ключах? Хотелось бы чтобы логика Slave(consumer) была максимально примитивной. Consumer должен просто принимать JMS/Json сообщения из канала и просто их трансформировать в целевой DML для целевой DBMS. (кстати из этого вытекает бонус. Тип DBMS может быть разный) При этом для формирования предложения WHERE он не должен заглядывать ни в какие справочники таблиц и ключей. Фактически JMS сообщение должно уже содержать эту информацию. Consumer - простой и деревянный. Producer - умный. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 11:42 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Неутешительные итоги. Насчет POC. Есть некий каркас вида двух консольных приложений. Master.java / Slave.java которые просто стартуют и умеют распознавать входные аргументы. И есть парочка сущностей типа EavEntity и JMSEntity. Первая нужна просто для маппинга таблички Код: java 1. 2. 3. 4. 5. 6. 7.
И вторая будет по сути месседжем. Ее еще надо будет доработать для признаков первичных ключей. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
В каркас встроенные фрагменты учебных туториалов из набора ApacheMQ (для быстрого старта). В принципе они должны поднятся в интеграции с env. +Создана конфигурация docker-compose которая поднимает environment из двух Постгресов и 1 Apache Active MQ последних версий. Постгресы я брал только лишь для того чтобы привязаться к какой-никакой реляционной внешней системе. Было пофиг что брать и я как и обещал буду строить независимую от dbms систему. В крайнем случае придется написать сет бриджей или адаптеров диалектов SQL так же как это делают Hibernate/Batis. Я просто всячески оттягиваю этот момент чтоб он не мешал на старте. +По мелочи. Добавлены логгеры и их конфигурации. SQL скрипик и докер-скриптик. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 21:43 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, Тормозить будет. При update таблички на сотню тысяч по where date > ХХХ будет событий 50000. И все встанет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:10 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Нас это остановит? Такие события - нечастые в системе. Мы будем рассчитывать на классический OLTP а котором подобных апдейтов по дизайну нет. Опишу это как ещё одно дополнение к ТЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:40 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, при удалении будет ошибка. см. TG_OP = 'DELETE' ... NEW. ... RETURN NEW ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:42 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky, О. Поподробнее. В скриптогенераторе ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 10:36 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, да. должно быть типа такого Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 10:48 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky, О спасибо. Проверю. Пофикшу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 10:50 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton Такие события - нечастые в системе. Мы будем рассчитывать на классический OLTP а котором подобных апдейтов по дизайну нет. Будет куча ненужных событий. Сначала в журнале, потом в триггерах. ... Да. Ограничения Модели надо обязательно в ТЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 11:16 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Такие события - нечастые в системе. Мы будем рассчитывать на классический OLTP а котором подобных апдейтов по дизайну нет. Будет куча ненужных событий. Сначала в журнале, потом в триггерах. ... Да. Ограничения Модели надо обязательно в ТЗ. Замечание справедливое. Но скажи. В состоянии ли будем мы поддержать ВСЕ продуктовые шаблоны использования бд. Такие как HR/CRM/ERP ? Я считаю что нет. Поэтому давай пока ограничимся тем что у нас есть две неизвестных гетеоренных БД (master/slave). Магазин. И копия магазина. В них есть какая-то нагрузка. Но она невелика. Тоесть массовых апдейтов пока не предполагается. По поводу того что изменения 500 000 строк завалят нашу систему. Это хороший бенчмарк (особенно для MQ) системы и мы обязательно этот кейс смоделируем. Но это не будет главным поинтом или главным требованием. Чуть позже я опишу еще одно дополнение в виде рекомендации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 12:10 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, Да. Согласен. Просто в бд все продумано. И есть флаг в триггере - реагировать на каждую строку оператора update или Один раз на один такой оператор. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 12:23 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Ты имеешь в виду уровень строки/оператора? Код: plsql 1. 2. 3. 4. 5. 6. 7.
Да надо над этим подумать. Мне изначально хотелось создать систему в которой целевая БД (Slave) могла очень сильно отличаться. По сути она может быть даже NoSQL. Мастер - умный. Slave - глупый. Slave - просто глотает JmsMessages потоком и применяет их не думая и не делая процессинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 12:40 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, зачем вообще в данной задаче аудит на триггерах? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 13:54 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky, это не аудит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:01 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky mayton, зачем вообще в данной задаче аудит на триггерах? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:19 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Еще альтнативный вариант. Я думал о системе в которой нет триггеров но есть некий timestamp последнего действия над data-rows. Предполалается что мы трекаем только INSERT/UPDATE. Для детектирования-же удалённых строк надо будет делать какое-то соединение между Master/Slave табличками чтобы понять какие из них исчезли. Но это - отдельным топиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:46 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton Еще альтнативный вариант. Я думал о системе в которой нет триггеров но есть некий timestamp последнего действия над data-rows. Предполалается что мы трекаем только INSERT/UPDATE. Для детектирования-же удалённых строк надо будет делать какое-то соединение между Master/Slave табличками чтобы понять какие из них исчезли. Но это - отдельным топиком. Это репликация снимками - на приемник гоним полную копию источника и сравниваем что менялось (primary/unique key надо бы, да). Использование timestamp без снимков чревато потерянными изменениями (я не встречал БД которая сохраняет именно время фиксации) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 15:23 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
MazoHist mayton Еще альтнативный вариант. Я думал о системе в которой нет триггеров но есть некий timestamp последнего действия над data-rows. Предполалается что мы трекаем только INSERT/UPDATE. Для детектирования-же удалённых строк надо будет делать какое-то соединение между Master/Slave табличками чтобы понять какие из них исчезли. Но это - отдельным топиком. Это репликация снимками - на приемник гоним полную копию источника и сравниваем что менялось (primary/unique key надо бы, да). Использование timestamp без снимков чревато потерянными изменениями (я не встречал БД которая сохраняет именно время фиксации) Интересно еще было бы рассмотреть как работает rsync или в частности Merkle-tree. Если получится - то можно будет выделять группы строк которые изменились и передавать только их. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 15:29 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky mayton, зачем вообще в данной задаче аудит на триггерах? У этой задачи цель одна)) mayton Go-go кодить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:13 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Эхех. Никому сабж неинтересен. Попрошу модера закрыть. Позже подниму топик с другой CDC. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:21 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, Ты себе представляешь нагрузку на ровном месте, которую дашь на СУБД? При том что каждая СУБД имеет свои инструменты, работающие на низком уровне, такой Франкенштейн никому не нужен, разве что поигратья и насобирать граблей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:29 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
mayton, iOracleDev верно сказал. И потом, представь что на пятом операторе в одной транзакции по БЛ сработал роллбэк отмена. Такое часто бывает. База удачно все откатит. А твой триггер уже отработал и послал сообщение. Его не вернуть будет. Потом, транзакции могут быть длинные. 20 минут например. Что с этим делать если до коммита это не изменения базы. А коммит может и не быть вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:37 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
СУБД свой мир. И седствами java там не развернуться. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:38 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
пример тормозного говна))) postgresql+h2database+ha-jdbc Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
+покоцал иcходники h2 (небыло show search_path ) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 19:25 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
Victor Nevsky, о. Шикарно. Посмотрю вечером. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 19:31 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
наткнулся на проводки))) тест запилю))) (postgresql+h2database+ha-jdbc) интересно ... откудова такие цифры ... всё-таки 10 лямов .... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 03:43 |
|
Тяпничный CDC/JMS
|
|||
---|---|---|---|
#18+
запросы о проводках .... нда.а.а.а . . . результаты не приближённые ... HAJDBC_Test Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 04:40 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120916]: |
0ms |
get settings: |
22ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
849ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 983ms |
0 / 0 |