I'll pass along this answer on both u2-users and u2-community, but
please respond on community since this is not about U2, per se.
Thanks.  See below.  --dawn

On 4/17/07, Jerry <[EMAIL PROTECTED]> wrote:
Dawn,
One thing I don't think you mentioned is the file structure. Tell me if I'm
wrong. The file structure is not like U2 at all. Unlike U2, and all other
PICK environments, which have separate files for each table, Cache has one
file that contains all of you tables. The one big problem with this file
arrangement is that if you get a broken table your whole database is broken.
You can either scrap the whole thing for a backup, which means all of your
tables are old or you can attempt to fix the broken table which may or may
not work. The file that contains all of your tables is not dynamically
resized either. You have to keep a close eye on how much room you are taking
up in this file (MUMPS.DAT). Because, when you run out of room for data you
have to allocate more room to increase the size of your file, otherwise you
hit a wall and your apps stop working. Because of this file structure you
also have a problem with maximum file size due to operating system
constraints.

Below is what my sales engineer said when I asked him this question:

<quote>
There are a couple of assumptions about this premise. The fact that the
"multiple files" is some how more reliable has the major flaw that you
are reliant upon the Operating System for database integrity. This is
seen by the assertion that things DO break i.e. the very construct of
"broken table" as a common concept indicates this problem. We have
addressed this fundamental problem by decades of constant improvement to
the foot printing portion of our engine. With us "tables don't break".
And for the unbelieving among us, we have backups, AND we have the
ability to export any sub-set. When anything DOES break, you will ALWAYS
be at the mercy of the 'last back up'. We go to great lengths to make
the database integrity something that you CAN place peoples lives on
(and almost 80% of all clinical data in the US DOES just that!) Can
things become corrupt, certainly they can, just as the file structure at
the OS level can become corrupt. Storage hardware CAN fail. Multiple
files does not lessen this at all, and the pay back in both performance
and reliability that comes from putting the entire foot printing under
our control more than (in our opinion) out weighs the perceived 'risk'.
This is really just a mind set shift that needs to happen.
</quote>

He then makes a comment about whether one has more faith in the OS or
the DB in the MV world.  In the next info, the term "global" is what
we would call a file.

<quote>
For me, I have more faith in Cache then the OS'es we
run on (and btw, both Cache & OS faith is VERY HIGH). Plus with what we
call "Subscript Level Mapping" you CAN put separate globals (or subsets
of global values) into different databases (CACHE.DAT files) all
mapped to the same Namespace. So, in MV terms, Each Account CAN in fact
have multiple OS level footprints. We don't default to doing that, since
there is admin. to setup and manage the mappings, and we don't force the
assumption of WHICH globals or global sub scripted value ranges make
sense to have separated. So in practice, you have MORE flexibility than
the MV model of a "file" HAS to be in a single file. We default to
everything, but offer a finer granularity, should a data layout dictate
that it makes sense to break things out, therefore this is a non issue.

Our disk footprint IS allocated more space as needed dynamically, but we
do NOT reduce (dynamically) the footprint. Once we have the image on
disk, we only reduce that through an overt compact process (should it
ever be needed). If you DO fill up, then YES we will (to keep from
corrupting the footprint) halt. But monitoring how much space is being
used is just common sense for a DBA. As for the maximum disk file size,
YES each OS'es file structure does have an upper limit per file. But
since the Namespaces can point to multiple CACHE.DAT files (I haven't
seen them referred to as MUMPS.DAT files for decades)...the maximum
live data set
can be be HUGE!!! At 32TB per database and 16k of subscript level
mappings possible, the upper limit is 576,460,752,303,423,488 bytes of
live data (1/2 Exabyte)
</quote>

We have an OpenM system here which is the forerunner of Cache and that is
the experience I have had with it. Once we ran out of space in the file and
everything stopped working. We had to call and have the allocated space
increased just to get in and cleanup logs and statistics tables that were
growing. I have to constantly keep an eye on the file space to make sure we
don't hit the limit and remove older statistics when it looks like we are
running short. I have batch processes that prune the log files for anything
over two weeks old. One time we hit, what I think, was a bad spot on the
disk within the allocated space. This broke one of the tables. Luckily for
us the table that got broken was one that wasn't used often and when
Intersystems (or it may have been Ontario Systems, our VAR) dialed in to
fix
the file they were able to link to a backup we had to recover the data that
got damaged after they fixed the broken table. The only other alternative
would have been to bring back a backup which would mean we would have lost
statistics for the time period between.

<quote>
There are many automated admin. functions that now will do log purging
as the admin. sees fit. Again, if some admin. let's their system run
without understanding the limits that they are running in, then they
WILL have to pay the price...This has nothing to do with
Cache vs. any other persisting technologies. The admin. functions of an
MV system are clearly understood, where as the tools within Cache are
simply not known, therefore they are grounds for resistance. We pride
ourselves on minimal DBA time needed to admin. the system. We are
continually evaluating and enhancing ways to make the administration of
the system easier and more effective.
</quote>
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to