Posts tagged 'articles'
VistaDB 3.3 Code Coverage
The code coverage in VistaDB continues to get better. The graph below shows the percentage of coverage by namespace for the past ten months or so. I generated this in Excel, I wish there was a code coverage tool that could generate this type of report. I am very pleased with our progress at getting automated tests for all of the code. We have just hit 65% coverage for the entire engine. Our goal is to reach 80% by the 1 year anniversary of 3.0 (April). This is pretty amazing considering there were zero tests when 3.0 was released. The current NUnit suites consists of over 525 public tests. Internally we are going to start breaking up the NUnit tests to be categorized by the test type. It takes too long to run all of them after every build on your workstation, the server should be doing that nightly anyway. What I really want is the quick test that each programmer can run after any code change by category. If you were working on the DDA Code just run the DDA tests quickly while working. Then run the full workstation test suite at the end of the day. Here are some interesting metrics about the VistaDB Engine.
- Files: 109
- Classes: 808
- Functions: 6,952
- Total Sequence Points: 39,976
Continue reading "VistaDB 3.3 Code Coverage"
Set any 2008 Resolutions or goals?
I am not one big on New Year Resolutions. Never have been. I have seen many people set them and motivate themselves for a few weeks, maybe a month, and then go right back to old habits. It takes more than a New Year to break habits, it takes discipline and patience. Right now is Epiphany and I think...
Continue reading "Set any 2008 Resolutions or goals?"
Looking ahead to 2008, and back at 2007
Looking ahead to 2008
Happy New Year! Wow, what a year 2007 turned out to be for me both personally and professionally. Last January Anthony and I were still talking about the company and its future. I spent some time yesterday reflecting on the year, and I have to say it was pretty amazing. You can’t look to the future without examining your past, so that I what I did first. I broke them down by quarter in my own mind, so that is how I am going to write it up as well.
Q1 2007 – Talks with VistaDB were just starting. 3.0 was entering final design phase for the release, and some pretty major changes were made at the last minute. SQL Server datatypes were not even introduced until the very end! We had zero NUnit tests, no code coverage analysis, and the build was in bad shape. 3 Builds in the first quarter, and each had its share of regressions and changes. There was no formal bug tracking in place, and bugs were never added to any sort of regression suite to ensure they didn’t return.
Q2 2007 – I officially took over VistaDB April 1 (which is my birthday). I was involved prior to that, but this was the official switch over date. On almost the same day I signed the papers to acquire VistaDB I got the news that my Grandmother had brain cancer and was not expected to live much longer. Talk about highs and lows. NUnit tests were added (we had around 40 at the time). Regression testing started in earnest with my taking over the builds and formalizing the process. FogBugz was purchased and setup to stabilize the bug reporting and tracking. No more email box tracking of open issues! This was a great thing for everyone. We produced 11 builds this quarter, some were good, and some were bad. Regression testing was still rough and we slipped a few times. Overall though the engine was starting to stabilize, and features were becoming more fully tested. And my Grandmother passed away. It was a very emotional time for my entire family. I know I was short with people during this time without anyone understanding why, I apologize. There was a LOT going on and I felt a tremendous amount of stress during this time.
Q3 2007 – New features started being added for the first time. New documentation and tests were being written on a daily basis. And we started testing for SQL Server compliance in a lot of the parser syntax (this had never been done before). We also formally decided to delay the server edition to stabilize the engine and get TSQL Stored Procs in before we went to the server version. We laid out a development plan for the rest of the year, and we actually did a pretty good job of following it. We produced 9 builds during this quarter, but the most important aspect of it was that major new development took place. 3.2 was released and the engine really started to stabilize with the additional testing and regression tests we put in place. I really feel that the momentum swung in our favor around this time. New features were being added without breaking existing functions, and we continued our quest to improve the SQL parser and compliance.
Q4 2007 – It became clear to us that the existing website was long in the tooth and needed to be overhauled. What was not clear was how and when we were going to do it (see below for the conclusion of this saga). We also attended a tradeshow (DevLink) and got to meet a lot of interesting users, but more importantly we got to speak with people who use VistaDB on what they really need. 3.3 features were decided upon, and work piled on for us to complete before the end of the year. We produced 9 builds this quarter as well. I thought we hit a good mix of development builds versus stable builds. We exposed new features rapidly to get feedback from users. The feedback was fantastic, even if it did make us add more to the list of things to accomplish for 3.3. We really pushed the schedule for 3.3 and added a ton of new features from user requests. 3.3 is going to be a fantastic release. VistaDB 3.3 was released on the very last day of the year. Overall I think we were a little over aggressive in adding features, but they really did all need to be there. There are just some things you can’t add half way, and we added a lot. TSQL Procs and User Defined Functions (UDFs) turned out better than I had hoped at the beginning of the quarter. The guys did a fantastic job of adding new features without breaking the build, and without regression of the engine. Major new features were added without stepping on each other toes in the code. Documentation has continued to come along slowly, and the NUnit tests improve with each new build.
Continue reading "Looking ahead to 2008, and back at 2007"
To Collect or not to Collect
One of the first things it seems most people do when they get the code to VistaDB is remove the GC.Collect() call we have in the MinimizeMemory code for the Tree class. This class specifically is used to hold portions of the database, indexes, etc in RAM. Periodically it is combed to attempt and minimize...
Continue reading "To Collect or not to Collect"
VistaDB Temp Table Support
Temp table support, and table as a variable As was sort of hinted at on the forums today, we will be adding temp table support to VistaDB 3.3. I got a number of emails from people asking if it was true (and could they test it), so I wanted to write up a brief entry about it for everyone. VistaDB 3.3...
Continue reading "VistaDB Temp Table Support"
SQL Server 2008 (Katmai) Information
I watched a terrific webcast yesterday afternoon from Microsoft on SQL Server 2008 (Katmai) programmability. It didn’t go in depth for all changes in 2k8, but it did go over the highlights I suppose you could say. It was very informational to me. New data types There are four new datatypes in SQL Server 2008, although they did not deprecate any of the existing types. They are all date and time centric, one is now timezone aware, and all of them have much greater ranges and precision than were available before. It is a little ironic because VistaDB 2.x had a date and a time as two separate types, and now SQL Server does as well.
Date – Range 1/1/1 – 9999/12/31. A much higher range for dates is allowed.
Time(n) – Time only with N digits of precision after the seconds.
DateTimeOffset(n) – Date, time, and timezone information. All are stored in UTC with an offset to the TZ setting. This is supposed to become a new system type as well.
DateTime2(n) – No timezone support, but large date range and precision increases over the standard DateTime.
NOTE: All of (n) maxes out at 7 digits. This gives you 100 nanoseconds of precision and is actually the highest resolution Windows supports anyway.
Continue reading "SQL Server 2008 (Katmai) Information"
3.3 API Changes and more - Nullable is not null?
All VistaDBType objects are really nullable types. Why? Because they come from your database. If your database is set to allow nulls, any of them could be set to a null. This is not the same as the dot net runtimes definition of a nullable type though. In dot net you can set an object to be nullable...
Continue reading "3.3 API Changes and more - Nullable is not null?"
New way to distribute samples – Crazy idea?
Ok, I am preparing the samples for 3.3 and I have not been happy with the current way the samples are installed or work on Windows Vista. The biggest problem is that if you are a user level account (which you should be) you will get errors due to the fact that all of the data is installed in a directory...
Continue reading "New way to distribute samples – Crazy idea?"
VistaDB business case - Scalability
Scalability Let's face it; you don't always know where your customers will come from in the future. What if you built a system for large companies and now suddenly you see a huge market for the small or home office? If you require a large server for deployment the cost of the dedicated server and server...
Continue reading "VistaDB business case - Scalability"
VistaDB business case - Source Code
Source Availability Need the code? We offer it! There are many reasons for needing the VistaDB source code. VistaDB is written in Dot Net (C#), so you don’t have to worry about learning an entire new language to support your database engine in the future. No escrow required Many companies face regulatory...
Continue reading "VistaDB business case - Source Code"
VistaDB Business Case - Compatibility
Compatibility Compatibility is more than a buzzword. It impacts your company’s bottom line, and programmer productivity. Does anyone doubt that SQL Server is the most heavily used database for Visual Studio programmers? Why is that? TSQL / SQL Server Where does Microsoft build their solutions? They build...
Continue reading "VistaDB Business Case - Compatibility"
The VistaDB business case
The tradeshow blues Perhaps it is because of the tradeshow we just went to, or maybe because of the emails I have been getting lately, but my mind is on the business case for VistaDB. At a normal tradeshow you have non-techies and super techies. You normally get a high level person come around and see...
Continue reading "The VistaDB business case"
The GC does not solve all memory leaks
Using statements and memory leaks to databases This question was recently asked in the forum and I see it so often in code samples sent in by users that I thought I would take a little time to discuss using statements and how they help solve memory leaks with database code. I remember when I first started...
Continue reading "The GC does not solve all memory leaks"
Performance numbers and VistaDB
Ok, the question has been asked to me enough times again recently that I am going to write this up as a blog and give the long answer as to why we don’t allow performance numbers to be posted (and why I don’t even think they are valid). The EULA for VistaDB has always had a statement about non-publication...
Continue reading "Performance numbers and VistaDB"
SQL query optimization and testing
SQL query optimization At its simplest level the JOIN operator in SQL combines records from two or more tables in a relational database and returns the results in a new set. This is one of those algebraic set theory problems that people find easy to grasp, but difficult to fully understand all the implications...
Continue reading "SQL query optimization and testing"
VistaDB 3 Architecture
I get emails and PM’s quite a bit asking me about our architecture and if we are going to redesign for speed / memory / whatever. Let me just publicly make a few statements about the VistaDB 3 engine. The architecture is amazingly clean. It is very well designed and built for the future. Adding in LINQ...
Continue reading "VistaDB 3 Architecture"
Full Text Search
Full Text Search This week’s build 25 includes for the first time Full Text Search capabilities. I wanted to explain the how and why behind Full Text Search, and some of the limitations as well. This initial release should be considered just that, an initial release. We will be continuing to add...
Continue reading "Full Text Search"
Eating your own dog food
I first heard this phrase when I read the book Showstopper! The book is about the Dave Cutler team pushing to get the first version of Windows NT out the door. In it Dave referred to 'eating your own dog food' by making all the developers run Windows NT as their main development system. His reasoning...
Continue reading "Eating your own dog food"
Speed up your string handling by 50%
As was recently discussed on the forums string handling in Dot Net is a tricky subject. I decided to write a quick test to demonstrate why you should not be using the += operator to concatenate strings, and use the StringBuilder object instead. Dot Net is different There are many things in Dot Net that...
Continue reading "Speed up your string handling by 50%"
