Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
я - СержЗанимает один вопрос: если Cache действительно крутая вещь, то почему многие даже не слыхали такого названия? Мы тоже до того как начали работать с этой базой ничего о ней не слышали. Это я к тому, что вопрос не на пустом месте. Надеюсь, несколько лет участия в этой тусовке позволят мне ошибиться не более чем на 60%. Предположительно это (речь о "не слышали") из-за того, что Intersystems является частной конторой, не присутствующей на рынке акций. И, в отличие от других производителей СУБД, которые кроме того что выпускают преимущественно реляционки, также являются преимущественно акционерными компаниями (так получилось), не имеет стимула действовать на рынке по тем же правилам. Что такое акции - это по амерским понятиям уровень капитализации и акционерные конторы заинтересованы в росте курса акций. При этом на их рынке это понятие сильно деформировано - курс акций является в существенной степени результатом спекулятивных настроений, которые заинтересован поддерживать производитель. В переводе на русский - другие производители заинтересованы выпускать мелочи и светить названия своих продуктов везде где можно, чтобы о них знали биржевики. А биржевики - это не совсем технари, и если удается донести пиар даже до них, то до технарей и до менеджмента пониже уровнем это тем более доходит. На этот фактор наслаивается еще один. Который из них важнее - видимо, не смогу оценить, да это наверно и не нужно. Второй фактор в том, что М системы выпускались в кругу весьма консервативной тусовки, и в отличие скажем от sql стандарт на М гораздо жестче. В этой тусовке (это, уточню, имеет примерно 30-летнюю историю) были приняты весьма высокие стандарты на надежность, гибкость модификации и расширения и на быстродействие. Да много на что. И внутри тусовки считалось, что распространение информации "из уст в уста" должно способствовать как-бы укреплению доверия к системе. Как-бы один другому сообщает "по знакомству", "по хорошей рекомендации" и так далее. Кроме того, софтверные фирмы, работающие с М системами, имели априори технические преимущества перед другими. Какой им был смысл растить конкурентов. Впоследствии это сильно мешало продвижению систем, построенных на базе М, когда производители систем на базе М стали применять другие бизнес-модели продвижения. Именно по причине того, что дирекция клиента про, скажем, Оракл по крайней мере слышала, а про М вообще ничего. Под давлением варов Интерсистемс и в том числе российское представительство стало шевелиться в плане по крайней мере рекламы. Более менее в общем доступе М системы стали светиться примерно в 98-99 годах. Как один из факторов пиара было добавление единой архитектуры данных - прямой доступ, sql и объеты работают с одним и тем же и все натягивается на традиционные всем понятные глобалы. Для выхода на рынок с другой бизнес-моделью продвижения им просто понадобилась более сильная поддержка новомодных причиндалов в лице недавно появившихся sql, объектов, xml, веба, вебсервисов и прочей хренотени. Даже до жавы добрались. Кстати - в четверке была даже поддержка такого новомодия как corba. Через несколько билдов ее просто убрали. Несколько лет поддерживали - потом убрали. Мы их спрашиваем - а почему? Те отвечают - а зачем, если за несколько лет поддержки этой фичи она не была применена ни кем, нигде, ни разу. Новомодия приходят и уходят, впрочем это не про саму corba, а про востребованность этой штуки на сервере, где и без того есть гораздо более мощные средства. Вот последние два года я и интерсистемс подумываем а не выпустить ли по плагинчику чтобы юзать на сервере жаву. Для этого есть все возможности, программисту работы - от силы неделя. Но побудительных причин ни у них ни у меня для этого до сих пор не нашлось: все для чего в принципе может быть использована жава на сервере, и так делается на М с гораздо большей стабильностью и предсказуемостью. Впрочем, отвлекся от бизнес-модели - если у кого есть причины использовать жаву на сервере где есть М - милости прошу, расскажите зачем. Хотя тусовка мампсистов весьма стабильна, как раз в фирмах, работающих с М, ситуация с известностью прямо противоположна. Кстати, перечитал и нашел в вопросе два вопроса: 1) почему не слышали и 2) почему не слышали cache. По второму - они название поменяли. Cache - это линия таких продуктов как DTM, ISM, NextGEN, OpenM. Следующее слово в этом ряду - Cache'. Дело просто в том, что с наращиванием функционала их менеджеры решали заодно и название поменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 12:00 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, господа, а "М" - это что такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 16:46 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
M - сокращение от аббравиатуры MUMPS (Massachusetts General Hospital Utility Multi Programming System). Этот массачусетский госпиталь, собственно, место, где зародилась первая М-система в 1960-х годах. Позднее был принят ANSI стандарт на M-системы. Сейчас под M имеются ввиду все системы, реализовавшие этот самый стандарт ANSI M. В это подмножество входят такие известные в свое время системы как MSM от Micronetics, DTM от Digital, ДИАМС - советский вариант M, ISM от Intersystems, последний вариант которой есть нечто иное как Cache. M также обзывают все скриптовые языки в М-системах, которые по сути диалекты стандарта ANSI. В частности COS - это M, плюс объектный синтаксис, макросы, Embedded SQL и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 22:47 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
ну я ...поддержка новомодных причиндалов в лице недавно появившихся sql, объектов, xml, веба, вебсервисов и прочей хренотени... Ну, это ты сильно загнул! Между прочим, SQL появился не недавно, а достаточно давно. Уже такая система как DB2 на мэйнфреймах IBM в 60-е годы использовала его в своих целях. Действительно, повсеместное увлечение SQL началось действительно недавно, годах в 80-90, но все равно до выхода Cache на российский рынок (98-99 г., как ты пишешь). Объекты также имеют давнюю историю в лице некоторых языков программирования среди которых можно назвать С++ и др. С++ (я не имею в виду Визуальные навороты от M$, Borland и др) начал развиваться, по крайней мере, с начала 80-х годов. Так что это тоже не совсем "новомодное" увлечение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 06:42 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Частично сам факт выпуска продукта с полной сменой названия и внесением фич, ставших распространенными в 80-90-е годы и был вызван маркетинговыми причинами. А к новомодным я махом отнес те фичи и их применение, которые вызваны именно маркетинговыми причинами, а не техническими. То есть как они выглядят с точки зрения традиционных мампсистов. И цель их внесения как раз в привлечении к каше тех, кто знаком с sql, vb и другими технологиями. Самих же мампсистов довольно трудно убеждать в преимуществах скажем sql. Это выглядит как лишний и весьма неповоротливый элемент, который нужно изучать, сопровождать и развивать код, у которого свои тараканы и прочее. А привлечь уже подготовленных sqlщиков согласитесь проще, если им можно сказать "тут примерно то же самое". Кроме того, почему бы и не иметь возможность интеграции с клиентскими программами, которые умеют только с таблицами через ODBC, например. Были и такие задачи. Ничего космического - описываем что в наших данных считать таблицами, как лежат данные и вперед. Традиционно системы, сделанные для М, живут долго. Гораздо дольше операционных систем и поколений железа. И когда мампсистам предлагают выбор технологии, то они несколько раз подумают, что будет дальше с кодом который не на М. Еще раз повторю, что стандарт М довольно жесткий, и система на нем гораздо легче переносима чем написанная на sql. При этом возможности языка весьма богаты, и не возникает таких затыков как скажем при переносе системы с t-sql на pl/sql. Тут дело не в самом sql, просто под руку подвернулся. Не нужно думать, что я продаю лицензии каше и занимаюсь ее рекламой. С техницской точки зрения мне все равно что на чем писать. Вопрос был задан - видимо человек интересуется. Что ж, сам захотел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 12:57 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
>>Cache' - быть или не быть... Конечно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2004, 11:11 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Мимопроходящему! Вы батенька, мелкий провокатор. Таких прыщей полно по форумам. To slen! Чем подозревать, попробуйте сами. Не понравиться не пользуйтесь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 09:02 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Не хочется повторяться. Я уже высказался. Сначала спрашивал, потом экспериментировал. Можно посмотреть (в верхнем регистре наиболее информативные постинги): Здесь1, здесь2, здесь3, здесь4, здесь5, здесь6 , здесь7, здесь8, ЗДЕСЬ9, здесь10, ЗДЕСЬ11, здесь11, ЗДЕСЬ12, здесь13, здесь14, здесь15, ЗДЕСЬ16 (два слова о быстродействии), здесь17, повтор кашистом Maxim UM теста на быстродействие, здесь18, здесь19, здесь20, здесь21, ЗДЕСЬ22, ЗДЕСЬ23, здесь23, здесь24, здесь25, здесь26, здесь26, здесь27, http://]здесь28 (важно - отличие репликации от распределенных БД), ЗДЕСЬ29 (имхо, наиболее объективная оценка быстродействия), здесь30 Другой тред: Здесь31, здесь32, здесь33, здесь34, здесь35, здесь36, ЗДЕСЬ36 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 12:49 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Прошу извинить за техническую ошбику со ссылкой: здесь28 (важно - отличие репликации от распределенных БД) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2004, 12:53 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
GaryaНе хочется повторяться. Я уже высказался. Сначала спрашивал, потом экспериментировал. Можно посмотреть (в верхнем регистре наиболее информативные постинги):Просмотрел постинги так и не нашел сводной оценки. Вердикт какой-нибудь будет? Или отсутствие репликации "как у других" ставит крест? Или слишком высокий должен быть уровень у разработчика приложения под Cache? Или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 22:06 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
2 Лев Кассиль. Сводные оценки каждый выносит для себя сам в зависимости от соответствия продукта решаемым им задачам. Мне необходимо решать задачи автоматизации холдинга при размещении серверов на нескольких площадках, часть из которых находится в разных районах Москвы, часть в разных регионах России, а часть вообще за рубежом. При этом с некоторыми площадками имеется связь только по диалап-каналам (очень дорого привлекать провайдера с выделенным каналом в поселок городского типа, от которого ближайший город находится в нескольких десятках километров). Я пытался решать вполне определенную задачу и в какой-то момент у меня возникло ощущение, что с помощью Cache решать ее наиболее оптимально. Просто потому, что в этой задаче существенный акцент делается на иерархическую структуру данных и на механизмы наследования. Но я ошибся. Потому что кроме иерархии мне ОБЯЗАТЕЛЬНО необходимо реализовать удобные механизмы репликации с выносом разборок конфликтов репликации на уровень бизнес-логики и с устранением конфликтов репликации как природного явления на физическом уровне. Добиться этого можно только если в качестве идентификаторов записей используются GUID (а не целочисленные идентификаторы). В Cache можно сделать "перегрузку идентификаторов", но, во-первых, это приведет к невозможности использования многих полезных вещей, реализованных в Cache. Во-вторых, один из главных плюсов - высокое быстродействие Cache на операциях записи будет полностью аннулировано кошмарными тормозами, потому что на внутреннем "системном" уровне идентификатор записи все равно останется целочисленным, и вместо быстродействующих операций прямого доступа к записям придется использовать поисковые операции по перегруженному GUID-идентификатору. В-третьих, я сильно сомневаюсь, что при сохранении на системном уровне целочисленных идентификаторов записей можно устранить конфликты репликации на цровне сервера. Например, если одновременно модифицуируется на разных площадках одна и та же запись, а потом производится синхронизация. Я ломал голову, как в такой ситуации можно избежать физического конфликта репликации, но ничего не смог придумать. Честно говоря, для решения тех задач, которые стоят передо мной, полностью меня устраивающих инструментариев просто нет. Приходится выбирать из совсем неподходящих и плохо подходящих. Сейчас я рассматриваю два варианта - либо Oracle, либо Yukon. Cache из списка претендентов исключен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 09:52 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Garya... Я пытался решать вполне определенную задачу и в какой-то момент у меня возникло ощущение, что с помощью Cache решать ее наиболее оптимально. Просто потому, что в этой задаче существенный акцент делается на иерархическую структуру данных и на механизмы наследования. Но я ошибся. Потому что кроме иерархии мне ОБЯЗАТЕЛЬНО необходимо реализовать удобные механизмы репликации с выносом разборок конфликтов репликации на уровень бизнес-логики и с устранением конфликтов репликации как природного явления на физическом уровне. Добиться этого можно только если в качестве идентификаторов записей используются GUID (а не целочисленные идентификаторы). ... мы используем репликации очень активно -десятки М-серверов на заводе повязаны между собой - и стабильно более 10 лет все работает но без обьектов - на голом М-коде в MSM/CACHE Конечно бывают проблемы но они решаемы без напряга. Думаю М-технология ще не вмерла.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 13:46 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
2 MX-ALEX. Можно чуточку подробнее? Связь между серверами постояная? Что происходит, если какое-либо соединение на время внезапно прервется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 14:06 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Имеется ли какой-то центр репликации и как оно организован? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 14:07 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
GaryaДобиться этого можно только если в качестве идентификаторов записей используются GUID (а не целочисленные идентификаторы). Можно небольшой ликбез в другой ветке или ссылку на ветку, где это обсуждалось? Я знаю лишь, что GUID позволяет охватить очень большое чисто экземпляров исключая возможность совпадения GUID для двух разных сущностей. А почему целочисленныыми идентификаторами нельзя ограничиться, напр. 64-битными? Тоже довольно огромное число экземпляров можно получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 23:18 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Лев Кассиль GaryaДобиться этого можно только если в качестве идентификаторов записей используются GUID (а не целочисленные идентификаторы). Можно небольшой ликбез в другой ветке или ссылку на ветку, где это обсуждалось? Я знаю лишь, что GUID позволяет охватить очень большое чисто экземпляров исключая возможность совпадения GUID для двух разных сущностей. А почему целочисленныыми идентификаторами нельзя ограничиться, напр. 64-битными? Тоже довольно огромное число экземпляров можно получить.Да, можно получить большое число экземпляров. Но, во-первых, в Cache родной целочисленный идентификатор объектов НЕ 64-хбитный, так что и для этого случая его переопределения не избежать. Во-вторых, во избежание генерации одинаковых идентификаторов на разных площадках необходимо самим придумывать правила, по которым эти идентификаторы генерятся так, чтобы нигде и никаким образом не смогли сгенериться одинаковые идентификаторы. Например, это можно сделать разбиением на диапазоны, в которых на каждой площадке работает автоприращение целочисленного идентификатора. Но, во-первых, зачем изобретать велосипед, когда уже существует программно-аппаратный способ генерации глобально-уникальных идентификаторов, реализованный в API для GUID - с учетом уникальных MAC-адресов сетевых карт? Во-вторых, я пытаюсь найти ОБЩЕЕ решение для задач подобного класса, а не только для моего частного случая. Общность решения поможет избежать проблем в будущем, если окажется, что репликация, предполагаемая в каком-то месте однонаправленной вдруг должна превратиться в двунаправленную, а при распределении диапазонов генерации ключей с автоприращением это не было учтено. Одним словом, GUID - это удобное универсальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 23:45 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Garya2 MX-ALEX. Можно чуточку подробнее? Связь между серверами постояная? Что происходит, если какое-либо соединение на время внезапно прервется? По расписанию или по событиям - где как Если надо постоянно то любой комп подключается к любому по TCP в роли клиента (клиент - толстый в клеточку - на EXCEL) на некоторое время. Сейчас всего более 60 М-серверов в локальной заводской сети Сеть - 350 компов администратор-приходящий-по-совместительству - иногда рвется-глючит - поэтому нет выделеного сервера. Для обеспечения живучести такой размазанный вариант как кажется предпочтительнее - всегда хоть что-то где-то работает В основном используем MSM (60 штук) хотя есть и CACHE (2 штуки) --------------- Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 08:59 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
2 MX-ALEX. Очень трудно с наскока разобраться во всех ваших нюансах, но у меня такое ощущение (на интуитивном уровне), что проблем у вас много. Одна из причин - отсутствие центра управления информационным обменом (всё взаимодействует со всем). Это очень неудачная схема по множеству причин. Но прежде всего давайте определимся, о чем идет речь - о репликации или о распределенных базах данных. Это принципиально разные вещи. Cache предоставляет достаточно удобные средства работы с распределенными базами данных, но не предоставляет средств репликации (хотя другие СУБД предоставляют и то, и другое). В распределенных базах данных информация физически хранится на многих серверах, но только в одном экземпляре. Сервера просто обращаются в случае необходимости за этой информацией к другому серверу. Это - НЕ репликация. Репликация подразумевает копирование инофрмации на несколько разных серверов и приведение их содержимого к синхронному состоянию. Локальные рабочие станции, взаимодействующие ТОЛЬКО с собственным сервером для получения ЛЮБОЙ информации получают в этом случае большую конфету в виде высокой скорости работы, потому что они работают со своим сервером в 100-мгабитной, а может быть и гигабитной сети. Моментально работает выборка и запись. А механизмы репликации, используя специальный координирующий центр, отслеживающий изменения на всех серверах, задействованных в репликации, передают нужную информацию в нужном направлении постоянно или эпизодически для того, чтобы синхронизировать содержимое серверов между собой. Небольшой экскурс в механизмы репликации MS SQL Server, чтобы можно было представить, о чем идет речь. для управления репликацией имеет сервер, специально заточенный для подобных задач - Distributor. Именно он управляет репликацией. Его можно сравнить с почтовым отделением. Простые сервера, участвующие в репликации, представляются либо в роли Publish-серверов, которые сообщают на "почту" (то есть, серверу-дистрибутору) однократно - структуру публикуемой информации, схему и выбранный метод репликации, а после оформления публикации многократно - сами реплицируемые данные. Сервера-подписчики взаимодействуют тоже с Distributor-ом (почтовым отделением), если хотят получить доступ к опубликованной другими серверами информации. Получается, что через дистрибутор можно работать, организовывая совершенно разные схемы взаимодействия: 1. Множество серверов, публикующих информацию, могут передать ее одному серверу-подписчику (очень распространенная схема для холдиноговых структур с центральной компанией, получающей сводные отчеты от дочерних компаний). 2. Множество серверов-подписчиков может получать информацию от одного сервера публикации (когда необходимо в едином центре ввести информацию и распространить ее на множество узлов). 3. Множество серверов публикации может взаимодействовать со множеством серверов-подписчиков (смешанная схема). Это только при наличии одного сервера-дистрибутора. А их может быть множество. Можно задействовать схемы вида "снежинка", а не только "звезда". MS SQL Server предоставляет на выбор четыре вида репликации: 1. Snapshot - репликация (репликация снимком) 2. Репликация транзакций 3. Репликация непосредственно обновляемых подписчиков 4. Репликация слиянием Одни методы требуют наличия постоянной связи (3 - обязательно, 2 - желательно), другие не требуют (1 и 4). Метод 3 - специфический, ориентирован на распределенные транзакции, охватывающие множество серверов - гарантирует выполнение операций записи одновременно на множестве серверов, либо невыполнение подобных операций ни на одном в случае возникновения где-либо проблем, использует механизмы двуступенчатой фиксации транзакций (на межсерверном уровне и на уровне каждого отдельного сервера). Одни методы позволяют накладывать горизонтальные и вертикальные фильтры на источники информации (1, 2, 3), другие не позволяют (4). Одни методы позволяют передавать информацию только в одну сторону - от сервера публикации к серверу-подписчику (1 и 2), другие позволяют осуществлять двусторонний обмен информацией (3 и 4). Одни используются для однократного копирования больших объемов информации (1), другие позволяют вполседствии передавать только порции изменившейся информациии (2, 3 и 4). И, наконец, многие методы репликации могут настраивать участвующие в репликации сервера на Push- и Pull- репликацию. То есть, является ли данный сервер инициатором информационного обмена между серверами, либо он просто ждет когда информация сама на него свалится. Distributor совершенно точно знает, что, откуда и когда от какого сервера какому серверу уже было передано, что еще не было передано, хотя уже от сервера публикации десять раз поступили новые порции информации. Он не станет без надобности передавать одну и ту же информацию на тот сервер, на который уже ее передал. И сервер, целый месяц простоявший без связи, может быть уверен, что после возобновления связи сможет с помощью Distributor-а синхронизироваться с остальной сотней серверов, хотя они все это время синхронизировались между собой мелкими порциями информации и "ушли далеко вперед". Вот это и есть - та самая РЕПЛИКАЦИЯ , которая в Cache отсутствует, несмотря на всю ее " пост реляционность". Теперь два слова по поводу того, как с решением подобных задач все-таки можно выкрутиться в Cache. Я долго ломал над этим голову, и кое-что придумал. 1. Простейшая односторонняя репликация (аналог Snapshot-репликации) между парой серверов может быть сделана с помощью утилиты от MS SQL Server, именуемой MS DTS (проверено на практике). Используя интерфейс ODBC, можно с помощью мастера настроить передачу информации с одного сервера Cache на другой. Можно даже создать JOB, который будет выполнять подобную синхронизацию по заданному расписанию. 2. Однако, при взаимодеействии большого количества серверов (более двух) и передаче информации малыми порциями обязательно необходим некий координирующий центр репликации. Его роль в усеченном виде может играть MS BizTalk Server, взаимодействующий со множеством Cache-серверов, например, через ODBC. Возможно, придется самостоятельно создать служебные специальные поля в реплицируемых таблицах для маркировки реплицированных записей, борьбы с конфликтами репликации и т.п. Но все-таки с BizTalk Server эта задача упрощается. BizTalk может произвести также некоторые преобразования данных при передаче их с одного сервера на другой. Может самостоятельно выявить конфликты репликации и разрулить их по нужному алгоритму (алгоритм реализуется руками). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 10:31 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Garya1. Множество серверов, публикующих информацию, могут передать ее одному серверу-подписчику 2. Множество серверов-подписчиков может получать информацию от одного сервера публикации 3. Множество серверов публикации может взаимодействовать со множеством серверов-подписчиков (смешанная схема). ... И сервер, целый месяц простоявший без связи, может быть уверен, что после возобновления связи сможет .. синхронизироваться с остальной сотней серверов, хотя они все это время синхронизировались между собой мелкими порциями информации и "ушли далеко вперед". Вот это и есть - та самая РЕПЛИКАЦИЯ , которая в Cache отсутствует, несмотря на всю ее " пост реляционность". Именно так наша самопальная система и работает.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:33 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
MX-ALEXИменно так наша самопальная система и работает..Ну так может расскажете подробнее, как именно? Особенно меня интересует, что происходит, если на одном сервере изменили содержиоме записи одним способом, например, присвоили некоторому полю "Значение1", а на другом сервере присвоили этому же самому полю этой же самой записи "Значение2", а потом появилась связь между серверами, которой только что не было и запустилась репликация. Как разруливается этот конфликт репликации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:44 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Garya MX-ALEXИменно так наша самопальная система и работает..Ну так может расскажете подробнее, как именно? Особенно меня интересует, что происходит, если на одном сервере изменили содержиоме записи одним способом, например, присвоили некоторому полю "Значение1", а на другом сервере присвоили этому же самому полю этой же самой записи "Значение2", а потом появилась связь между серверами, которой только что не было и запустилась репликация. Как разруливается этот конфликт репликации? 1. Приоритет подписчика(получателя) всегда ниже по умолчанию , но может быть прописан для каждой пары источник-получатель как надо если используются встречные потоки 2. Выдается сообщение в протокол конфликтов сеанса репликации 3. Конфликная пара сохраняется для разборок 4. Передаются по сети только первоисточники - то есть от тех точек где запись впервые появилась. 5. Каждая запись не просто принимается, а проходит контроль - контроль прописывается ручками в м-коде. (кстати запись может быть модифицирована в момент приемки и породить несколько записей в другие глобалы) Вообще я хочу сказать что рапликации на MSM/CACHE в принципе возможны и наша многолетняя работа это доказывает. Для заводов самое то что надо. Как с торговлей - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 14:48 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
А можно еще подробнее? :) Какие механизмы задействованы для организации репликации? Что сделано руками, что использовано из стандартного функционала? Несколько слов о принципах организации обмена. Что откуда и куда передается? Однонаправленная репликация или двунаправленная? Имеется ли единцы координирующий центр управления репликацией? Если да, то в двух словах что он из себя представляет? Если у вас хотя бы в одном месте реализована двусторонняя репликация, то как вы выкручивыетесь с целочисленными идентификаторами записей с автоприращением? Или у вас одна и та же запись на разных серверах может иметь разные идентификаторы? Или вы каким-то образом изменили стандартные механизмы присвоения новых идентификаторов записей? Насчет конфликтов репликации - это УЖЕ СДЕЛАНО, или вы описали, как МОЖНО СДЕЛАТЬ? Если уже сделано, то прерывается ли у вас репликация в случае конфликта? Если не прерывается, то передаются все записи кроме конфликтых? Как вы при этом избегаете возможные нарушения логической целостности (например, передались записи detail, ссылающиеся на master, а при попытке передачи записи master возник конфликт репликации). Используете ли вы вспомогательные поля для маркировки источников репликации? Если нет, то каким образом вы определяете источники при репликации? Если понадобится новый сервер подключить к вашей схеме репликации, то какими в двух словах будут ваши действия? Каким образом вы сделаете стартовую базу данных при подготовке ее к репликации? При репликации у вас передаются только изменившиеся записи? Если да, то как это организовано? Если до сеанса репликации три раза изменить одну и ту же запись, то передается только ее последнее состояние? Каким образом, в двух словах, реплицируется удаление записи? Если вы в самой записи храните первоисточник, то как вы задаете служебную информацию для удаленных записей - ведь если запись уже удалена, то вместе со служебными полями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 15:23 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
GaryaА можно еще подробнее? :) Какие механизмы задействованы для организации репликации? --текстовые файлы Маша кладет в дупло а Дубровский забирает Что сделано руками, что использовано из стандартного функционала? --Все руками Несколько слов о принципах организации обмена. Что откуда и куда передается? --Назначаются основное и запасное дупло кто-то кладет другие читают Однонаправленная репликация или двунаправленная? --Двунаправленых мало Имеется ли единый координирующий центр управления репликацией? --Нет Если да, то в двух словах что он из себя представляет? Если у вас хотя бы в одном месте реализована двусторонняя репликация, то как вы выкручивыетесь с целочисленными идентификаторами записей с автоприращением? --Тяжко -стараемся разграничить области ответственности - пока получается (завод -четкая иерархия отделов и распределение обязанностей) Или у вас одна и та же запись на разных серверах может иметь разные идентификаторы? --не должна Или вы каким-то образом изменили стандартные механизмы присвоения новых идентификаторов записей? --наши нестандартные механизмы работают так чтобы индекс глобала получался одинаковым независимо где ввод Насчет конфликтов репликации - это УЖЕ СДЕЛАНО, или вы описали, как МОЖНО СДЕЛАТЬ? --протоколы и приоритетность сделано Если уже сделано, то прерывается ли у вас репликация в случае конфликта? Если не прерывается, то передаются все записи кроме конфликтых? --передается все если не тяжкий конфликт - решает программа обработчик Как вы при этом избегаете возможные нарушения логической целостности (например, передались записи detail, ссылающиеся на master, а при попытке передачи записи master возник конфликт репликации). --Двукратная обработка - первый раз примеряет - второй- вводит окончательно Используете ли вы вспомогательные поля для маркировки источников репликации? --нет - источник отражен в имени файла - есть инструкция по присвоению имен Если нет, то каким образом вы определяете источники при репликации? Если понадобится новый сервер подключить к вашей схеме репликации, то какими в двух словах будут ваши действия? --задать строки в таблице подключений - на отсылку и на получение Каким образом вы сделаете стартовую базу данных при подготовке ее к репликации? --?? При репликации у вас передаются только изменившиеся записи? Если да, то как это организовано? --Да - есть спец глобаль - протокол всех set/kill по хронологии выбирается на заданный интервал активных дней с конца Если до сеанса репликации три раза изменить одну и ту же запись, то передается только ее последнее состояние? --Все измения по хронологии в пределах заданного интервала активных дней назад от сегодня Каким образом, в двух словах, реплицируется удаление записи? --Есть признак 1-set 0-kill Если вы в самой записи храните первоисточник, то как вы задаете служебную информацию для удаленных записей - ведь если запись уже удалена, то вместе со служебными полями? --В протоколе set/kill ничего не удаляется - затем через год - только старые удаляются все примитивно - но работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 16:54 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
2 MX-ALEX. Спасибо за Ваши ответы и за Ваше терпение. :) авторКаким образом вы сделаете стартовую базу данных при подготовке ее к репликации? --??У вас содержимое на всех серверах совершенно одинаковое или имеются расхождения? Если совершенно одинаковое, то как вы различаете места формирования информации? Если различается, то как вы в случае необходимости вводите в действие новый сервер? Ведь на сервер необходимо изначально выложить базу данных с какой-то бизнес-логикой, хотя бы с бизнес-логикой той же репликации. У вас есть какая-то шаблонная база данных, в которой уже реализованы основные алгоритмы работы, определены базовые структуры данных и т.п., и в снимаете копию с нее копию? Или делаете базу данных с нуля? Если снимаете копию с шаблонной базы данных, то каким образом вы это делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 17:22 |
|
||
|
Cache' - быть или не быть...
|
|||
|---|---|---|---|
|
#18+
Garya2 MX-ALEX. Спасибо за Ваши ответы и за Ваше терпение. :) авторКаким образом вы сделаете стартовую базу данных при подготовке ее к репликации? --??У вас содержимое на всех серверах совершенно одинаковое или имеются расхождения? --разное кроме глобалей входящих в список репликации программы одинаковые (м-ядро 99%) плюс специфичные для данной точки (1%) Если совершенно одинаковое, то как вы различаете места формирования информации? Если различается, то как вы в случае необходимости вводите в действие новый сервер? Ведь на сервер необходимо изначально выложить базу данных с какой-то бизнес-логикой, хотя бы с бизнес-логикой той же репликации. У вас есть какая-то шаблонная база данных, в которой уже реализованы основные алгоритмы работы, определены базовые структуры данных и т.п., и в снимаете копию с нее копию? Или делаете базу данных с нуля? Если снимаете копию с шаблонной базы данных, то каким образом вы это делаете? --бросаем туда м-ядро (1 мб ) и закачиваем копии глобалей какие нужны там, делаем для него специальные настроики ввода.вывода, делаем настройку в таблице репликаций (в глобале) кроме того если надо ставим там толстого-excel-клиента для прямого доступа к другим м-серверам и к своему по TCP или через интернет новый м-сервер добавлятся в среднем раз в месяц - не чаще Пожалуйста :) --------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 09:02 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=32801000&tid=1559554]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 447ms |

| 0 / 0 |
