( ESNUG 401 Item 7 ) --------------------------------------------- [10/17/02]

Subject: ( DAC 02 #2 ) Synchronicity Was So Bad We Wrote Our Own RCS Tools

>  "We use Synchronicity for configuration management and issue tracking.
>   It does a solid job of both.  For configuration management, I still
>   wonder if you couldn't piece together equally useful tools using free
>   open source packages, e.g., CVS."
>
>       - John Busco of Brocade Communications


From: Shiv Sikand <sikand@matrixsemi.com>

Hi, John,

I have used DesignSync DFII from Synchronicity and found it to be one of the
worst tools I have ever used in my life.  In fact, it was so bad I wrote my
own interface while at SGI and subsequently open sourced it.  I wrote to you
about this a while ago.  Here is the URL:

       http://public.perforce.com/public/perforce/cdsp4/index.html

A little history lesson:

Cadence 4.3 was based on the Edge database.  The Edge database was not very
amenable to software configuration management because it used a proprietary
'catalog' file which contained the list of cells in the library.  This
catalog was also the source of many corruption issues in the DB because it
was a single access bottleneck in a multi-user environment.  However, this
DB contained a checkin/checkout mechanism and a versioning system.  This
worked well at the cell level, but the configuration feature which allowed
you to manage versions across a set of objects was flawed and never worked
correctly.

In Cadence 4.4, they shifted away from the catalog idea and moved to a 
different architecture that was more amenable to UNIX style manipulation 
like cp and mv. This database was almost like normal files, except for 
one feature: co-managed file sets. i.e. it takes multiple files to 
represent a single 'cellview' in Cadence.  In conjunction with this new 
scheme, they also announed Team Design Manager, TDM, their configuration 
management software.  Unfortunately, this was an overly complex and buggy
piece of software and after a while Cadence decided that they were going 
to outsource this capability and end-of-life TDM.  They released an
abstraction layer called GDM (or Generic Design Manager) which was meant 
to be a general API for managing all Cadence database objects.  However, 
it too is fundamentally flawed since it has no error handling mechanism 
nor a communication channel to allow for error recovery and messaging. 
It was not intended for customer use, but rather for third party 
integrations.  The Spectrum Design Services folks came up with an RCS 
integration which they called CRCS.  This was the time that Synchronicity 
first showed up to the party.  They built a GDM integration for their 
DesignSync tool and later a stripped down 'free' version called Version 
Sync.

The Synchronicity revision engine is based upon RCE, Walter Tichy's (the 
author of RCS) follow up.  This had a particular claim to fame: the Byte
Differencing Engine or BDE that they claimed allowed incremental storage 
of binary files.  Apart from the storage format, RCE is still just really
only RCS.  Synchronicity wrapped it around a http protocol as a means to 
enable easy access thru the enterprise intra and extra nets.  However, 
their extremely poor implementation of this system meant an extremely 
slow, unresponsive and very buggy system that needed expensive UNIX 
servers to run.  Coupled with the flaws in GDM, this was a nightmare.  I 
used it at three separate companies and was involved with replacing it 
at all three. However, Sync had a very good marketing department and 
sold it to Intel, Lucent, Philips and a bunch of other players.  These 
companies were big Cadence houses and bought it because no-one else was 
providing a solution at the time.  Clio entered the market much later.

The horrors of DesignSync forced me to consider writing my own.  I 
convinced SGI/MIPS management (then headed by Lavi Lev, who is now 
ironically the VP at Cadence responsible for IC Tools) to allow me to do 
so.  We purchased a GDM license from Cadence who were extremely helpful 
and sympathetic to our cause at all time.  After the work was finished 
and proved to be a success, SGI and Cadence agreed to allow this 
interface for Cadence, using the Perforce SCM system to be Open Sourced. 
Perforce Software is now the copyright holder and the interface is 
available under the BSD license.  I avoided the GDM pitfalls by using the
Skill trigger model to manage the data, providing a NULL operation GDM 
server.  The GDM piece is Cadence proprietary and is available as a 
binary.  However, since it performs a NULL operation, it never changes. 
In addition, through the use of Perforce's atomic transactions I was 
able to avoid the use of extra marker files to handle the co-managed set 
problem. This results in an ultra-high performance integration with a 
very rich feature set, possibly the richest and fastest available today.

My whole point is this: Synchronicity is so bad that I spent hundreds and
hundreds of hours coming up with an alternative and I make the interface
available for free. In addition, I have recently completed a paper on
using Perforce for Hardware Design.  This is available at

           http://www.perforce.com/perforce/hardware.html

Anyway, enough of my rambling.  I've probably gone on way too much about 
my own stuff but I thought that this would be a good way to prove that I 
suffered and then actually did something about it and made it available 
for no cost rather than cry at EDA vendors.

    - Shiv Sikand
      Matrix Semiconductor


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)