Features for the programmer hobbyist
If you like to check out how various problems were solved, or see how DBLX processes data and sets, you have the DBLX source code available in Java and C#.
DBLX has technologies and code classes that address some of these interesting problems and concepts:
- - SQL grammer parsing
- Client/server communication with a formatted message exchange
- Handling complex set operations like JOINs and Sub-selects
- Locking, transactions, and synchronization strategies
- Server-to-server data replication
- The design and use of API's like DBLXClient
- How to develop a JDBC driver
(Oddly, this is what generates the most downloads and feedback)
- Contribute to DBLX! Have an idea? Want to improve performance? Want to develop some tests? Want to learn how to work on an open-source application?
The Prime Directive, and making decisions using the LT Delegation Model.
Our Prime Directive is to make DBLX as fast and small as possible, while still being able to support multiple concurrent clients. Its tiny now and the performance is exceptional, but we have a long way to go before we are done.
We would be happy to answer any questions, explain some of the design and technology decisions we made, and even debate the Architecture vs. Performance conundrum of software development.
What we will not do is make changes to DBLX that fall outside our prime directive. DBLX has to be fast and small. Fast and Small code in most programming languages does not look as nice to the eyes as code created by a group of programmers over a long period of time in a private company.
For example, we get a lot of comments that the SQLParser is very tightly coupled and not easily resued for a purpose other than DBLX.
Well, no shit its tighly coupled! When you get into the concepts of how you will 'execute' a set of SQL queries you will have no choice but to make the outputs from the SQL parser be very application-specific. More importantly, to parse and validate the SQL statement as fast as possible you don't have the luxury of using some bloated, general purpose parser that is bent into understanding SQL keywords. You need to create a lightweight (memory) parser that will use the parts of the programming language which can cut-up and read strings as fast as possible.
Our reticence to making changes outside our Prime Directive is backed by the LT Delegation Model.
The LT Delegation Model is based on one of the best open-source project 'managers' on earth - Linus Torvalds. There are many stories around the internet where someone thought a feature should be changed or added to the Linux kernal that was not aligned with Linus's vision. In many of those cases Linus literally gave them The Finger and stated what was, and was not going to happen.
This is what we call the LT Designation Model. We will let you know what we want to change and not change in DBLX, and those that do not like it will get The Finger.
If you want to do something outside the Prime Directive with DBLX, you are going to have to fork the project and head out on your own.
Resistance Is Futile.