Firebird 2.x and 3.0: the forseeable future
Tuesday, November 14, 2006, 03:23 PM - Firebird Conference 2006
This will be a live-blog from the session by Dmitry Yemanov (so it will be long).
Development priorities:
- Quick bugfixing
- Guaranteed recovery
- More robust security
Dmitry adds that the engine simply should never crash or cause database corruptions (not even with power outages and so on). Whatever happens, your data should be safe. This always is a high priority with the Firebird development team.
Performance and scalability:
- Effective large database support
- Full SMP support
- Optimized caching and data access path
- Clustering
Besides being able to run queries on large databases, the engine itself needs to support multiple CPUs and multi-core CPUs. The Classic architecture supports multiple CPUs, but having a single architecture is better. When Vulcan will be merged with Firebird, this will result in Firebird 3.0 which will be SMP friendly in the SuperServer architecture.
Firebird doesn't do clustering "out of the box", but ideas are being thought out, expect improvements there in the future.
Flexible Administration:
- System monitoring and management
- Activity logging
- Powerful server utilities
Firebird 2.1 will have special monitoring tables that allow to check what the server is doing.
SQL Features:
- New language enhancements and functions
- Strict compliance with the SQL specification
- SQL interface to the administration tools
The developers are working towards full SQL standard compliance so that it's easier to use.
Firebird 2.0 review:
Firebird 2.0 removes a lot of limits that were there in previous Firebird versions as well as new SQL features and over 200 bugfixes. There's also 64bit platform support, some security enhancements, improved international language support and much more. In short: Firebird 2.0 is good for the project and should be good for its users.
Other code branches:
This is about other branches and peoples private builds that will be merged with the Firebird main code tree later on.
- Vulcan
- a unified architecturefor superserver/classic/embedded.
- fine-grained multi-threading with a shared cache
- customizeable authentication (database or server level)
- SQL-based user management
- flexible server configuration
Vulcan started out as a SMP project, but did a little more. The above is a quick list of the changes that Vulcan will bring into Firebird.
- Fyracle
- global temporary tables
- common table expressions and hierarchical queries
- external procedure and functions (Java and others)
Fyracle isn't really a branch, but it will features to Firebird as well. Features of Fyracle will be merged into Firebird 2.1 mostly (see my other post about Firebird 2.1).
- Other
- Trusted authentication in windows domains
- Database encryption
- Optimized network protocol
The Firebird network protocol is known as "chatty", lots of small packets going around which makes it slow when used across low bandwidth or high latency network. The newer protocol shows up to 50% less packages.
Firebird 2.1:
- Goals:
- new release stategy (shortened release cycle)
- merge the mainstream with experimental branches
The old roadmap (from last years conference) only listed Firebird 2.0 and 3.0, so this is a change. But given the difficulties with 3.0 and the number of possible new features, the developer team decided to do a 2.1 as well, in order to provide people with new features without having to wait for 2 years. There will also be more bugfix releases to provide more stability to the running servers as a whole.
Version 2.1 will also include "database triggers" (eg: "on connect" or "on commit"). The Win64 and Solaris64 bit ports should be released as well.
Dmitry confirmed what I thought about the monitoring tables, they are "database based", not server wide (so you cannot see, for example, what databases are in use). They do allow updates as well, so you can cancel a running statement or stop a transaction.
The beta release of v2.1 is expected in Q4 of 2006 and the final version is expected in Q2 2007. That's pretty soon!
Firebird 3.0:
- Tasks
- Effective multi-threaded server
- Compiled query caching
- Optimization for large databases
These tasks are almost done or certainly planned to be finished in v3 (if they aren't don't blame me ;).
- Features
- Clustering abilities
- External procedures and functions, SQL functions
- External data sources and cross-database queries
- Enhanced metadata security
These features are not cast in stone, they will depend on the time available, as well as sponsors chipping in some money so developers can be paid and devote more time to these features. There has been demand for all these features and they are considered important.
- Features (continued)
- new data access paths and optimizer improvements
- bi-directional index navigation
- customizable authentication
- optional activity logging
- optional database encryption
The first beta for 3.0 is scheduled to be available in Q2 2007 and a final version in Q4 2007. That could mean there will be another "live release" at the Firebird Conference in 2007. Dmitry does remind us that this schedule is a "gray area" because it's so far away.
Beyond Firebird 3:
These are just thoughts about things that the core developers are looking at.
- Performance
- table partitioning
- Advanced caching and optimization abilities
- WAL (write-ahead logging)
- more network protocol improvements
- Security
- PAM (pluggable authentication modules)
- optional network protocol
- Features
- better support of SQL:2003
- schemas and long identifiers
- user groups (aggregated privileges)
- PITR (point-in-time recovery)
- bulk loading abilities
- SQL debugging and tracing
- integrated replication
These are the things that the developers are looking into and their current ideas about the planning.
Exciting stuff, that's for sure.
--
Martijn




( 3 / 4000 )
The future of Firebird after 2.0
Tuesday, November 14, 2006, 11:30 AM - Firebird Conference 2006
One of the things you often hear, is that the Firebird 2.0 release took way too much time. I have to agree with that. Even though there's tons of things in it, having new versions more often would be good.
Luckily, the Firebird Admin Team (core developers, architects and so on) agree with this as well.
The new goal they're setting, is to release more often. This brings us to Firebird 2.1, which has a planned release date of about 6 months after 2.0 (don't pin me down on it though).
Vlad has a quick overview of new things already done for Firebird 2.1, Dmitry will add some more to this in his session on Tuesday (and I'll cover it as well).
Just to name a few things;
- REPLACE SQL statement
- MERGE SQL statement
- Common Table Expressions, including recursive ones
- Ability to use domain types in Procedure Parameter and tracking these dependencies
- Global temporary tables
And given that Roman already has Java Stored Procedures working in his private builds, we might see this soon as well. Roman mentioned Firebird 3.0 as being a good candidate for this.
Roman did a session on this, in which he prepared a demo of Stored Procedures using Java and integrating the Lucene Full Text Search Engine with Firebird. Lucene is very capable and allows for complex full text searches, an excellent achievement by Roman (and the Lucene project, of course). The integration is so easy, perhaps it might even be a part of the main distribution? Who knows...
--
Martijn
Firebird has its problems
Tuesday, November 14, 2006, 11:17 AM - Firebird Conference 2006
I really like the Firebird 2.0 release. I've checked out the Release Candidates, the Release Notes (a huge document!!), but the session by Ivan made me aware of certain issues I didn't know about yet.
Besides explaining how to get faster COUNT performance (Ivan: don't count), Ivan explained issues with the numerical datatypes in Firebird.
For those of you who have no idea, make sure to get a copy of Ivans presentation after the conference, it holds valuable info about anyone developing for/with Firebird. Some of these issues will most probably be addressed and fixed in the next release.
For example, did you know that Firebird can have a "-0" value? If you use ORDER BY, -0 comes before 0, so that's ok :) ... A bug though, is that if the ORDER BY uses an index or a WHERE clause uses an index, -0 comes even before -5!! And when not using an index, a 0=-0 will work, but with an index, it will not.
Now, you might say, why use -0 at all? Well, the thing is, it could be the result of a calculation like [some variable] * -1. If the variable = 0, you'll get -0 as the result. Havoc! :-)
I'm sure the developers will take a look at these things though.
Anyway, very interesting session Ivan, thanks!
--
Martijn
Conference Pictures
Tuesday, November 14, 2006, 11:05 AM - Firebird Conference 2006
Conference Pictures are appearing on the web, here's a collection of pictures taken by Thomas Steinmaurer: http://www.iblogmanager.com/download/misc/fbcon2006/fbcon2006.html
And here are more by Stefan Heymann: http://www.destructor.de/firebird/conf2006/photos/index.htm
Update, more pictures to be found:
Carlos Cantu:
http://www.flickr.com/photos/warmbooter/sets/72157594375835234/
Erick Sasse:
http://www.flickr.com/photos/esasse/sets/72157594375855695/
Milan Babuskov:
http://www.flamerobin.org/prague2006/
Sunday evening
Tuesday, November 14, 2006, 11:04 AM - Firebird Conference 2006
Although the conference really starts at Monday, almost everyone has arrived and attended the opening session. After the opening session, people went for a bite or those who already had dinner went, as usual on the Firebird Conference, to the bar.
Don't think that going to the bar is only a way to spend time though, it's really a place for discussions, new ideas and meeting new people, customers and friends.
Here's an image of Lucas, Frank and Thomas who have been around since the first conference (most probably NOT discussing anything technical).
And here's an image of Arno, who most probably IS discussing technical things with Dmitry Yemanov.
And here's another guy we all should know, Paul Reeves, responsible for building the Firebird release packages.

Back Next






