| Line | Revision | Contents |
| 1 | 192 | Hi! |
| 2 | 183 | |
| 3 | 1 | * So why? |
| 4 | ||
| 5 | I've been wondering for a long time now about all of the changes post 4.1. |
|
| 6 | I believe there is a large market of users who never wanted them, and never |
|
| 7 | cared for them. I also wanted to question the foundations of what we built. |
|
| 8 | 201.1.1 | Do users want wrong data? How often is the query cache really valuable? If |
| 9 | 1 | everyone just has a root user with all privs, why carry the baggage of the |
| 10 | ACL code. Etc. |
|
| 11 | ||
| 12 | 192 | * What is the goal? |
| 13 | 1 | |
| 14 | A micro-kernel that we then extend to add what we need (all additions come |
|
| 15 | 202.1.2 | through interfaces that can be compiled/loaded in as needed). The target |
| 16 | for the project is web infrastructure backend and cloud components. |
|
| 17 | ||
| 18 | 202.1.3 | * Is this a product of Sun/MySQL? |
| 19 | 202.1.2 | |
| 20 | 202.1.3 | No, though several of the authors do work for Sun/MySQL. The development model is |
| 21 | 202.1.2 | one based around open collaboration. Drizzle's license is the GPL v2. |
| 22 | ||
| 23 | * So what are the differences between is and MySQL? |
|
| 24 | 1 | |
| 25 | 201.1.1 | No modes, views, triggers, prepared statements, stored procedures, query cache, |
| 26 | data conversion inserts, ACL. Fewer data types. Less engines, less code. |
|
| 27 | 202.1.3 | Assume the primary engine is transactional. |
| 28 | 1 | |
| 29 | * Why now? |
|
| 30 | ||
| 31 | Why not now :) |
|
| 32 | ||
| 33 | * "This is awesome, but I need you to add back..." |
|
| 34 | ||
| 35 | Forget it. Nothing is going back in at this time. As for the future? Maybe, |
|
| 36 | 192 | but at the moment this is not the target. If you want more features, go |
| 37 | 1 | use MySQL. |
| 38 | ||
| 39 | * What platforms? |
|
| 40 | ||
| 41 | I compile on OSX, Linux (Fedora), and Solaris Express. Windows is not |
|
| 42 | supported and will stay that way unless it gets a working posix layer + |
|
| 43 | autoconf system (aka becomes a platform that is reasonable to support). |
|
| 44 | ||
| 45 | 192 | Really, get a working GNU chain going on Windows and you can get Drizzle |
| 46 | working on it. |
|
| 47 | 1 | |
| 48 | 192 | Drizzle relies on a C99 compliant compiler. Please do not ask us to support |
| 49 | older hardware, compilers, or OS'es. |
|
| 50 | 1 | |
| 51 | * What is the future? |
|
| 52 | ||
| 53 | Less code, more modularity, and more active involvement. A few things that |
|
| 54 | still need to be done: |
|
| 55 | - Switch to stdint |
|
| 56 | - Walk through all of the replication code |
|
| 57 | - Re-implement information schema |
|
| 58 | - Modular logging system |
|
| 59 | 192 | - ... |
| 60 | 1 | |
| 61 | * "This is not a SQL compliant relational..." |
|
| 62 | ||
| 63 | Very true, and we do not aim to be that. |
|
| 64 | ||
| 65 | * What is left to be cut out? |
|
| 66 | ||
| 67 | 192 | Please ask on the mailing list or on IRC. |
| 68 | ||
| 69 | * Can I get involved? |
|
| 70 | ||
| 71 | 201.1.1 | Most certainly. There is plenty to do from refactoring code, design of interfaces, |
| 72 | documentation and blueprints, etc... The best way to get involved it to join the |
|
| 73 | mailing list at: |
|
| 74 | ||
| 75 | 192 | https://launchpad.net/~drizzle-discuss/ |
| 76 | ||
| 77 | If you wish to suggest a refactoring project or an interface please email |
|
| 78 | the mailing list and keep an open mind. Do not expect anyone will work on |
|
| 79 | your idea though, you may influence someone to do that, but more then likely |
|
| 80 | 201.1.1 | you will need to rollup your sleeves and write some code. For very simple |
| 81 | 192 | bits you are welcome to ask others on #drizzle on Freenode, but please be |
| 82 | aware that you may be asked to email the mailing list. |
|
| 83 | ||
| 84 | Showing up with a big block of code is probably the worst way of getting |
|
| 85 | your work accepted. This is unlikely to work. |
|
| 86 | ||
| 87 | Right now we use a simple captain system for commits. Anyone can send in a |
|
| 88 | proprosal for merge via launchpad but your changes may be flowed first |
|
| 89 | through someone who has been around long enough to understand code |
|
| 90 | requirements to review your code. This system is based entirely on trust, |
|
| 91 | and individuals who have shown that they can provide three good patches gain |
|
| 92 | credibility. Starting small is fine, patches that are just comments or are |
|
| 93 | 201.1.1 | even two or three line cleanups are welcome and encouraged. I would really |
| 94 | recommend that anyone who wants to work on something first start with something |
|
| 95 | of this size. Patches like these are valuable and teach you how to work with |
|
| 96 | 192 | the system. |
| 97 | ||
| 98 | The general rule is no new code in the core of the server, and any changes |
|
| 99 | to interfaces need to be code line neutral. AKA if you want to add an |
|
| 100 | interface you need to be able to remove at least the number of lines of code |
|
| 101 | you added. This is a rule of thumb, and does not apply to code cleanup. |
|
| 102 | ||
| 103 | It should be pointed out that we are more focused on code style, |
|
| 104 | performance, and over all maintenance then we are features. |
|
| 105 | ||
| 106 | * What is the coding style? |
|
| 107 | ||
| 108 | Please look here: |
|
| 109 | 201.1.1 | |
| 110 | 192 | https://blueprints.launchpad.net/drizzle/+spec/style-cleanup |
| 111 | ||
| 112 | If you have a question on this, please email the mailing list so that we can |
|
| 113 | 201.1.1 | clarify the document. And when you get the answer? Please update the code |
| 114 | 192 | style document :) |
| 115 | ||
| 116 | * Should I email the mailing list with patches? |
|
| 117 | ||
| 118 | Please god no, we live in the age of the Internet :) |
|
| 119 | ||
| 120 | Create an account on launchpad.net. Create your own tree and let one of us |
|
| 121 | pull from it. |
|
| 122 | ||
| 123 | * What is the target? |
|
| 124 | ||
| 125 | Deliver a microkernel that we can use to build a database that meets the |
|
| 126 | needs of a web/cloud infrastructure. To this end we are exploring http |
|
| 127 | interfaces, sharding enhancements, etc... do not expect an Oracle, MySQL, |
|
| 128 | 201.1.1 | Postgres, or DB2. |
| 129 | ||
| 130 | There is no GA date at the moment. |
|
| 131 | 192 | |
| 132 | We are focusing on multi-core architecture. This is not designed to run on a |
|
| 133 | wrist watch (hint, go use SQLite). We support both 32bit and 64bit but the |
|
| 134 | class of machine we are targetting is 64bit. We are making design decisions |
|
| 135 | which assume very large amounts of RAM will be made available to the DB. |
|
| 136 | ||
| 137 | * Can I run a website with this? |
|
| 138 | ||
| 139 | 201.1.1 | No. We are still making incompatible changes, and I certainly do not believe |
| 140 | 192 | the code is production quality. Right now we are defaulting many configure |
| 141 | operations to generate debugging code for us so our binaries are not |
|
| 142 | 201.1.1 | optimal. Therefore, do not go out and benchmark this and expect it to be one way or |
| 143 | 192 | the other. We are currently only doing benchmarks where it makes sense for |
| 144 | us to determine where bottlenecks are. |
|
| 145 | 1 | |
| 146 | * Why drizzle? |
|
| 147 | ||
| 148 | 192 | I am from Seattle. Drizzle is our normal form of "rain" but it is not "rain", |
| 149 | it is drizzle. This was a bit of a rainy day project that finally found a |
|
| 150 | spot in my schedule :) |
|
| 151 | 1 | |
| 152 | -Brian |
|
| 153 | Seattle, USA |
|
| 154 | 192 | Sun, Microsystems |
Loggerhead is a web-based interface for Bazaar branches