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).

Server

Client

Java VM

C client

Java app Avatica RPC server

Avatica ODBC driver

Java VM

Avatica
 RPC
 Protocol

Java client

Avatica local JDBC driver

Avatica SPI Provider X

Avatica remote JDBC driver

Avatica

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:
 https://groups.google.com/forum/#!forum/optiq-dev

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 23 Downloads 395 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.

Daniel Martins – Software Engineer Open Source Enthusiast ... - GitHub
Parses bencoded strings directly to Clojure data structures and vice-versa ... Worked on 2012's Big Brother Brasil broadcasting page, which would then become ...

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.

Microsoft odbc sql server driver neither dsn nor server keyword ...
server keyword supplied.Hp universal print driver for windows xp. Sony vaio pro 13 driver windows 7.Driver hp photosmart b109nwireless.Canon pixmaip1200 ...

An Open-Source Research Kit for the da Vinci R Surgical ... - GitHub
Operating System (ROS) [1], has seen widespread adoption, there are relatively .... low latency and high bandwidth) network because the high-level control typically .... The IEEE-1394 protocol supports two types of services: isochronous and ...

Open Source and Agile
contracts are usually based on a service concept in which the customer hires a ... such community around a program usually denounces a recent project or one ...

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-.

Free/Libre and Open Source Software Outline
Nov 19, 2010 - Free/Libre Open Source Software (FLOSS) World ... companies could adopt so as to participate in the world of ... 10 / 15. Impact of Low Intensity FLOSS Activity. Areas with a Low Intensity of Free/Libre Open Source Software ...

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.

Open Source Roundtable - RIPE 65
IPv6 Router Advertisement. ‣ Powerful configuration and filtering language (!). ‣ Multiple routing tables – internal and OS. ‣ Missing / Limitations: • IPv4 & IPv6 ...

Open Source Roundtable - RIPE 65
... BGP processing and announcements. • Smaller ISPs, DD-WRT (

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.

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).

J-Ortho: An Open-Source Orthodontic Treatment ...
J-Ortho: An Open-Source Orthodontic Treatment. Simulator ... An interactive computer-based training tool for using in. Orthodontics ... Based on the data provided by .... Cephalometric Mapping component is responsible for mapping the actual ...

OpenViBE : An Open Source Software Platform to Easily Design, Test ...
efficiently, in order to design realYtime applications for neuroscience including ... More information on this project can be found on the OpenViBE website (1).

OpenViBE: An Open-Source Software Platform to ...
has emerged: interacting through cerebral activity, using a brain–computer inter- face (BCI; Leeb et al., ... tively in Sections 9, 10, and 11. The paper ends with a.

gpucc: An Open-Source GPGPU Compiler - Research at Google
mean of 22.9%. Categories and Subject Descriptors D.3.4 [Programming ... personal identifiable information. ... 2. Overview. In this section, we will provide an overview of the system ...... Computer Science, 9:1910–1919, 2012. [11] S. Che, M. Boye

Open Source Software for Routing
ISIS (IPv6) (and ISIS IPv4 is not yet useable). • Multiple branches of Quagga: -. Quagga.net (official “Master” branch), Euro-IX, Quagga-RE and more. 17.

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.

DEPLOYING AN OPEN SOURCE WEB PORTAL AS A TOOL FOR ...
DEPLOYING AN OPEN SOURCE WEB PORTAL AS A ... KNOWLEDGE SHARING AND COLLABORATION.pdf. DEPLOYING AN OPEN SOURCE WEB PORTAL ...

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