<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Gateway for Databases (Lightning Talk)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Aditya Jalan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Muthu Annamalai</string-name>
          <email>muthu@meta.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Database Gateway, Database Proxy,</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Meta Platforms, Inc.</institution>
          ,
          <addr-line>Bellevue</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>1</volume>
      <issue>2023</issue>
      <abstract>
        <p>Database oferings in production are generally served to clients via gateways(proxies). Instead of recreating them from scratch for each ofering, a composable architecture allows for diferent gateways to share code, providing increased reliability, engineering eficiency and better business impact. Joint Workshops at 49th International Conference on Very Large Data Bases (VLDBW'23) - Second International Workshop on Composable</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>2. Composable Gateway</title>
      <p>At scale, database oferings are generally fronted by
gateThese functionalities, when implemented correctly in
ways(proxies), which acts as an intermediary between
a generic modular way, can be reused and stacked
toapplications and one or more database instances. At Meta
gether to provide a gateway for any database ofering.
for example, we have multiple databases (relational,
nonBuilding a composable Gateway has major benefits in
relational, graph, etc.) and each one is fronted by its own
terms of developer productivity, reliability, availability
gateway service. If we take a step back and squint, it is
of advanced features across all oferings, reduced
mainobserved that they all share common functionality. Some
tenance, consistent experience for customers. Keeping
of the key functions of a gateway include:
• Connection Management: It provides
connection pooling, abstracts and simplifies logic of
establishing connections to database instances.
• Authentication and Authorization: Simpli- tocols, query experiences, and one being open source and
• Tenant isolation and Load balancing:
ifes the responsibility of databases and ensures
only valid and authorized clients can access them. this, as a first step, we are migrating MySQL to use thrift
other being home grown on native technology. To resolve
as the communication protocol end-to-end, bringing the
These are one of the most critical pieces of a first stage of parity for both the datastores. At the same
shared database ofering, where gateway is
responsible for providing safety to one application
or database from another noisy neighbor.</p>
      <p>time, we are teasing out these common functionalities
some of which are stated above into pluggable modules,
which can be combined together into a fully composable
• Routing and Discoverability: Gateway ab- gateway to serve both the oferings. This architecture
stracts the layout and discoverability of backing</p>
      <p>provides a robust, extensible and standardized solution
physical DB instances from the client and pro- for accessing databases, with easier maintenance and
vides routing via logical entities.
• Caching: The gateways can implement caching
mechanisms to store frequently accessed data,
reducing the load on the databases and improving
scalability at core.
these functions in mind, at Meta, we have been exploring
building a gateway with pluggable components for our
internal Database oferings, MySQL[ 1] and ZippyDB[2].</p>
      <p>Currently both have service specific gateways and client
stacks because of how each has diferent connection
proresponse times for clients.
• Monitoring and Analytics: This is bread and
butter, to give insights into the usage pattern for
a database or application by providing a single
choke point.
[2] S. Masti, How we built a general purpose key value</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>