Сегодня наличие многоядерных, многопроцессорных и многоузловых систем является уже нормой при обработке большого объёма данных.
Как же можно задействовать все эти вычислительные мощности? Ответ очевиден — распараллелив задачу.
Но тут же встаёт другой вопрос: а как синхронизировать сами подзадачи?
Читать полностью »
Метка «cache» - 3
Синхронизация процессов при распараллеливании задачи средствами Caché Event API
2013-02-05 в 6:01, admin, рубрики: cache, dbms cache, intersystems cache, nosql, Блог компании InterSystems, параллельное программирование, субд Caché, метки: cache, dbms cache, InterSystems cache, субд CachéРазработка в Caché Studio с использованием TortoiseGit
2013-01-22 в 6:53, admin, рубрики: cache, Git, Блог компании InterSystems, разработка, метки: cache, GitCaché-Git — это модуль контроля версий для Caché Studio, который обеспечивает вызов диалоговых окон TortoiseGit непосредственно из Studio и полуавтоматическую синхронизацию рутин между Caché и локальным репозиторием.
В каждой области выбираются пакеты, проекты, классы, рутины, dfi-файлы, csp-страницы, csp-приложения которые будут остлеживаться Caché-Git.
Всякий раз при сохранении отслеживаемой программы, она будет экспортироваться на диск в репозиторий. При открытии программа будет загружаться из репозитория, если версия, находящаяся в нём свежее.
Caché-Git работает только на компьютерах, на которых установлен и сервер и клиент Caché. Caché-Git не будет работать при соединении с удалённым сервером.
Где взять
Репозиторий с Caché-Git находится по адресу github.com/intersystems-ru/cache-tort-git. Там же есть wiki, в которой описаны шаги по установке и использованию
Читать полностью »
Serenji: IDE для M-технологий
2013-01-11 в 15:25, admin, рубрики: cache, IDE, intersystems cache, MUMPS, nosql, метки: cache, IDE, InterSystems cache, MUMPS Злые языки вечно утверждают, что среда Caché Studio, увы, не дотягивает до уровня современных IDE.
В кач-ве альтернативной среды разработки мне порекомендовали SerenjiЧитать полностью »
Zen Reports и %XML.Writer для генерации отчётов Excel в Caché
2012-12-26 в 15:14, admin, рубрики: cache, Excel, intersystems cache, reports, XML, zen, Блог компании InterSystems, отчеты, метки: cache, Excel, InterSystems cache, reports, XML, zen, отчеты Как известно MS Excel последних версий поддерживает описание структуры документа в формате xml. Это обстоятельство позволяет создавать отчеты в Excel с помощью генерации xml-файлов. В СУБД Caché существует несколько способов создания xml. В этой статье будут рассмотрены два, возможно наиболее удобных, способа эффективной программной генерации отчетов в MS Excel: с помощью Zen Reports и с использованием класса %XML.Writer.
Читать полностью »
Многопоточная реализация алгоритма кеширования CART
2012-12-06 в 8:33, admin, рубрики: c++, cache, CART, Песочница, Программирование, метки: c++, cache, CARTНекоторое время назад передо мной встала задача кеширования запросов в большую базу данных на диске в высоконагруженном многопоточном приложении (С++). Само приложение предназначалось для развертывания в облаке и диск очевидно стал бы самым узким местом. База при этом представляла из себя огромный граф, по которому одновременно ползало множество потоков. Таким образом кеш ко всему еще и должен был быть многопоточным.
Идею использования внешних приложений, таких как memcached, я отбросил сразу же – это внесло бы в каждый переход по ребру графа неизбежный дополнительный лаг. Встал вопрос об имплементации внутри приложения.
Читать полностью »
SQL-доступ к NoSQL-данным: реализация SQL-процедуры в Caché с динамическим определением возвращаемых метаданных
2012-11-27 в 15:57, admin, рубрики: cache, cos, intersystems cache, jdbc, nosql, odbc, sql, Блог компании InterSystems, метки: cache, cos, InterSystems cache, jdbc, nosql, odbc, sql Как известно, Caché можно использовать как реляционную СУБД, в том числе через JDBC/ODBC драйверы, с возможностью исполнения произвольных SQL-запросов и вызова SQL-процедур.
Известно также, что все данные в Caché хранятся в многомерных разреженных массивах — глобалах. Это позволяет в случае недостаточной производительности отдельно взятой SQL-процедуры не использовать стандартный CachéSQL-движок, а переписать ее код исполнения на языке серверной бизнес-логики Caché ObjectScript (COS), в котором можно реализовать оптимальный алгоритм выполнения SQL-процедуры, часто используя более оптимальные NoSQL-структуры данных (глобалы).
Однако в стандартной библиотеке классов Caché существует одно ограничение: для SQL-процедур, в которых отбор выполняется самописным COS-кодом, необходимо определять набор возвращаемых полей на этапе компиляции — т.е. нет возможности динамически задать метаданные для SQL-процедуры, работающей с NoSQL структурами.
О том, как снять это ограничение, рассказано под катом.
Читать полностью »
Реализация фоновой загрузки файлов на сервер Cache
2012-11-16 в 10:38, admin, рубрики: cache, csp, file upload, intersystems, intersystems cache, javascript, метки: cache, csp, file upload, InterSystems, InterSystems cache, javascript У разработчиков веб-приложений на Caché и Ensemble часто возникает задача «file upload» — загрузки файлов с браузера. Недавно на форуме по Caché на SQL.ru снова возникло несколько вопросов о том, как сделать фоновую загрузку файлов. Решил описать как это можно сделать с использованием технологий CSP и ZEN.
Читать полностью »
Обзор систем кеширования в onPHP
2012-11-12 в 12:56, admin, рубрики: cache, php, plus1.wapstart.ru, wapstart, Блог компании WapStart, кеш, метки: cache, PHP, plus1.wapstart.ru, wapstart, кеш Добрый день!
В этой статье мы расскажем о том, как мы работаем с кешем в plus1.wapstart.ru, какие проблемы у нас возникали и как мы решали некоторые частные случаи.
Для начала о терминологии.
Под «кешем» в этой статье я буду понимать какое-то быстрое хранилище, которое может использоваться, в том числе, и для кеширования. При этом хранилище должно обладать стандартизированным интерфейсом.
Сервер/хранилище — это какое-нибудь приложение, которое может хранить данные и давать к ним доступ по интерфейсу, который описан ниже. Например, этим приложением может быть memcached.
Мы используем фреймворк onPHP. В нем есть абстрактный класс CachePeer, от которого должны наследоваться все реализации кешей. Интерфейс любой реализации сводится к следующим методам.
abstract public function get($key);
abstract public function delete($key);
abstract public function increment($key, $value);
abstract public function decrement($key, $value);
abstract protected function store(
$action, $key, $value, $expires = Cache::EXPIRES_MEDIUM
);
abstract public function append($key, $data);
В нашем мире существуют следующие реализации CachePeer (кликабельно)
Читать полностью »
InterSystems набирает стажеров
2012-11-06 в 22:57, admin, рубрики: cache, internship, intersystems cache, Блог компании InterSystems, стажировка, учебный процесс, Учебный процесс в IT, метки: cache, internship, InterSystems cache, стажировка, учебный процесс, Учебный процесс в it В компании InterSystems открывается новый цикл набора стажеров.
Мы рассматриваем кандидатов на две площадки – InterSystems Russia в Москве и InterSystems HQ в Кембридже, Массачусетс, США.
Ниже условия прохождения стажировки и подробности.
Читать полностью »
Каша быстрого приготовления — делаем CRUD в Caché с помощью jqGrid
2012-10-09 в 7:19, admin, рубрики: cache, crud, intersystems cache, javacript, jqgrid, jquery, jquery plugins, Блог компании InterSystems, Веб-разработка, объектные субд, метки: cache, crud, InterSystems cache, javacript, jqgrid, jquery plugins, объектные субд Речь пойдет о создании веб-приложения на Intersystems Caché с использованием javascript плагина для отображения табличных данных — jqGrid. Плагин часто упоминается на Хабре, поэтому основное внимание будет уделено особенностям его использования со стороны Caché
Преимущества от использования jqGrid:
- разгрузка сервера от клиентской логики
- возможность использования различных форматов обмена данными (xml, json)
- различные способы отображения данных (таблица, дерево, вложенные таблицы)
- готовый функционал по изменению данных – редактирование в строках, редактирование в формах, проверка данных
- большое количество настроек, опций и событий с документацией, примерами и исходным кодом
- богатый пользовательский функционал — сортировка, группировка, фильтрация, поиск, итоги, настройка отображения столбцов (видимость, порядок, размеры), поддержка множества тем визуального оформления от jqueryui
Состав блюда: хранимый класс с данными, класс-страница, класс-сервис данных. Необходимые библиотеки и стили подключаются из сетей доставки данных (CDN) и с сайтов разработчиков, поэтому, для работы примера в локальной сети, их необходимо будет скачать из этих источников.
Предупреждение: пример максимально упрощен, рассматривается только малая часть возможностей плагина, но кода все равно много, хотя он и тщательно задокументирован.
Читать полностью »