TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

AnyDB: An Architecture-Less DBMS for Any Workload

76 pointsby aratnoover 4 years ago

4 comments

jandrewrogersover 4 years ago
The paper is premised on a dichotomy that doesn&#x27;t hold in real database systems. Specifically, the assertion that &quot;static&quot; shared-nothing architecture performance substantially degrades under skew, which provides a foil for shared-disk architectures that do not. While this is true for many shared-nothing architectures, particularly in open source, robustly skew-tolerant shared-nothing architectures have existed for at least a decade -- highly <i>dynamic</i> shared-nothing architectures are valid (and quite good) designs.<p>A skew-tolerant shared-nothing database has internals that look a bit like &quot;AnyDB&quot; to the extent execution of a type of workload is largely disconnected from the physical architecture -- the storage engines are often identical, for example. This allows you to schedule any mixture of fast-twitch operations concurrent with slow analytic queries. The original motivation for these types of architectures was complex mixed workloads. What is missing from the AnyDB shared-nothing architecture to make it skew-tolerant is a mechanism for continuously and smoothly shedding both data and load across cores&#x2F;machines while maintaining consistency. Multiple options here, just need to pick one that makes sense and plays nicely with the concurrency control model.<p>Similarly, the synchronization-free streaming concurrency control model described in the paper is a standard design idiom. Most &quot;thread-per-core&quot; style database architectures do something like this -- it is one of the major advantages of being thread-per-core.<p>The database engineering industry has a long history of not publishing design advances and this is illustrative of that. If someone asked me to point to a paper that describes all this, I&#x27;d have a difficult time thinking of one. That isn&#x27;t where this knowledge tends to be stored.
the_dukeover 4 years ago
The juicy part of the paper:<p>&gt; The main idea of an architecture-less database system is that it is composed of a single generic type of component where multiple instances of those components “act together” in an optimal manner on a per-query basis. To instrument generic components at run-time and coordinate the overall DBMS execution, each component consumes two streams: an event and a data stream. While the event stream encodes the operations to be executed, the data stream shuffles the state required by these events to the executing component.Through this instrumentation of generic components by event and data streams, a component can act as a query optimizer at one moment for one query but for the next as a worker executing a filter or join operator.<p>Doesn&#x27;t sound too different from current distributed DBMS, which already specialize query execution and distribute workload between cores&#x2F;nodes in a similar manner, but taken to the next level to more easily enable things like different data persistence models or FPGA integration.<p>Seems challenging to implement without losing significant performance to the abstraction layer.
评论 #25752051 未加载
评论 #25756105 未加载
gregw2over 4 years ago
So I get that they call it &quot;architecture-less&quot; because it doesn&#x27;t choose between &quot;shared nothing&quot; and &quot;shared disk&quot; architectures and thus can pivot from OLTP to OLAP.<p>But I have a different OLTP vs OLAP &quot;architecture&quot; question.... is it row-based or columnar? Is it &quot;architectureless&quot; in that regard also? Are they going to store data persisted both ways so you get the worst of both worlds performance-wise or is there still an OLAP vs OLTP architecture choice there?<p>I suspect there are still some architectural choices here!
评论 #25754364 未加载
tabtabover 4 years ago
I&#x27;d like to see Dynamic Relational implemented to have something <i>in-between</i> &quot;architecture-less&quot; and familiar RDBMS conventions. It&#x27;s close enough to existing RDBMS to reduce the learning curve, and can be incrementally &quot;locked down&quot; via added constraints and types (via formatting constraints). It tweaks the RDBMS&#x2F;SQL wheel just enough to get dynamism, NOT reinvent the wheel.<p>It would be great for prototyping and rush-jobs. For example, a lot of orgs needed to get Covid-related employee illness, notification tracking, and&#x2F;or vaccination tracking up and running ASAP. Something like DR would make it easy.<p><a href="https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;66385&#x2F;dynamic-database-schema#46202802" rel="nofollow">https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;66385&#x2F;dynamic-database-s...</a>