Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Upgrading Plastic SCM to Firebird Server

Tuesday, January 11, 2011 Pablo Santos 5 Comments

When you install Plastic SCM on Window it will work with an embedded Firebird database. Firebird is very good in terms of performance for small teams, but sometimes you will need to upgrade to something faster, specially if you detect some operations are slow. Let's see how to do a very easy move: set up a Firebird server instead of an embedded one.

Motivation


If you see your update operation is too slow... then more often than not you're experiencing a slow backend. Sometimes it can also be due to the disk IO performance so do a quick test: go to your workspace and type:

cm update . --timer --stats --noparallel

And check the "SolveSelector" line. If it's bigger than, let's say, 3-5 seconds and your server is on the LAN... you've a perf issue!

Installing Firebird


At the time of writing this we just recommend to go for Firebird 2.1.3, so go to this page and download it: http://www.firebirdsql.org/index.php?op=files&id=engine_213. Installing it is just a matter of a few clicks.

Setting up Plastic to use a Firebird server


Really easy: stop the plastic service and then create a db.conf file on the server's directory location with the following contents:

(Remember: the entire "connection string" in a single line!!!!)

<DbConfig>
<ProviderName>firebird</ProviderName>
<ConnectionString>ServerType=0;User=SYSDBA;
Password=masterkey;Database={0};Pooling=true;
connection lifetime=60;Charset=UNICODE_FSS;
</ConnectionString>
<DatabasePath></DatabasePath>

</DbConfig>


Restart the Plastic server and you're done!
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

5 comments:

  1. We use SQL Server 2008 and have a large workspace. I executed the "cm update" and I get "SolveSelector 6942 ms". What can I do next?

    ReplyDelete
  2. Hi André,

    Can you consistently repeat the test? If so, if it always gives you about 6 secs, let's try to solve some questions:

    1- I guess your connection with the server is a LAN, so it must be pretty fast (otherwise let's focus on this)

    2- How many controlled items (files & directories) do you have in a workspace? It will give me an idea of how big it is.

    3- Launch an update and send me the latest server log by email so I can check where the time is being spent (only the log since you run the update on the client).


    pablo

    ReplyDelete
  3. I restarted the Plastic Service (for clean log file etc) and did the update twice:
    SolveSelector 6552 ms
    SolveSelector 6021

    Number of files:
    21.075 Files, 1.156 Folders

    I have emailed the log files and details.

    ReplyDelete
  4. did you tested with firebird 2.5 ?

    I guess it will speed up in some way

    ReplyDelete
  5. @Mariuz: we didn't officially test with 2.5, although it is something to do ASAP as you point... Thanks.

    ReplyDelete