Home

Why GAE selects GQL approach?

  • Jan. 3rd, 2009 at 5:18 AM
I'm trying Google App Engine(GAE) in holiday.
GAE seems nice service for me.
It gives Google's infrastructures for my services.

GQL is that presents access to Bigtable datastore in GAE.
It looks like SQL syntax with some limitation.

So, I have a one question.
"Why GAE selects GQL approach?".

As
you know, Bigtable is distributed storage that is not relational.
I think that I don't need SQL syntax for access to Bigtable datastore.
Why needs GQL?
I think only that it is confused because the data model is different.

GQL is good because highly abstracted for access to data.
However, I think that other approaches existed.

generated by MetaGateway

MySQL User Conference Japan

  • Oct. 31st, 2008 at 11:32 PM
Last week, I went to the MySQL User Conference in Tokyo.
The conference in Japan is the second.

Spider storage engine is the most interesting for me at this year's conference.
Spider storage engine provide other table access.
Like federated engine.
Difference from federated engine, Spider supported XA Transaction and partitioning of MySQL 5.1.
As a result, Spider enables server-separate partitioning.
It provides more scalability and reduces application developer cost.
Spider is "alpha" state now.
I'm looking forward stable releases.

As for the rest, I participated in Drizzle BOF.
Drizzle is fantastic project for me. It optimizes for web.
It is wonderful that it is open source.
Everyone can participate in the discussion, and everyone can edit the code.
Yesterday, The employee who was sitting next to me was sending ML the patch.

However, most other sessions were not interesting.
Understanding index session was good session.
That was about it.

I Spoke at the PHP Conference Japan

  • Jul. 23rd, 2008 at 2:35 AM
About the software that I am developing.

Tags:

What is license of InnoDB Plugin in OEM?

  • Apr. 28th, 2008 at 1:43 AM
InnoDB Plugin is very interesting.
Some new features that do not exist in embedded InnoDB are included in InnoDB Plugin.
For example, there are data compression, fast index creation, new file format.
It's my guess that MySQL offers InnoDB only as a Plugin.
Is InnoDB will not embedding MySQL?

If the answer is "Yes", what is license of InnoDB Plugin in OEM?
InnoDB Plugin license is GPL v2.
But, this license is a little troublesome when it is OEM.
I doesn't want to open the source code to the public when software is packaging with OEM MySQL.

Don't get me wrong.
In personally, I think that all source codes should be open to the public.
However, the company might not permit it. :-(

Pluggable Storage Engine is a wonderful feature.
However, it thinks it is somewhat troublesome about the license...
It might be that the current license system reorganize.
I'm just guessing. :-)

Tags:

I came back to Japan from MySQL Conference!

  • Apr. 22nd, 2008 at 12:26 AM
Last week, I went to MySQL Conference.
I participated in a lot of interesting sessions.
To me it was very exciting time!

Particularly, BLOB Streaming Engine and Kickfire were interesting.

BLOB Streaming Engine is one of the Pluggable Storage Engine.
BLOB Streaming Engine is treating the Blob data in MySQL as Stream.
It include small HTTP Server.
The BLOB data is communicated by the HTTP protocol by the server.
As for MySQL, the BLOB data had been treated as a text.
It seemed to become easy for me to make the application that treated the BLOB data with this engine.

Kickfire, it was most interesting thing in Conference.
It is an appliance for MySQL to high performance.
Kikcfire has "SQL Chip", that understands and processes high-level SQL operators.

The chip can execute on multiple operators simultaneously, which query parallelization on a single chip.
That also pulls data directory from memory without the need for registers or cache.
As the result, Kickfire eliminates the von Neumann bottleneck.
In addition, Kickfire eliminate the I/O bottleneck by Column-oriented Storage Engine, Compression and large centralized memory.

kickfire gives best price/performance by these architecture.
I will pay attention because it seems to be interested technically.

The session of Maria and Falcon was a little disappointing oppositely.
Though I thought that I can hear the in-depth stories a little more...
But, it was the overall happy conference though there was dissatisfaction in that.
I want to participate again if there is a chance.

I decided to go to MySQL Conference.

  • Mar. 21st, 2008 at 3:46 PM

A few days ago, My boss said, "This year's MySQL Conference seems to be interesting".
And, He said to me, "Go to Conference and collect information".

What a good instruction!
I didn't think that I was able to go to MySQL Conference this year!

Naturally, Maria and Falcon are interesting.
A recent condition of MySQL Cluster is curious, too.
And, I'm looking forward to meet Brian Aker again:-)

It is a very exciting opportunity.
I just can't wait to go to the MySQL Conference!

Tags:

What's Dependency Injection for?

  • Mar. 11th, 2008 at 11:44 AM
What do you think value of Dependency Injection?

Personally, I think that DI is good solution.
Because, it giving testability and good maintenance performance.

But in many cases, isn't it excessive maintenance performance?
Are other solutions suitable than it?

I think that it is the very good things if it is for Unit Test.
Is DI used to make the program testable?

I'm participating in the OSS community that develops the DI framework for PHP.
I felt that PHP developers doesn't want DI Framework.
Is this because Unit Test is still unfamiliar for the PHP developers?
Of course, it holds in Japan.

Whether DI seems to be popular in Java, because Unit Test is familiar?
So, is DI for Unit Test?

By the way, what kind of DI framework is most famous now?
Spring?
Google Guice?

In Japan, DI Container named Seasar2 is famous.
In abroad?

Edit,
Guice was winner of Jolt! Congratulations!
http://crazybob.org/2008/03/thanks-for-jolt.html

It seems to become popular in this.

The first impression of pthread was bad...

  • Mar. 6th, 2008 at 9:08 PM
I've never written Multithread program by C or C++.
It wrote by the practice because it was not thought to be good.

I wrote sample program of Producer-Consumer pattern.
I used POSIX thread(pthread) library.
Because, It is commonly-used library for thread programming.

However, I thought that pthread is tricky to use.
That have some reasons.

First, pthread requires waiting for thread execution by pthread_join.
I felt odd it. Because, Java thread is run independently of the main routine.

Second, using pthread_mutex_lock" and pthread_mutex_unlock
when I hope to control synchronous execution.
Moreover, it is necessary to prepare object of pthread_mutex_t.
What a bother...
In Java, I only write "syncronized" in method declaration.

Third, It is necessary to make the variable to make the thread. Jeez!

Perhaps, I have gotten too used to Java thread.
I seem to have a hard time until becoming accustomed to pthread...

I really want New MacBook(Black)...

  • Mar. 4th, 2008 at 1:50 PM

http://www.apple.com/macbook/

Now, I am using Core Duo generation's MacBook Pro.
There is especially no dissatisfaction in this.

But, That black form charms me.
I want to say, "It is My machine". 

Of course, the performance is also attractive.
Core 2 Duo of 2.4GHz, 4GB memory, and It is lighter than MacBook Pro!(Air? What is it?)
My MacBook Pro is CoreDuo of 1.8GHz, 1GB memory, and it is too heavy.

I'm hesitates about whether it should be bought.
Because, MacBook Pro can be still used.

Hmm...

Tags:

Consistency is very difficut...

  • Mar. 1st, 2008 at 12:17 AM
Today, I'm ashamed to say I knew "Eventual Consistent" for the first time.
"Eventual Consistent" in a simple term, There being an unconformity temporarily,
if time passes, be sure to become a state where consistency has taken.

Eventual Consistent - All Things Distributed
http://www.allthingsdistributed.com/2007/12/eventually_consistent.html

This was pointed out with the technical review of the project where I participate.
That project is developing the my company's package software cooperation system for alliance software.
This system update processing is done between two software.
Because of that, it was necessary to think of the mechanism which maintains consistency.

In the end, periodically we had decided to correct unconformity with the system like cron.
But, the user accesses when it does not have consistency with timing...

Consistency essentially is very difficult problem.
The distributed system is very profound...
The return of work, I thought concerning the idea of the pluggable storage engine of MySQL.
Perhaps, there probably is a problem.
Because I don't think deeply.
If possible, if I have the problematical point, we want pointing out:)

My idea: Distributed-Storage engine(or Hypertable Engine)
That obtained conception from Hypertable.
Hypertable has one MasterServer and many RangeServers.
This engine offers those the MasterServer and like RangeServer.

A first part, The MasterServer engine is proxy engine.
That distributes request for RangeServers.
Like Federated engine? Like MySQL Proxy?

A second part, The RangeServer engine is distributed nodes.
Each RangeServer engines are data storage.
Adding the RangeServer table, scale out it points.

An other part,
- Distribution algorithm imitates Hypertable?
- I don't think any which still are suitable to Hyperspace
- RangeServer is new Column-Oriented table or the existing table can be used?

As for advantage,
- Being able to access with the MySQL client library
- The function of MySQL where Replication and Join etc. are superior can be used

Perhaps, you like this probably will say...
- Hypertable you should have used?
- It is possible to be MySQL Cluster?

But, I would like to make the original storage engine!
That is very personal desire...

MySQL Maria Preview released!

  • Feb. 27th, 2008 at 10:46 PM
Monty says - Maria build & public MySQL architecture meeting
http://monty-says.blogspot.com/2008/02/maria-build-open-architecture-meeting.html

The Maria Engine preview is released:)
I downloaded that promptly.

What is The Maria Engine?
According to the reference manual...

Maria is a crash safe version of MyISAM. The Maria storage engine supports all of the main functionality of the MyISAM engine,but includes recovery support (in the event of a system crash), full logging (including CREATE, DROP, RENAME and TRUNCATE operations), all MyISAM row formats and a new Maria specific row format.
http://dev.mysql.com/doc/refman/5.1-maria/en/se-maria.html

In simple summary, Maria is transactional MyISAM(Full transaction support will only be available with Maria 2.0 and later).
It can choices transactional or not transactional in the CREATE TABLE options.
When Maria crash, things will rollback to state of the start of statement or last LOCK TABLES commands.

I think whether Maria becomes the alternative solution of InnoDB.
The Falcon Engine is the another choices, but I think advantage is migration from MyISAM.
Because Maria supports all functions of MyISAM( But Maria seems cannot use INSERT DELAYED... ).

I observe to the future of Maria.

Tags:

Hypertable

  • Feb. 27th, 2008 at 1:15 AM
Hypertable is the most interesting software of me now.
Hypertable is very interesting project for the alternative solution of RDB.

I use MySQL often, but when of load distribution is thought, it is difficult.
As for me we want DB which more is suited for the distributed system. 

like Google Bigtable?
like Tokyo Cabinet?

I'm looking at Hypertable and try to study of distributed storage system. 

Hello, Livejournal

  • Oct. 6th, 2007 at 10:10 PM
Hi, I'm yonekawa.
My work is a PHP Developer.
However, I occasionally used other languages.
Other languages are C, Java, Ruby, Python, etc.

I acts in the community of Open-Source besides work.
I'm acting in Seasar Foundation.
Seasar is "Dependency Injection" and "Aspect Oriented Programming" framework.
It's written by java.
I'm participating in the project that does the framework to PHP in the porting.

Additionally, it is interested also in the computer architecture, the distributed system technologies, and TDD, etc.

This blog writes such a computer technology.
Please forgive me though it is poor English:)