|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
Еще пара вопросов: 1. Можно ли в GlobalsDb отключить журналирование? 2. Если я удалил данные из БД, можно ли как-то уменьшить размер файла БД и журнала? P.S. Если есть какой-то документация по GlobalsDb (не API), чтобы я не задавал эти вопросы здесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2014, 15:30 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCacheМожно ли в GlobalsDb отключить журналирование?Официально - нет As far as journaling is concerned, journaling is always on by default for the Globals Database., но неофициально - можно , например: Код: java 1. 2. 3. 4. 5.
TryCacheЕсли я удалил данные из БД, можно ли как-то уменьшить размер файла БД и журнала?Средствами GlobalsDB - нет. TryCacheЕсли есть какой-то документация по GlobalsDb (не API)?Пока только Caché . См о́ трите, что есть в Caché и проверяете есть ли это в GlobalsDB, для которого в этом плане подходит новый слоган браузера Opera - "Создан для открытий". TryCacheчтобы я не задавал эти вопросы здесь Там Вы можете задать не только свои вопросы, связанные с GlobalsDB, но и внести предложения по расширению его функционала . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 10:41 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit Код: java 1. 2. 3. 4. 5.
servit, а в какой момент это нужно делать? Просто на уже имеющейся базе в несколько гигов это по всей видимости это приводит к гибели СУБД - все висит, данные не пишутся в БД, даже перезапустить службу нельзя. Я думал она там журнал накатывает, но видимых обращений к диску нет. Нужно выполнять только последнюю команду или обе? Нужно ли перезапускать службу СУБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 15:18 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit, кстати, я использую библиотеки от Cache (а не те, которые в папке globals), все работало до момента отключения журнала. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 15:19 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
кстати, я использую библиотеки от Cache (а не те, которые в папке globals) Можете сказать почему ? Какой выигрыш из этого ? И какие именно. Тоже интересно, а то у них можно запустить только 4 job-a ... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 15:56 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
Valeriu, просто для удобства разработки (в maven сначала использовал обе версии, потом запустил Globals со сборкой от Cache, а оно, оказывается, работает). Мне нужно создать приложение, работающее с двумя СУБД. Деплоить - это уже другой вопрос, а сейчас мне так проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 16:03 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCacheservit, а в какой момент это нужно делать? Нужно выполнять только последнюю команду или обе? http://docs.intersystems.com/cache_latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_journal#GCDI_journal_util_NOJRN]Manage Journaling at the Process Level Using %NOJRN TryCacheНужно ли перезапускать службу СУБД?Нет. TryCacheвсе висит, данные не пишутся в БД, даже перезапустить службу нельзяПокажите Ваш globalsdb.log TryCacheМне нужно создать приложение, работающее с двумя СУБД 12665535 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 16:28 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit, globalsdb.log Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 16:46 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
1. И все-таки, в доке написано: A process can enable or disable journaling for itself via the ENABLE and DISABLE line tags of ^%SYS.NOJRN, respectively. Т.е. несмотря на очевидное двойное отрицание (NOJRN уже отрицание), я должен вызывать DISABLE %SYS.NOJRN? 2. Вызов этого метода действует на мой ПРОЦЕСС или на время вызова ConnectionContext.getConnection().connect, пока не закрыли соединение? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 16:51 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCacheТ.е. несмотря на очевидное двойное отрицание (NOJRN уже отрицание), я должен вызывать DISABLE %SYS.NOJRN?
Код: java 1. 2. 3.
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 18:03 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servitTryCacheдаже перезапустить службу нельзяВ globalsdb.log этого не видно, а видно, что была интенсивная заливка данных. Журналирование хотите отключить ради ускорения BULK INSERT? Да, нужно вставлять много двоичных данных, причем параллельно нужно чтение этих данных. Это вообще была одна из причин, почему мы выбрали Cache. Навскидку разница в скорости как раз примерно в 2 раза (по сравнению с отключенным журналированием). P.S. Не совсем параллельно - т.е. у меня все равно будет очередь (работаю через акторы), но суть в том что операции записи перемежаются с операциями чтения. А в принципе я записал данные, затем могу прочитать, потом опять записал и т.д. В какой-то момент данные удаляются. Но, опять же, повторюсь, Intersystems выбрали из-за возможности работать с большими объемами данных на запись _постоянно_. Понятное дело, что-то будет удаляться, но я хотел подчеркнуть, что это не разовая операция вставки и потом работа в обычном режиме, а именно работа с базой как с абстракцией над файловой системой, позволяющей эффективно работать, не рассчитывая всякие смещения в файле и т.п.. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2014, 19:48 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit, выполняю Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
дальше делаю вставки, но размер файла transaction-journal.000 начинает быстро расти и никакого прироста скорости я не замечаю. Может быть нельзя вызывать connection.close()? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 10:03 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
в итоге ты подключаешься, отключаешь журналирование для текущего процесса затем зачем то сразу отключаешься и потом опять подключаешься, и разумеется отключение журналирования уже не будет. потому как это было в другом подключении. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 10:10 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
DAiMor, т.е. в таком случае, если я использую конструкцию типа using(resource) с автозакрытием соединения, то мне нужно каждый раз заново вызывать отключение журнала после установления соединения? А есть ли какие-то накладные расходы на эту операцию, или они совсем незначительны? И вот еще что странно: получается мне нельзя завершать отладку программы аварийно, когда идет работа с GlobalsDb. Дело в том, что я завершил в отладчике отладку аварийно, а при следующем подключении - ничего, даже перезапустить GlobalsDb нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 10:35 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
Да, при каждом переподключении это будет всегда новый процесс. соответственно его всегда нужно инициализировать по новому, и отключение журналирования ввашем случае относится к этому. Насчет завершения аварийно, вообще-то проблем не должно быть особо, почему не удается подключение, нужно внимательно изучать логи, смотреть текущее состояние системы, там же есть ограничения на подключения, может серверный процесс не завершается и продолжает работать, и он не дает подключится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2014, 10:56 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
DAiMorНасчет завершения аварийно, вообще-то проблем не должно быть особо, почему не удается подключение, нужно внимательно изучать логи, смотреть текущее состояние системы, там же есть ограничения на подключения, может серверный процесс не завершается и продолжает работать, и он не дает подключится. А Вы можете насчет серверного процесса написать подробнее? Я точно установил причину этого зависания. С журналированием решил пока ничего не делать, все настройки по умолчанию. В течении порядка минуты я пишу в чистую БД около 1 Гб данных (файл CACHE.DAT порядка 1 Гб и два журнала один 512 Мб, другой чуть меньше), затем в IntelliJ IDEA по кнопке "Stop debug" я снимаю задачу. Все, теперь появляются две проблемы: 1. я не могу подсоединиться к БД из своей программы. 2. я не могу остановить (из оснастки "Службы") службу GlobalsDb в принципе. Может быть проблема в такой нагрузке? За час я записал в Cache (с отключенным журналированием) порядка 120 Гб данных, хотел сейчас проверить как это работает в GlobalsDb, но через какое-то время скорость стала проседать и я завершил отладку в отладчике. После этого ни подсоединиться к GlobalsDb, ни остановить службу я не могу. После перезагрузки я его запускаю и все вроде нормально, если не считать диких тормозов диска (процесс cache начинает что-то читать с диска очень интенсивно). Собственно, я так понимаю на одну GlobalsDb - один процесс, это так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 10:42 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCache, Я говорил, что GlobalsDb предоставляет ВСЕГО 4 job (процессов) по сравнению с полноценной системой. Если они исчерпаны(использованы) то такая картина вполне может быть и у вас... Смотрите сколько job-ов хавает ваша система в этих случаях. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 10:56 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCacheСобственно, я так понимаю на одну GlobalsDb - один процесс, это так?Вот тут совсем не понял, что значит на одну GlobalsDB один процесс, одно подключение=один процесс (может и больше) а вы можете тоже самое воспроизвести на Cache ? там больше инструментов, можно больше понять что происходит. можно посмотреть в списке процессов, те что что имеют отношение к globalsdb, посмотреть их список можно попробовать грохнуть процесс который был создан для подключения из IDEA. в проекте нужно предусмотреть аварийное завершение работы с закрытием подключений. после рестарта, чтение, скорее всего связано с тем что было аварийное завершение работы, и сервер сканирует журнал на наличие незавершенных транзакций, для их отката подключение еще может не удаваться из-за того что система уходит во freeze из-за слишком большого потока записи данных (в Cache это легче мониторить с помощью mgstat) и остановка, незнаю как насчет globalsdb, но cache можно принудительно остановить командой ccontrol force instanceName ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2014, 11:02 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
TryCacheМне нужно создать приложение, работающее с двумя СУБД.1. По логу видно, что у Вас файл БД стремительно растёт, на что тратится доп. время. Код: plaintext
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 09:07 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
ValeriuЯ говорил, что GlobalsDb предоставляет ВСЕГО 4 job (процессов) по сравнению с полноценной системой.Можно ссылку?TryCacheСобственно, я так понимаю на одну GlobalsDb - один процесс, это так?Нет, не так, и это очень легко проверить. Запустил одновременно 5 экземляров приложения (5 процессов java.exe ), соответственно 5 подключений - и всё работает. При этом количество процессов cache.exe не изменилось . ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 09:36 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit, Я с этим столкнулся раньше. С клиента, больше 2-х соединений никак, job-ов не хватает.. http://www.sql.ru/forum/1024187/globals-na-ubuntu-11-04?hl= ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:54 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
ValeriuЯ говорил, что GlobalsDb предоставляет ВСЕГО 4 job (процессов) по сравнению с полноценной системой. А все таки заработала связка сокет клиент (Win или Linux) и база Globals на Linux(только!) через демон xinetd и M/Wire Роба Твида... Кроме двух соединений, больше нельзя делать ... Я просил ссылку про "ВСЕГО 4 job (процессов)", а не "больше 2-х соединений никак, job-ов не хватает..". Так 4, 2 или 8 ( 10500406 )? Всё смешалось: кони, люди, процессы, соединения ... Всё зависит от того чем (как) подключаться. Например, 3 консоли ( globals.exe console ) запускаются без проблем. При этом стартуют 3 новых процесса cache.exe . Четвёртый же запуск завершается ошибкой со следующим сообщением: Код: plaintext
Если же использовать этот самый "published API", который не предусматривает сокетов и команд $job, то, как показано выше, ограничений на количество подключений нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 11:45 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
servit, Если же использовать этот самый "published API", который не предусматривает сокетов и команд $job, то, как показано выше, ограничений на количество подключений нет. Именно этим и хотелось поработать($job). Сокетов можно и не использовать. Вот именно и за этого. Тогда как определить пользователей, которых соединились к базе, если нету $job ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 12:46 |
|
Еще пара вопросов по GlobalsDB
|
|||
---|---|---|---|
#18+
ValeriuТогда как определить пользователей, которых соединились к базе, если нету $job ?Если помнить это ( 12665535 ), то подобные вопросы должны разрешиться сами собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 13:01 |
|
|
start [/forum/topic.php?fid=39&msg=38764416&tid=1556795]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 146ms |
0 / 0 |