Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Как установить Cache' Block Explorer?  [new]
Алексей12377
Guest
Добрый день!

Прочитал статьи про блоки Каше - очень интересно. А есть инструкция как поставить и сконфигурировать Cache Block explorer на Cache под Windows (2016.2)?

https://github.com/daimor/CacheBlocksExplorer

Спасибо.
30 июн 17, 08:43    [20601502]     Ответить | Цитировать Сообщить модератору
 Re: Как установить Cache' Block Explorer?  [new]
Александр Коблов
Member

Откуда: Краснодар, Москва
Сообщений: 240
Алексей12377,

Я сам не пробовал, но на закладке Releases вроде файлы для установки есть
https://github.com/daimor/CacheBlocksExplorer/releases
30 июн 17, 10:38    [20601930]     Ответить | Цитировать Сообщить модератору
 Re: Как установить Cache' Block Explorer?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2583
Алексей12377,

Как верно заметил Александр, есть релизная версия, там есть два вида установщика.
  • Можно установить в любую область и настроить самостоятельно. - CacheBlocksExplorer.xml
  • Либо с настройкой новой области приложения и всего что нужно - StandaloneInstaller.cls.xml

    Если есть проблемы при установке и в работе, пиши, постараюсь исправить. У меня есть желание улучшить проект, в том числе в части поддержки разных версий Caché, но к сожалению пока не получается выделить время на это. Много параллельных проектов и так, плюс семья.
  • 30 июн 17, 13:03    [20602616]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    DAiMor,

    нет в планах функционала по определению ошибок в структуре и их исправлению?
    30 июн 17, 17:07    [20603808]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    DAiMor
    Member

    Откуда: Volzhsky -> Moscow -> CZ, Brno
    Сообщений: 2583
    Блок А.Н.
    DAiMor,

    нет в планах функционала по определению ошибок в структуре и их исправлению?
    А чем стандартная проверка целостности не устраивает?
    Автоматическое исправление ошибок наверно и можно реализовать. Но не просто, и нужна коллекция ошибок. Да и вероятность корректного исправления ошибок все таки не 100%.
    30 июн 17, 17:47    [20603967]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    DAiMor,

    автоматическое не стоит, наверное. А вот показать и дать исправить, думаю, можно. Но тут согласен, тяжело тестировать, нужны "эталонные" ошибки.
    Стандартная не нравится тем, что не нее нет документации, кроме относительно простых ошибок поправить я, например, не смогу. Большую часть параметров типа Blnextpntlen4 и подобных я вообще не понимаю. Видел ошибки в bigstring блоках, их REPAIR вообще не дает править (благо, потом исчезли сами собой). Был случай, когда при исправлении ошибки у блока добавился дочерний узел, при редактировании и сохранении я создал еще одну ошибку. Хотелось бы при сохранении предупреждение, что блок в базе изменился (надеюсь, там есть какие-то метки, когда он был последний раз записан?). И в целом REPAIR дико неудобный, при том, что количество дочерних узлов огромное, а INTEGRIT иногда дает очень туманные описания. Приходится многостраничную выдачу REPAIR копировать в блокнот и там искать текстом.
    Но я понимаю, в идеале необходимость в REPAIR должна возникать крайне редко, а писать и тестировать стороннюю утилиту для таких дел, как работа со структурой базы в некоторых случаях может быть вредно для кармы :-)
    30 июн 17, 20:34    [20604359]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Или вот, например, ситуация. INTEGRIT проверяет глобал несколько часов, я правлю ошибки, сохраняю и снова проверяю. Но мне так то не нужно проверять заново весь глобал, я же знаю, где произошла ошибка.
    30 июн 17, 21:45    [20604463]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Во, там же потыкать можно и посмотреть:

    Blincversion4 - block header incremental backup version
    Blpntlen4 - block header pointer length field
    Blnextpntlen4 - block header next pointer length
    Blnextpntvalue4 - block header Discriminator byte
    Blnextpntoff - block header indicator of stored next pointer

    Правда, непонятно все-таки, зачем это нормальному человеку нужно править?
    А вот где поправить, например, "Next Pointer Reference", я так и не увидел. Линк правится, а вот это как нужно само не заполняется
    30 июн 17, 22:08    [20604494]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Alexey Maslov
    Member

    Откуда: СПб
    Сообщений: 1532
    Блок А.Н.
    Но мне так то не нужно проверять заново весь глобал, я же знаю, где произошла ошибка.
    Частичные проверки (типа пройтись по указателям) позволяет делать REPAIR, а если нужна полная проверка, то всё равно будет не быстрее, чем Integrity.
    30 июн 17, 22:12    [20604502]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Alexey Maslov,

    а у REPAIR разве есть функция проверки? По-моему, она как топор, что скажешь, то и отрежет. Не вижу там опций по проверке данных.
    30 июн 17, 22:17    [20604513]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Alexey Maslov
    Member

    Откуда: СПб
    Сообщений: 1532
    Блок А.Н., можно пройтись по цепочке указателей сверху-вниз до текущего блока можно:

    Block # 6958             Type: 8 DATA
    Link Block: 6959 Offset: 7372
    Count of Nodes: 520 Collate: 37 Big String Nodes: 0
    Pointer Length:33 Next Pointer Length:42 Diff Byte:Hex 22
    Pointer Reference: ^Q(1,70,"#ABAAnKp","rlss")
    Next Pointer Reference: ^Q(1,70,"#ABAAnLH","rlswname>")
    Next pointer stored? Yes


    --more--q

    Block Repair Function (Current Block 6958): 9 Pointer Tree

    3 levels
    Directory block: 3 => 48 => 7027 => 6958

    Block Repair Function (Current Block 6958):

    О корректности правого указателя (Link Block) утилита также предупреждает. Т.о., локальные аномалии увидеть довольно легко, а какую ещё ограниченную проверку (кроме полной) можно предложить? Integrity, кстати, позволяет проверить и отдельный глобал.
    1 июл 17, 12:31    [20605088]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    DAiMor
    Member

    Откуда: Volzhsky -> Moscow -> CZ, Brno
    Сообщений: 2583
    Alexey Maslov
    Integrity, кстати, позволяет проверить и отдельный глобал.
    И не теолько отдельный глобал, а еще можно запустить с любого блока. Очень удобно когда база большая, и чтобы долго не ждать.
    1 июл 17, 14:13    [20605265]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Alexey Maslov,

    Да вы прикалываетесь. В блоке может быть штук 700 ссылок. Их просто проматывать и смотреть уже нереально (я в блокнот копирую, но это убожество) В каждом блоке есть правый указатель, но если бы только он. В каждом блоке есть "первый указатель", который должен совпадать с указателем в родительском блоке. Последний указатель блока должен быть меньше в сортировке, чем последний предыдущего блока. И это только то, что при моих ограниченных знаниях сразу пришло в голову, там целая система уравнений, что с чем должно совпадать. Чтобы проверить буквально одну кривую правую ссылку, нужно зайти и посмотреть несколько блоков, причем предыдущие данные уматывает вверх, да и текущие не очень то удобно смотреть. Приходится работать в нескольких REPAIR одновременно.
    1 июл 17, 14:46    [20605310]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    DAiMor
    а еще можно запустить с любого блока. Очень удобно когда база большая, и чтобы долго не ждать.
    Не видел такой опции, действительно, это было бы удобно.
    1 июл 17, 14:47    [20605311]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Alexey Maslov
    Integrity, кстати, позволяет проверить и отдельный глобал.

     Top Pointer Level:    # of blocks=1      8kb (17% full)
    Pointer Level: # of blocks=102 816kb (79% full)
    Bottom Pointer Level: # of blocks=54,132 422MB (79% full)
    Data Level: # of blocks=42,378,249 331,080MB (85% full)
    Big Strings: # of blocks=1,328 10MB (59% full) # = 1,283
    Total: # of blocks=42,433,812 331,514MB (85% full)
    Elapsed Time = 14083.7 seconds 17:21:08

    Не всегда помогает :-)
    1 июл 17, 14:53    [20605319]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    DAiMor
    Member

    Откуда: Volzhsky -> Moscow -> CZ, Brno
    Сообщений: 2583
    Блок А.Н.
    DAiMor
    а еще можно запустить с любого блока. Очень удобно когда база большая, и чтобы долго не ждать.
    Не видел такой опции, действительно, это было бы удобно.
    Ну это не то чтобы опция, просто исходники то открыты, и можно найти место для этого.
    1 июл 17, 15:57    [20605390]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Alexey Maslov
    Member

    Откуда: СПб
    Сообщений: 1532
    Блок А.Н.
    Да вы прикалываетесь. В блоке может быть штук 700 ссылок
    Не более, чем вы: едва ли кто-то возьмётся править несколько сотен ошибок :)

    Ошибки в 99% случаев затрагивают блоки данных, и закончив правку блока данных, я нередко смотрел Pointer Tree. Полной проверки, понятное дело, это не заменяет, но грубую ошибку заметить можно.
    1 июл 17, 23:26    [20606144]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Блок А.Н.
    Member

    Откуда: Новосибирск
    Сообщений: 3771
    Alexey Maslov,

    Эм. У меня pointer tree показывает всего лишь цепочку родительских блоков, а не все дерево.
    2 июл 17, 12:47    [20606706]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Alexey Maslov
    Member

    Откуда: СПб
    Сообщений: 1532
    Блок А.Н.,

    Верно, поэтому полезность сей опции - в основном контроль родительской цепочки после правки блока данных.

    Наверное, было бы интереснее, если бы она показывала ещё и две цепочки до соседних блоков, которые тоже обычно бывают затронуты правкой.

    По воспоминаниям, самые большие неприятности мне доставила REPAIR в Cache 2010.1 (?), когда она сама вдруг вылетела по ошибке. Хорошо, что базы были тогда не очень большие, так что относительно быстро перетащили БД в более свежую версию Cache, где REPAIR по крайней мере не вылетала. Дело давнее, подробностей уже не помню.
    3 июл 17, 11:50    [20608413]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    vcoshak
    Member

    Откуда:
    Сообщений: 27
    DAiMor,
    пытаюсь установить StandaloneInstaller.cls.xml. Создаётся Namespace BLOCKS с классами Blocks.Router и Blocks.WebSocket но выдаются ошибки компиляции:
    Blocks.Router.cls(DBList+23) #1011: Invalid name : 'dblist.$toJSONFormat()' : Offset:18 [zDBList+20^Blocks.Router.1]
    
    и
    Blocks.WebSocket.cls(Server+22) #1033: Expected literal : 'response={"event": event,' : Offset:43 [zServer+20^Blocks.WebSocket.1]
    

    Используется Cache for Windows (x86-64) 2017.1 (Build 792U).

    В чём может быть проблема?
    Спасибо.
    15 янв 18, 13:32    [21107509]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    DAiMor
    Member

    Откуда: Volzhsky -> Moscow -> CZ, Brno
    Сообщений: 2583
    vcoshak,

    Да, к сожалению пока не было времени вплотную занятся проектом. И он немного устарел. Данный релиз подходит только для версии 2016.1. И ни для каких других.
    Для новых версий я релиз пока не сделал, но код уже есть, правда не все корректно работает
    если знаком с докер, то сейчас подготовлено уже рабочая среда для тестирования
    нужна лицензия Cache под Linux, файл лицензии должен быть скопирован в переменную CACHE_KEY. Без лицензии, думаю что работать не сможет.
    используются порты 80, 57772, 1972
    если нужно порты поменять, то нужно объявить переменные
    CACHE_WEBPORT=57772
    CACHE_PORT=1972
    WEB_PORT=80
    все переменные можно объявить в системе, либо в папке проекта рядом с файлом docker-compose.yml в файле ".env"
    версию Cache тоже можно выбрать через переменную
    CACHE_VERSION=2017.2
    доступные версии: 2016.2, 2017.1, 2017.2, есть и ранние но только на этих версиях сможет сейчас работать
    клонировать последнюю версию из репозитория, перейти в папку проекта и запустить docker сервисы (бекенд и фронтенд), запуск займет некоторое время, требуется доступ к интернету, для загрузки всего необходимого

    git clone https://github.com/daimor/CacheBlocksExplorer.git
    cd CacheBlocksExplorer
    docker-compose up -d

    после этих команд, запустится Cache2017.2 и фронтенд отдельно
    должен быть доступен по адресу http://localhost/
    15 янв 18, 13:53    [21107653]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    vcoshak
    Member

    Откуда:
    Сообщений: 27
    DAiMor,
    спасибо, но с докер не знаком и лицензии Cache под Linux пока нет - попробую ваше предложение позже.

    Сейчас же мне нужно решить конкретную задачку (см. ниже) и я думал, что этот проект мне поможет.
    Не подскажете, так ли это?

    Задача: у заказчика быстро растёт глобаль ^CacheTemp<XYZ>, который используют более сотни рутин для сортировки.
    Нужно определить, какая рутина "забывает" почистить глобаль после использования.
    Была идея, что если обходом глобаля найти узлы, имеющие большой размер и/или растущие быстро, то по структуре узла можно найти рутину.
    Поможет ли мне в этом Cache Block explorer?

    Сначала попробовал ваш код Растет БД CACHETEMP, но он у меня навскидку не заработал.
    Есть ли другие более-менее готовые решения?
    15 янв 18, 14:45    [21107893]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    Alexey Maslov
    Member

    Откуда: СПб
    Сообщений: 1532
    vcoshak,

    [полу]готовое решение - функция $$AllocatedSize^%GSIZE(GlobalName). Она принимает и подглобалы, поэтому, используя $order(), можно пройти по первому уровню проблемного глобала, узнать размеры каждого подглобала первого уровня, таким образом, найдёте самый большой; он же обычно и самый быстрорастущий, так что изучать динамику роста, возможно, не придётся. Если первого уровня окажется недостаточно, углубляетесь на второй уровень.
    15 янв 18, 16:28    [21108386]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    DAiMor
    Member

    Откуда: Volzhsky -> Moscow -> CZ, Brno
    Сообщений: 2583
    vcoshak,

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

    Немного подправил тот код, выложил в GithubGist. Проверял на 2017.2
    15 янв 18, 16:38    [21108435]     Ответить | Цитировать Сообщить модератору
     Re: Как установить Cache' Block Explorer?  [new]
    vcoshak
    Member

    Откуда:
    Сообщений: 27
    DAiMor,
    Спасибо.
    16 янв 18, 15:11    [21111001]     Ответить | Цитировать Сообщить модератору
    Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить