Hello Matt,
That's a great feedback! Thank you very much for responding to my
request. Below I will answer to each of your doubts and questions.
1. Thanks for pointing about Gemcutter. I will register an account
over there and share Ruby Driver and Adapter. Concerning the
difficulty to find them, in my first message I have pointed to
Sourceforge.net Project URL (
http://sourceforge.net/projects/cubrid),
which has all binaries for CUBRID Database, including PHP, JDBC, and
Ruby drivers. Here is the Files Directory
https://sourceforge.net/projects/cubrid/files/.
You will see there "CUBRID Ruby Driver" directory dedicated for Ruby
releases.
2. Related to why CUBRID and what the differences are, here is my
answer directly to the point. These days we are attending the OSCON
Open Source Convention Conference in Oregon. We see that Oracle is
developing MySQL not that aggressively as it was before. Many strong
former MySQL developers and architects are leaving the company as they
have some personal doubts. It's a fact, and the world knows it. Some
ex-MySQL coworkers join other projects like MariaDB or MongoDB. Do you
think it's because MySQL is getting stronger? I personally doubt that.
From the beginning Oracle has been concentrated on making money, and
they have enough strong tools to monetize. Regarding MariaDB and
MongoDB, there are so many issues with them. Here is just one example
why developers move back to MySQL (
http://www.blue74.com/2010/06/
scatter/were-back-so-long-mongodb/). These solutions are not that
stable. But CUBRID is behind the largest IT service provider in Korea
- NHN. It has a strong maintainer and investor. Besides, NHN itself is
a very big reference. For instance, NHN possesses 76% market share in
the Korean search market while Google - only 4%. These figures tell a
lot. And these days NHN switches most of their services to run on
CUBRID, and they have a farm of over 10,000 servers. It's a great
potential. CUBRID serves even one of the largest game industry leaders
like Mgame (
http://aw.mgame.com/event/2010/0715_grandopen/
default.mgame). This entire game is running on CUBRID Database. When
investing in some business you don't think of the current cash flow
but on the future potential, on the guarantee. And NHN is a big player
which has a huge interest in CUBRID's being widely used within the
company and outside. And community users, developers and business
owners need a stable product. This is where CUBRID is different from
others. If CUBRID does not have something that other solutions have.
It's just temporarily. This week we have released CUBRID R3.0 Beta,
which brings huge functional improvements (
http://cubrid.org/
curbid_r30_beta) and SQL syntax extensions. Now it's more compatible
with MySQL than ever before. Everything - for the user. Now we started
the second MySQL Compatibility phase. We expect the Full compatibility
by the end of this year. Before that CUBRID 3.1 is planned to
introduce the new FBO feature. File-Based Object will allow users to
store BLOB/CLOB data into the file system which is outside of
database. Mostly this feature is implemented on the application level,
however if it is implemented on the database level, the applications
will not need anymore to access the file system separately. Instead
only SQL data types (LOB data) in SQL queries can be used. The
distributed file system for this feature will be POSIX, which is open
source. Another important improvement for the next CUBRID R3.2 will be
the Clustering capability for CUBRID database, which will provide the
linear scalability without modification of applications, as well as
distributed partition and load balancing features. CUBRID Cluster will
support the single database view while providing the multi access
point to databases. This feature will be very interesting for large
enterprises. These are only the changes CUBRID users we'll see in this
half of the year. This is to prove that CURBID is not just another
database, we invest a lot to make it the most compatible, ease-to-use
and highly optimized database for Web applications.
3. Matt, in order to dramatically increase INCR/DECR performance
CURBID passes by COMMIT/ROLLBACK. So, these two functions do not leave
the tracks behind. Once they are embedded in the query, the results
are immediately committed.
4. Concerning the "MONETARY" data type, yes, it is represented by the
DOUBLE PRECISION floating point.
DOUBLE PRECISION has higher precision than that of FLOAT or REAL. So,
that's why it's more rational to use DOUBLE PRECISION. However, most
DB users usually, not only with CUBRID but with MySQL and MS SQL as
well, do not use the MONETARY (or MONEY) data types to store the
monetary values. They often refer to the NUMERIC data type, if they
will. But with MONETARY in CUBRID the number of significant digits is
15. So, there should be anything to be afraid of. In case, this is not
enough, there is always a way out with the NUMERIC.
5. In MySQL most types are stored in the binary format. Before 5.0.3
they were stored as strings. Moreover MySQL itself has a BIT data
type. By default BOOL/BOOLEAN defaults to TINYINT(1). But this is not
strict enough. If you really want the BOOLEAN type, you should use
type BIT(1), which will allow you to use exactly 1 and 0 and may save
space for you. This is what exactly CUBRID BIT does.
6. Concerning the Object-side of CUBRID, here is a detailed answer
http://forum.cubrid.org/viewtopic.php?f=12&t=38 I posted on CUBRID
Forum. Briefly speaking, it's not an experimental feature. Vice versa,
it's something that was fully developed before. The object orentation
feature was requested by Game Developers. As a result here is where
Object part of CUBRID is massively used
http://aw.mgame.com/event/2010/0715_grandopen/default.mgame.
However, these days the web developers request the features which are
on the 'relational' side.
Matt, if you have any other questions, let me know. I will be very
glad to answer you. I hope to hear your feedback on Ruby Driver and
Adapter.
On Jul 22, 7:36?am, Matt Jones <
al2o...@gmail.com> wrote:
> with the enclosing transaction? (!)
http://wiki.cubrid.org/index.php/INCR_and_DECR_Functions