Avatica An extensible, open source, ODBC and JDBC driver

Julian Hyde, 2013-12-19

Problem statement • Today, many database engines and client applications are written in Java.

• But, some important client applications require ODBC.

• Maintaining a high-quality, portable ODBC

driver is a lot of work (especially for projects whose developers mainly use Java).



Java VM

C client

Java app Avatica RPC server

Avatica ODBC driver

Java VM


Java client

Avatica local JDBC driver

Avatica SPI Provider X

Avatica remote JDBC driver


Proposed solution: Avatica • Database connectivity stack: ODBC driver, RPC

protocol, remote JDBC driver, local JDBC driver.

• Start the project with a proven, portable ODBC driver (e.g. psqlODBC).

• Share the ongoing maintenance among projects.

(Apache Phoenix, Apache Drill, Facebook Presto, Cascading & Optiq have expressed interest.)

• Currently just a proposal.

RPC protocol • Language-independent

• Reasonably time- and space-efficient

• Easy to implement an RPC server

• Extensible (for example: a particular database might wish to send extra metadata to the client)

• Built from off-the-shelf components

• Options: Apache Thrift; Protobuf; Postgres protocol; ZeroMQ

ODBC driver • Avatica ODBC driver speaks Avatica RPC protocol.

• Common customizations are made on the server: typical provider does not need to modify ODBC driver.

• Allow a provider to extend ODBC driver and extend wire protocol, if necessary.

• Proposal: Extend psqlODBC (Postgres ODBC

driver), adding support for Avatica RPC protocol.

Avatica Server impl • AvaticaServer implements RPC protocol in Java.

• To use it, each database must implement the provider SPI.

• SPI is similar to JDBC (but simpler).

• SPI also powers a local JDBC driver.

How to add a provider • Suppose you have written a database, ProviderX.

• First, implement the provider SPI:

• Specify provider name, version

• Statement methods: prepare, execute and close

• Implement calls for supported metadata (e.g. getTables)

• Next, run provider test and fix your SPI implementation.

• ODBC, remote JDBC, local JDBC should now work!

• Most projects will never need to touch the ODBC driver or protocol.

Status • Local JDBC driver in use by Optiq and Apache Drill: github.com/julianhyde/optiq

• ODBC driver, RPC protocol, and RPC server are just proposals

• Project lead: @julianhyde (Optiq / Hortonworks)

• Other members:

• Apache Drill

• Apache Phoenix

• Cascading

• Get involved on the optiq mailing list:

An extensible, open source, ODBC and JDBC driver - GitHub

Dec 19, 2013 - Avatica remote JDBC driver. Java client. Avatica. RPC. Protocol. Avatica local JDBC driver. Java VM. Java app. Avatica SPI. Provider X. Client.

98KB Sizes 11 Downloads 125 Views

Recommend Documents

An Open-Source Hardware and Software Platform for ... - GitHub
Aug 6, 2013 - Release 1.03. Zihan Chen. 1. , Anton Deguet. 1. , Russell Taylor. 1. , Simon DiMaio .... the high-speed serial network (IEEE-1394a) and the I/O hardware. In this design .... of services: isochronous and asynchronous transfers.

IBPM: An Open-Source-Based Framework for InfiniBand ... - GitHub
Evaluation of Computer and Communication Systems (MMB) and. Dependability and ... 2 These authors are with science+computing ag, Tuebingen, Germany.

Open Source Code Serving Endangered Languages - GitHub
ten called low-resource, under-resourced, or minority lan- guages) ... Our list is updatable more ... favorites on other social media sites, and, generally, a good.

The RADStack: Open Source Lambda Architecture for ... - GitHub
cessing, and Section 5 describes the role of Kafka for event delivery. ... ware upgrades or network failure. To address ... fail without impacting the services of the other components. 3. ...... ParAccel-Core-Analytic-Database.pdf, March. 2013.

Incorporating Commercial and Private Data into an Open ... - GitHub
Additionally, pharmaceutical companies have built up their own private ... Open PHACTS Discovery Platform9 [10] (Section 4), that will integrate pharma-.

Open Courseware and Open Source Software
Wbile putting individual course material online is already a ... smaller and more fragmented than the shared con- text for open source ... currently dominant business models, the true long- ... shows strong global support for the idea of open.

Development of Chapas an Open Source Video Game ...
well as the Genetic Terrain Programming tech- nique. The physic engines ... gines passed all criteria: Panda3D, Torque ..... panda3d.org/wiki/index.php/Physics.

J-Ortho: An Open-Source Orthodontic Treatment ...
J-Ortho: An Open-Source Orthodontic Treatment. Simulator .... overcome possible dental arch clinical problems. ... the problem by developing a simple prototype.

Zemberek, an open source NLP framework for Turkic ...
source, platform independent NLP framework not only for Turkish but also all Turkic languages. In. This paper .... There is no agreed standard naming scheme defined for. Turkish yet. Most suffixes contain a production ..... environment: AMD Athlon 64

Instrumentino: An open-source modular Python framework for ...
Official Full-Text Paper (PDF): Instrumentino: An open-source modular ... 1. Introduction. In the process of scientific research, many laboratories around ..... [18] N. Barroca, et al., Wireless sensor networks for temperature and .... The communicat

Development of Chapas an Open Source Video Game ...
rience on building a video game from scratch and do it recurring only .... and to create them, from a TP, the continuous ..... matter? website, (accessed Apr. 2010).

An Evaluation of Open Source SURF Implementations
Several open source implementations of the algorithm exist, yet it is unclear how well they ... This is achieved by using integral images as data structure.