loader from loading.io

Multi-Value, Spatial, and Event Store Databases

Coding Blocks

Release Date: 03/04/2024

When to Log Out show art When to Log Out

Coding Blocks

Well, this is awkward. Coding Blocks is signing out for now, in this episode we’ll talk about what’s happening and why. We have had an amazing run, far better than we ever expected. Also, Joe recommends 50 games, Allen goes for the gold, and Outlaw is totally normal. (And we’re not crying you’re crying!) Thank you for the support over the last 11 (!!!) years. It's been a wild ride, and the last thing we ever expected when starting a tech podcast was getting to meet so many fantastic people. View the full show notes here: Tip of the Week UFO 50 is an odd collection of 50...

info_outline
Things to Know when Considering Multi-Tenant or Multi-Threaded Applications show art Things to Know when Considering Multi-Tenant or Multi-Threaded Applications

Coding Blocks

For the full show notes head over to:  

info_outline
Two Water Coolers Walk Into a Bar show art Two Water Coolers Walk Into a Bar

Coding Blocks

Grab your headphones because it's water cooler time! In this episode we're catching up on feedback, putting our skills to the test, and wondering what we're missing. Plus, Allen's telling it how it is, Outlaw is putting it all together and Joe is minding the gaps! View the full show notes here: Reviews Thank you again for taking the time to share your review with us! iTunes: Yesso95 Spotify: Auxk0rd, artonus News Atlanta Dev Con September 7th, 2024 DevFest Central Florida September 28th, 2024 Two water coolers walk into a bar... Several folks share their origin...

info_outline
How did We Even Arrive Here? show art How did We Even Arrive Here?

Coding Blocks

For the full show notes please visit: https://www.codingblocks.net/episode239

info_outline
AI, Blank Pages, and Client Libraries...oh my! show art AI, Blank Pages, and Client Libraries...oh my!

Coding Blocks

It's Water Cooler Time! We've got a variety of topics today, and also Outlaw's lawyering up, Allen can read QR codes now, and Joe is looking at second careers. View the full show notes here: News As always, thank you for leaving us a review – we really appreciate them! Almazkun, vassilbakalov, DzikijSver Atlanta Dev Con September 7th, 2024 DevFest Central Florida on September 28th, 2024 Interested? Submit your talk proposal here: Water Cooler How many programmers are there now? () Are we still growing? What will it be like when we stop growing? What will people be...

info_outline
Alternatives to Administering and Running Apache Kafka show art Alternatives to Administering and Running Apache Kafka

Coding Blocks

View the show notes on the web: In the past couple of episodes, we'd gone over what Apache Kafka is and along the way we mentioned some of the pains of managing and running Kafka clusters on your own. In this episode, we discuss some of the ways you can offload those responsibilities and focus on writing streaming applications. Along the way, Joe does a mighty fine fill-in for proper noun pronunciation and Allen does a southern auctioneer-style speed talk. Reviews As always, thank you for leaving us a review - we really do appreciate them! From iTunes: Abucr7 Upcoming Events Atlanta Dev...

info_outline
Nuts and Bolts of Apache Kafka show art Nuts and Bolts of Apache Kafka

Coding Blocks

Topics, Partitions, and APIs oh my! This episode we're getting further into how Apache Kafka works and its use cases. Also, Allen is staying dry, Joe goes for broke, and Michael (eventually) gets on the right page. The full show notes are available on the website at  News Thanks for the reviews! angingjellies and Nick Brooker Please leave us a review! () Atlanta Dev Con is coming up, on September 7th, 2024 () Kafka Topics They are partitioned - this means they are distributed (or can be) across multiple Kafka brokers into "buckets" New events written to Kafka are...

info_outline
Intro to Apache Kafka show art Intro to Apache Kafka

Coding Blocks

We finally start talking about Apache Kafka! Also, Allen is getting acquainted with Aesop, Outlaw is killing clusters, and Joe is paying attention in drama class. The full show notes are available on the website at News Atlanta Dev Con is coming up, on September 7th, 2024 () Intro to Apache Kafka What is it? Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. Core capabilities High throughput - Deliver messages at...

info_outline
StackOverflow AI Disagreements, Kotlin Coroutines and More show art StackOverflow AI Disagreements, Kotlin Coroutines and More

Coding Blocks

Reviews iTunes: ivan.kuchin News Atlanta Dev Con September 7th, 2024 Topics People trying to remove their answers from StackOverflow to not allow OpenAI to use their answers without permission/recognition?   Obfuscate data dumps with PostgreSQL   Kotlin Coroutines   Reminded Outlaw of the Cloudflare Workers we mentioned a while back Please leave us a review! You can control if YouTube keeps track of your history (at least that you can see)   100 Things You Didn't Know About Kubernetes   Do the IDE AI's really make you more...

info_outline
Llama 3 is Here, Spending Time on Environmental Setup and More show art Llama 3 is Here, Spending Time on Environmental Setup and More

Coding Blocks

Full episode show notes can be found at:  

info_outline
 
More Episodes

We are mixing it up on you again, no Outlaw this week, but we can offer you some talk of exotic databases. Also, Joe pronounces everything correctly and Allen leaves you with a riddle.

The full show notes are available on the website at https://www.codingblocks.net/episode229

News

  • Thanks for the reviews!
    • ivan.kuchin (has taken the lead!), Yoondoggy, cykoduck, nehoraigold
    • Want to help us out? Leave a review! (reviews)

Multivalue DBMS

  • Popular: 86. Adabas, 87. UniData/UniVerse, 147. JBase
  • Similar to RDBMS - store data in tables
    • Store multiple values to a particular record's attribute
      • Some RDBMS's can do this as well, BUT it's typically an exception to the rule when you'd store an array on an attribute
      • In a MultiValue DBMS - that's how you SHOULD do it
      • Part of the reason it's done this way is these database systems are not optimized for JOINS
    • Looked at the Adabas and UniData sites - the primary selling points seem to be rapid application development / ease of learning and getting up to speed as well as data modeling that closely mirrors your application data structures
  • I BELIEVE it's a schema on write (docs.rocketsoftware.com)
  • Supposed to be very performant as you access the data the way your application expects it
  • Per the docs, it's easy to maintain (Wikipedia)

Spatial DBMS

  • Popular: 29. PostGIS, 59. Aerospike, 136. SpatiaLite
  • Provides the ability to efficiently store, modify, and query spatial data - data that appears in a geometrical space (maps, polygons, etc)
  • Generally have custom data types for storing the spatial data
  • Indices that allow for quick retrieval of spatial data about other spatial data
  • Also allow for performing spatial-specific operations on data, such as computing distances, merging or intersecting objects or even calculating areas
  • Geospatial data is a subset of spatial data - they represent places / spatial data on the Earth's surface
  • Spatio-temporal data is another variation - spatial data combined with timestamps
  • PostGIS - basically a plugin for PostgreSQL that allows for storing of spatial data
    • Additionally supports raster data - data for things like weather and elevation
    • If you want to learn how to use it and understand the data and what's stored (postgis.net)
      • Spatial data types are: point, line, polygon, and more…basically shapes
      • Rather than using b-tree indexes for sorting data for fast retrieval, spatial indexes that are bounding boxes - rectangles that identify what is contained within them
        • Typically accomplished with R-Tree and Quadtree implementations
        • RedFin - a real estate competitor to realtor.com and others, uses PostgreSQL / PostGIS
        • Quite a bit of software that supports OpenGIS so may be a good place to start if you're interested in storing/querying spatial data

Event Stores

  • Popular: 178. EventStoreDB, 336. IBM DB2 Event Store, 338. NEventStore
  • Used for implementing the concept of Event Sourcing
    • Event Sourcing - an application/data store where the current state of an object is obtained by "replaying" all the events that got it to its current state
      • This contrasts with RDBMS's in that relational typically store the current state of an object - historical state CAN be stored, but that's an implementation detail that has to be implemented, such as temporal tables in SQL Server or "history tables"
    • Only support adding new events and querying the order of events
      • Not allowed to update or delete an event
      •  
      • For performance reasons, many Event Store databases support snapshots for holding materialized states at points in time
  • EventStoreDB - https://www.eventstore.com/eventstoredb
    • Defined as an "immutable log"
    • Features: guaranteed writes, concurrency model, granulated stream and stream APIs
    • Many client interfaces: .NET, Java, Go, Node, Rust, and Python
    • Runs on just about all OSes - Windows, Mac, Linux
    • Highly available - can run in a cluster
    • Optimistic concurrency checks that will return an error if a check fails
    • "Projections" allow you to generate new events based off "interesting" occurrences in your existing data
    • For example. You are looking for how many Twitter users said "happy" within 5 minutes of the word "foo coffee shop" and within 2 minutes of saying "London".
    • Highly performant - 15k writes and 50k reads per second

Resources we like

Tip of the Week

  • If your internet connection is good, but your cell phone service is bad then you might want to consider Ooma. Ooma sells devices that plug into your network or connect wireless and provide a phone number, and a phone jack so you can hook up an an old school home telephone. We've using it for about a week now with no problems and it's been a breeze to set up. The devices range from $99 to $129 and there's a monthly "premier" plan you can buy with nifty features like a secondary phone line, advanced call blocking, and call forwarding. (ooma.com)
  • Why use "git reset --hard" when you can "git stash -u" instead? Reset is destructive, but stashing keeps your changes just in case you need them. Because sometimes, your "sometimes" is now!
    • 🚫 "git reset --hard".
    • ✅ "git stash -u"