~drizzle-trunk/drizzle/development

192 by Brian Aker
Updating FAQ
1
Hi!
183 by Brian Aker
Partial FAQ (questions to answert). Removed two dead variables. Need chai...
2
1 by brian
clean slate
3
* 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.
201.1.1 by Jay Pipes
cleanup of FAQ file
8
Do users want wrong data? How often is the query cache really valuable? If
1 by brian
clean slate
9
everyone just has a root user with all privs, why carry the baggage of the
10
ACL code. Etc.
11
192 by Brian Aker
Updating FAQ
12
* What is the goal?
1 by brian
clean slate
13
14
A micro-kernel that we then extend to add what we need (all additions come
202.1.2 by brian
Updated FAQ.
15
through interfaces that can be compiled/loaded in as needed).  The target
16
for the project is web infrastructure backend and cloud components. 
17
202.1.3 by brian
Merge/fix in FAQ.
18
* Is this a product of Sun/MySQL?
202.1.2 by brian
Updated FAQ.
19
202.1.3 by brian
Merge/fix in FAQ.
20
No, though several of the authors do work for Sun/MySQL. The development model is
202.1.2 by brian
Updated FAQ.
21
one based around open collaboration.  Drizzle's license is the GPL v2.
22
23
* So what are the differences between is and MySQL?
1 by brian
clean slate
24
201.1.1 by Jay Pipes
cleanup of FAQ file
25
No modes, views, triggers, prepared statements, stored procedures, query cache, 
26
data conversion inserts, ACL. Fewer data types.  Less engines, less code. 
202.1.3 by brian
Merge/fix in FAQ.
27
Assume the primary engine is transactional.
1 by brian
clean slate
28
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,
192 by Brian Aker
Updating FAQ
36
but at the moment this is not the target. If you want more features, go
1 by brian
clean slate
37
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
192 by Brian Aker
Updating FAQ
45
Really, get a working GNU chain going on Windows and you can get Drizzle
46
working on it.
1 by brian
clean slate
47
192 by Brian Aker
Updating FAQ
48
Drizzle relies on a C99 compliant compiler. Please do not ask us to support
49
older hardware, compilers, or OS'es.
1 by brian
clean slate
50
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
192 by Brian Aker
Updating FAQ
59
- ...
1 by brian
clean slate
60
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
192 by Brian Aker
Updating FAQ
67
Please ask on the mailing list or on IRC.
68
69
* Can I get involved?
70
201.1.1 by Jay Pipes
cleanup of FAQ file
71
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
192 by Brian Aker
Updating FAQ
75
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
201.1.1 by Jay Pipes
cleanup of FAQ file
80
you will need to rollup your sleeves and write some code. For very simple
192 by Brian Aker
Updating FAQ
81
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
201.1.1 by Jay Pipes
cleanup of FAQ file
93
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
192 by Brian Aker
Updating FAQ
96
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:
201.1.1 by Jay Pipes
cleanup of FAQ file
109
192 by Brian Aker
Updating FAQ
110
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
201.1.1 by Jay Pipes
cleanup of FAQ file
113
clarify the document. And when you get the answer? Please update the code
192 by Brian Aker
Updating FAQ
114
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,
201.1.1 by Jay Pipes
cleanup of FAQ file
128
Postgres, or DB2. 
129
130
There is no GA date at the moment.
192 by Brian Aker
Updating FAQ
131
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
201.1.1 by Jay Pipes
cleanup of FAQ file
139
No. We are still making incompatible changes, and I certainly do not believe
192 by Brian Aker
Updating FAQ
140
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
201.1.1 by Jay Pipes
cleanup of FAQ file
142
optimal.  Therefore, do not go out and benchmark this and expect it to be one way or
192 by Brian Aker
Updating FAQ
143
the other. We are currently only doing benchmarks where it makes sense for
144
us to determine where bottlenecks are.
1 by brian
clean slate
145
146
* Why drizzle?
147
192 by Brian Aker
Updating FAQ
148
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 :)
1 by brian
clean slate
151
152
  -Brian
153
    Seattle, USA
192 by Brian Aker
Updating FAQ
154
    Sun, Microsystems