Julian Hyde wrote:
Hi Calcite community members,

In a few weeks (22nd October) it will be a year since Calcite graduated to a 
top-level Apache project[1]. I think it’s been a good year!

When we graduated, we decided to have an annual “state of the project” 
discussion and to vote for a new PMC chair/VP[2]. So, I’m kicking off both of 
those discussions.

First, a few of my thoughts.

I am pleased with the general rate of progress of the project. I’m pleased to 
see an increasing number of contributions from new contributors, and some of 
those becoming committers and PMC members. A couple of highlights this year 
were adapters for Cassandra and Elasticsearch that can out of the blue. I’m 
also pleased that we have continued a regular release cadence. This makes it 
easier for projects to use Calcite, and knowing that pull requests will be 
promptly reviewed and included in a release gives people an incentive to 
contribute.

Calcite is becoming an ever better optimizer for SQL queries. This is helped 
immeasurably by the fact that Hive, Phoenix, Drill, Qubole and others are using 
Calcite for this and are contributing back. (Thanks to those communities for 
their continued collaboration!)

+1 this has been awesome to watch :)

But I also believe that Calcite can be used for non-traditional databases. Some 
examples:

1. I am a fan of what Drill have done with schema-less query processing and 
document-oriented data, and would like to bring similar functionality into core 
Calcite.

I remember I saw a presentation by someone on Drill a while back (very much a "intro to drill" by someone not affiliated with Calcite either). The way the content was presented it was so very clear the influences of Calcite into their architecture. Very cool to see!

2. I also like the idea of Calcite being a “toolkit” from which one can build a 
database (relational or non-relational). Phoenix have been going through the 
process of converting their existing parser&  planner to use Calcite, and I 
have learned a lot. But a lot still needs to be done to make Calcite easier to use 
as a framework.

3. I have been building consensus that SQL is a great language for stream 
processing[3], and working with Apex, Flink, Samza, Storm to build the pieces 
to implement streaming SQL. I am very excited about the way streaming SQL is 
gaining acceptance. Are there any other emerging areas should Calcite be 
targeting?

Avatica continues to grow and mature. The Avatica site now lists clients in 4 
languages[4], and there is also an ODBC driver (not open source)[5]. The “one repo, 
one community, two web sites, two releases” strategy seems to be working adequately. 
But where do we see the project going? Would it help if it had its own namespace 
(org.apache.avatica) or web site 
(http://avatica.apache.org<http://avatica.apache.org/>)? Might it be a 
top-level project someday?

I think, in time, Avatica could easily grow into its own entity. I don't think we're there yet.

I will say that I think there's been a regular amount of confusion with Avatica and Calcite sharing a repository but not following the same versioning scheme. People seem to be a bit confused when I tell them that the two projects are not "attached" to one another (they are separate Maven projects).

I think pulling Avatica into its own repo would be good encouragement to being its own entity (as well as drawing the line between Calcite and Avatica codebases), but I think this is low-priority (as there are few of us doing Avatica work) and we need to do a better job at clearly stating what Avatica is/does and its API.

Regarding community. Are we doing enough to reach out and bring new members 
into the community? Some of us have given talks at conferences and meetups over 
the last 12 months. Could we improve our geographical reach? Are there other 
things we could do to make the project more welcoming to new contributors? 
Could we do more to reach out to women and other demographic groups 
underrepresented in our community?

What else are we doing well in the project? What are areas where we need to do 
better?

As you outlined, adoption across other projects has been great. What about adoption by users? I know the last time I tried to hack some SQL system together with Calcite (albeit, quite a while ago), I was left wondering what is "public API" (what are the classes I should use versus what are those that are "internal"). I think we still see a fair amount of requests for "hand-holding" as well. I'm not sure how we make this better (or if it's a best use of time -- the csv example goes very far already!). Just a comment.

Lastly, since I agreed to step down as VP after 12 months, let’s start talking 
about a replacement. Being PMC chair is a privilege and it has taught me a huge 
amount about how Apache works. I think that Jesús Camacho Rodríguez could do an 
excellent job, if he is willing. Which other candidates should we consider?

+1 to Jesús if he's amenable to it. He's been a pleasure to work with and I'd have no complaints. Also happy to entertain others who would like to step up (without volunteering them myself ;P)

Please take some time to share your thoughts about the state of the project.

Julian

(VP Apache Calcite)

[1] 
http://calcite.apache.org/news/2015/10/22/calcite-graduates/<http://calcite.apache.org/news/2015/10/22/calcite-graduates/>

[2] 
http://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/201509.mbox/%3CCF8D6F96-706F-4502-B41D-0689E357209D%40apache.org%3E<http://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/201509.mbox/%[email protected]%3E>

[3] 
https://calcite.apache.org/community/#streaming-sql<https://calcite.apache.org/community/#streaming-sql>

[4] 
http://calcite.apache.org/avatica/docs/#clients<http://calcite.apache.org/avatica/docs/#clients>

[5] 
https://hortonworks.com/hadoop-tutorial/bi-apache-phoenix-odbc/<https://hortonworks.com/hadoop-tutorial/bi-apache-phoenix-odbc/>


Reply via email to