SQL Server In-Memory OLTP can greatly improve the performance of transactional and other workloads. However, it is not suitable for all workloads, and it not a magic "go-fast" button. This session addresses when it is appropriate to use the technology and how to use it, from two different angles:
a) listing characteristics that make a workload suitable and those that are not so suitable for In-Memory OLTP
b) reviewing common application patterns and actual customer uses of In-Memory OLTP
Link to the video presentation: https://youtu.be/h111hyt5Ndk
Modern developers use virtualized "single use" development environments to reduce time tweaking servers, allowing more time developing. Teams share configurations to eliminate endless "works for me" debug loops, while rebuilding and/or setup is a simple command taking minutes, not hours or days. This intro talk will create a base for attendees to build from and investigate the various technologies like Vagrant, VirtualBox, Puppet, Containers, and Virtual PHP. If your development environment is not virtualized, catch up, it's what all the "cool kids" are doing.
Streaming Replication Made Easy in v9.3Sameer Kumar
PostgreSQL has an awesome feature of Streaming replication, which lets you create a replica without any archive. The feature has been further enchanced in v9.3.
SQL Server In-Memory OLTP can greatly improve the performance of transactional and other workloads. However, it is not suitable for all workloads, and it not a magic "go-fast" button. This session addresses when it is appropriate to use the technology and how to use it, from two different angles:
a) listing characteristics that make a workload suitable and those that are not so suitable for In-Memory OLTP
b) reviewing common application patterns and actual customer uses of In-Memory OLTP
Link to the video presentation: https://youtu.be/h111hyt5Ndk
Modern developers use virtualized "single use" development environments to reduce time tweaking servers, allowing more time developing. Teams share configurations to eliminate endless "works for me" debug loops, while rebuilding and/or setup is a simple command taking minutes, not hours or days. This intro talk will create a base for attendees to build from and investigate the various technologies like Vagrant, VirtualBox, Puppet, Containers, and Virtual PHP. If your development environment is not virtualized, catch up, it's what all the "cool kids" are doing.
Streaming Replication Made Easy in v9.3Sameer Kumar
PostgreSQL has an awesome feature of Streaming replication, which lets you create a replica without any archive. The feature has been further enchanced in v9.3.
This session will be an overview of highly available components that can be deployed with Puppet Enterprise. It will focus on some of the current Beta support in PuppetDB as well as tips and tricks from the professional services department. The session will cover field solutions ( both supported and unsupported ) that allow architectures to be designed that align with different levels of high availability across the services that support running puppet on agent nodes during an outage of your primary puppet infrastructure.
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Ortus Solutions, Corp
CommandBox has a lot of features out of the box so to speak, but it can also be extended via a modular architecture. We'll cover the top 5 modules you need to be using in order to increase your productivity and get the most out of CommandBox. Most of these you can install while you watch the session to start playing with.
La scalabilité des applications est une préoccupation importante. Beaucoup de pertes en scalabilité proviennent de code contenant des locks qui produisent une importante contention en cas de forte charge.
Dans cette présentation nous allons aborder différentes techniques (striping, copy-on-write, ring buffer, spinning, ...) qui vont nous permettre de réduire cette contention ou d'obtenir un code sans lock. Nous expliquerons aussi les concepts de Compare-And-Swap et de barrières mémoires.
The drivers team at MongoDB focused over the last year on conforming to common APIs and algorithms but we needed a way to validate our consistency. We therefore ended up building our own testing DSL using YAML and JSON, REST service, and individual test frameworks.
The presentation introduces tools and best practices that will help you introduce the SRE principles for PostgreSQL monitoring.
What to expect:
- An introduction to tools and best practices that will help you introduce SRE principles for PostgreSQL monitoring
- We define the four SRE “golden signals,” and explain how they’re used in PostgreSQL
- A relatively-detailed look at our software stack used for monitoring
- A look at high-level differences between traditional monitoring stacks and modern solutions
- An introduction to Prometheus and how it works with PostgreSQL
- Specific examples of Alertmanager rules for alerting
- A comprehensive walkthrough of Grafana dashboards
- Details on our logging pipeline, including our ELK stack and a few other Showmax specialties
LAS16-307: Benchmarking Schedutil in AndroidLinaro
LAS16-307: Benchmarking Schedutil in Android
Speakers: Steve Muckle
Date: September 28, 2016
★ Session Description ★
Being able to see the performance and power impacts of changes in a real world environment such as Android is a prerequisite to doing meaningful development on scheduler-guided frequency (or many other sensitive subsystems). The first half of this session will review setting up the tools to automate testing for performance and power in Android. The second half will cover the results of using these tests to compare the schedutil and interactive governors.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-307
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-307/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
PGConf APAC 2018 - High performance json postgre-sql vs. mongodbPGConf APAC
Speakers: Dominic Dwyer & Wei Shan Ang
This talk was presented in Percona Live Europe 2017. However, we did not have enough time to test against more scenario. We will be giving an updated talk with a more comprehensive tests and numbers. We hope to run it against citusDB and MongoRocks as well to provide a comprehensive comparison.
https://www.percona.com/live/e17/sessions/high-performance-json-postgresql-vs-mongodb
This session will be an overview of highly available components that can be deployed with Puppet Enterprise. It will focus on some of the current Beta support in PuppetDB as well as tips and tricks from the professional services department. The session will cover field solutions ( both supported and unsupported ) that allow architectures to be designed that align with different levels of high availability across the services that support running puppet on agent nodes during an outage of your primary puppet infrastructure.
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Ortus Solutions, Corp
CommandBox has a lot of features out of the box so to speak, but it can also be extended via a modular architecture. We'll cover the top 5 modules you need to be using in order to increase your productivity and get the most out of CommandBox. Most of these you can install while you watch the session to start playing with.
La scalabilité des applications est une préoccupation importante. Beaucoup de pertes en scalabilité proviennent de code contenant des locks qui produisent une importante contention en cas de forte charge.
Dans cette présentation nous allons aborder différentes techniques (striping, copy-on-write, ring buffer, spinning, ...) qui vont nous permettre de réduire cette contention ou d'obtenir un code sans lock. Nous expliquerons aussi les concepts de Compare-And-Swap et de barrières mémoires.
The drivers team at MongoDB focused over the last year on conforming to common APIs and algorithms but we needed a way to validate our consistency. We therefore ended up building our own testing DSL using YAML and JSON, REST service, and individual test frameworks.
The presentation introduces tools and best practices that will help you introduce the SRE principles for PostgreSQL monitoring.
What to expect:
- An introduction to tools and best practices that will help you introduce SRE principles for PostgreSQL monitoring
- We define the four SRE “golden signals,” and explain how they’re used in PostgreSQL
- A relatively-detailed look at our software stack used for monitoring
- A look at high-level differences between traditional monitoring stacks and modern solutions
- An introduction to Prometheus and how it works with PostgreSQL
- Specific examples of Alertmanager rules for alerting
- A comprehensive walkthrough of Grafana dashboards
- Details on our logging pipeline, including our ELK stack and a few other Showmax specialties
LAS16-307: Benchmarking Schedutil in AndroidLinaro
LAS16-307: Benchmarking Schedutil in Android
Speakers: Steve Muckle
Date: September 28, 2016
★ Session Description ★
Being able to see the performance and power impacts of changes in a real world environment such as Android is a prerequisite to doing meaningful development on scheduler-guided frequency (or many other sensitive subsystems). The first half of this session will review setting up the tools to automate testing for performance and power in Android. The second half will cover the results of using these tests to compare the schedutil and interactive governors.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-307
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-307/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
PGConf APAC 2018 - High performance json postgre-sql vs. mongodbPGConf APAC
Speakers: Dominic Dwyer & Wei Shan Ang
This talk was presented in Percona Live Europe 2017. However, we did not have enough time to test against more scenario. We will be giving an updated talk with a more comprehensive tests and numbers. We hope to run it against citusDB and MongoRocks as well to provide a comprehensive comparison.
https://www.percona.com/live/e17/sessions/high-performance-json-postgresql-vs-mongodb
Utopia Kingdoms scaling case. From 4 users to 50.000+Python Ireland
Describing the real life case of Utopia Kingdoms, an online game. The game had initially problems scaling on production environment and had to be greatly refactored to support large number of players. This includes use of caching, profiling, queuing system and the migration of database from Amazon SimpleDB to MongoDB.
Introduction to Gatling performance testing tool and how we used it for testing Zonky's REST API. Example of running distributed performance tests in AWS Fargate with real-time monitoring with Logstash/ElasticSearch/Kibana stack.
Eko10 workshop - OPEN SOURCE DATABASE MONITORINGPablo Garbossa
Most database products have their own auditing functionalities or plugins but they always involve overhead which means they end up having them turned off or with the bare minimum enabled.
In this workshop we will show how to get reliable logging for mysql and mongodb servers in a scalable and non intrusive way, its drawbacks and how we can build our own open source tools to achieve results similar to most commercial products.
Tools to sniff, process and act upon queries will be shared and we will show how simple is to set up and monitor a database environment so it can be replicated and grow horizontally. All the code needed will be published.
Most database products have their own auditing functionalities or plugins but they always involve overhead which means they end up having them turned off or with the bare minimum enabled.
In this workshop we will show how to get reliable logging for mysql and mongodb servers in a scalable and non intrusive way, its drawbacks and how we can build our own open source tools to achieve results similar to most commercial products.
Tools to sniff, process and act upon queries will be shared and we will show how simple is to set up and monitor a database environment so it can be replicated and grow horizontally. All the code needed will be published.
MySQL Time Machine by replicating into HBase - Slides from Percona Live Amste...Boško Devetak
At Booking.com we have complex MySQL installations, with very large tables in different servers. We’ve encountered the following question that we could not address with MySQL alone: How did some data/table look at a specific point in time?
Answering this question is needed for many things, from observing trends in data changes and deriving insight, to fixing data after problems. Sadly, mistakes happen, discovery of those is not always immediate, and fixing the data later is hard if you do not know how it looked at a specific point in time.
All of these become easy to solve if we have an easily accessible stream/history of data changes. However, having this is difficult because non-trivial problems need to be solved: dealing with schema changes, failover and establishing data quality guarantees.
MySQL Time Machine was made to solve these problems.
Josh Berkus
Most users know that PostgreSQL has a 23-year development history. But did you know that Postgres code is used for over a dozen other database systems? Thanks to our liberal licensing, many companies and open source projects over the years have taken the Postgres or PostgreSQL code, changed it, added things to it, and/or merged it into something else. Illustra, Truviso, Aster, Greenplum, and others have seen the value of Postgres not just as a database but as some darned good code they could use. We'll explore the lineage of these forks, and go into the details of some of the more interesting ones.
Managing your own PostgreSQL servers is sometimes a burden your business does not want. In this talk we will provide an overview of some of the public cloud offerings available for hosted PostgreSQL and discuss a number of strategies for migrating your databases with a minimum of downtime.
Defining Your Goal: Starting Your Own BusinessJoshua Drake
Joshua Drake will still go through the "business" steps of starting your own business, but will focus on the real decisions and sacrifices required that a pure business standpoint will not get into. Self improvement/discovery and focusing on your entrepreneurial nature will be the core theme.
Defining Your Goal: Starting Your Own BusinessJoshua Drake
Joshua Drake will still go through the "business" steps of starting your own business, but will focus on the real decisions and sacrifices required that a pure business standpoint will not get into. Self improvement/discovery and focusing on your entrepreneurial nature will be the core theme.
A 45 minute talk discussing various in production performance enhancements for PostgreSQL. We touch on hard drives including SSD and RAID. We also discuss Memory, PostgreSQL settings and various other topics such as DASvsNASvsSAN.
Quantitative Data AnalysisReliability Analysis (Cronbach Alpha) Common Method...2023240532
Quantitative data Analysis
Overview
Reliability Analysis (Cronbach Alpha)
Common Method Bias (Harman Single Factor Test)
Frequency Analysis (Demographic)
Descriptive Analysis
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Subhajit Sahu
Abstract — Levelwise PageRank is an alternative method of PageRank computation which decomposes the input graph into a directed acyclic block-graph of strongly connected components, and processes them in topological order, one level at a time. This enables calculation for ranks in a distributed fashion without per-iteration communication, unlike the standard method where all vertices are processed in each iteration. It however comes with a precondition of the absence of dead ends in the input graph. Here, the native non-distributed performance of Levelwise PageRank was compared against Monolithic PageRank on a CPU as well as a GPU. To ensure a fair comparison, Monolithic PageRank was also performed on a graph where vertices were split by components. Results indicate that Levelwise PageRank is about as fast as Monolithic PageRank on the CPU, but quite a bit slower on the GPU. Slowdown on the GPU is likely caused by a large submission of small workloads, and expected to be non-issue when the computation is performed on massive graphs.
06-04-2024 - NYC Tech Week - Discussion on Vector Databases, Unstructured Data and AI
Round table discussion of vector databases, unstructured data, ai, big data, real-time, robots and Milvus.
A lively discussion with NJ Gen AI Meetup Lead, Prasad and Procure.FYI's Co-Found
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...John Andrews
SlideShare Description for "Chatty Kathy - UNC Bootcamp Final Project Presentation"
Title: Chatty Kathy: Enhancing Physical Activity Among Older Adults
Description:
Discover how Chatty Kathy, an innovative project developed at the UNC Bootcamp, aims to tackle the challenge of low physical activity among older adults. Our AI-driven solution uses peer interaction to boost and sustain exercise levels, significantly improving health outcomes. This presentation covers our problem statement, the rationale behind Chatty Kathy, synthetic data and persona creation, model performance metrics, a visual demonstration of the project, and potential future developments. Join us for an insightful Q&A session to explore the potential of this groundbreaking project.
Project Team: Jay Requarth, Jana Avery, John Andrews, Dr. Dick Davis II, Nee Buntoum, Nam Yeongjin & Mat Nicholas
Adjusting OpenMP PageRank : SHORT REPORT / NOTESSubhajit Sahu
For massive graphs that fit in RAM, but not in GPU memory, it is possible to take
advantage of a shared memory system with multiple CPUs, each with multiple cores, to
accelerate pagerank computation. If the NUMA architecture of the system is properly taken
into account with good vertex partitioning, the speedup can be significant. To take steps in
this direction, experiments are conducted to implement pagerank in OpenMP using two
different approaches, uniform and hybrid. The uniform approach runs all primitives required
for pagerank in OpenMP mode (with multiple threads). On the other hand, the hybrid
approach runs certain primitives in sequential mode (i.e., sumAt, multiply).
Adjusting primitives for graph : SHORT REPORT / NOTESSubhajit Sahu
Graph algorithms, like PageRank Compressed Sparse Row (CSR) is an adjacency-list based graph representation that is
Multiply with different modes (map)
1. Performance of sequential execution based vs OpenMP based vector multiply.
2. Comparing various launch configs for CUDA based vector multiply.
Sum with different storage types (reduce)
1. Performance of vector element sum using float vs bfloat16 as the storage type.
Sum with different modes (reduce)
1. Performance of sequential execution based vs OpenMP based vector element sum.
2. Performance of memcpy vs in-place based CUDA based vector element sum.
3. Comparing various launch configs for CUDA based vector element sum (memcpy).
4. Comparing various launch configs for CUDA based vector element sum (in-place).
Sum with in-place strategies of CUDA mode (reduce)
1. Comparing various launch configs for CUDA based vector element sum (in-place).
The Building Blocks of QuestDB, a Time Series Databasejavier ramirez
Talk Delivered at Valencia Codes Meetup 2024-06.
Traditionally, databases have treated timestamps just as another data type. However, when performing real-time analytics, timestamps should be first class citizens and we need rich time semantics to get the most out of our data. We also need to deal with ever growing datasets while keeping performant, which is as fun as it sounds.
It is no wonder time-series databases are now more popular than ever before. Join me in this session to learn about the internal architecture and building blocks of QuestDB, an open source time-series database designed for speed. We will also review a history of some of the changes we have gone over the past two years to deal with late and unordered data, non-blocking writes, read-replicas, or faster batch ingestion.
2. Who Am I
● @linuxhiker
● +JoshuaDrakeLinuxHiker
● jd@commandprompt.com
● Lead Consultant – Command Prompt, Inc.
● Director – Software in the Public Interest
● President – United States PostgreSQL
3. Rated: Pg-13
● I do this for fun. This is not my day job.
● East Coast from the West Coast
● Your ego is not my concern
● To to take offense is to not be comfortable in oneself.
● Hopefully you laugh and learn
4. Help control license costs
If you are selling licenses to software, you are
not helping control license costs.
6. What are we talking about
● What is PostgreSQL?
● Community Structure
● Comparison to other databases
● Awesome PostgreSQL stuff + 9.4 features
● WTH were they thinking!
● Guaranteed not to be in order
7. What is PostgreSQL?
● The oldest of the open source databases (derived from
University Ingres 1974)
● The most advanced Open Source (possibly of closed
too) database
● A full ACID compliant, relational, object-relational,
document, modern, scalable database.
9. Comparison to other databases
● Licensing
● Community
● No single point of failure
● Feature parity with all databases, more
advanced than some
● Best of both worlds, relational or document
11. Community
● Large
● Vibrant
● Active
● All walks of life
● Driven by the ecosystem, not a company
12. No single point of failure
● Can not be bought
● Can not go out of business
● Can not be co-opted
● Many known and qualified support/services
companies (CMD, PgExperts, OmniTI,
BullInfoSys, Consistent State, 2nd Quadrant)
13. Feature Parity
● We have reached a point of... oh PostgreSQL
● Like MSSQL, Oracle, Sybase, just another SQL
database but with neat stuff
● No longer a fringe product (thanks to Oracle)
14. Standard Features
● SQL Compliance
● Partitioning
● Replication
● Tablespaces
● ACID
15. AWESOME Stuff
BEGIN;
ALTER TABLE foo ADD COLUMN bar text;
d foo
COMMIT/ROLLBACK;
(Mysql can't do this)
16. Craziness
BEGIN;
CREATE TABLE foo (id serial, test text);
CREATE TABLE bar (a foo);
insert into bar values (row(1,'this is a test'));
postgres=# select * from bar;
a
----------------------
(1,"this is a test")
– Say what?
17. It gets better
postgres=# select (a).id from bar;
id
----
1
20. JSON
● Added in 9.2
● Input is validated
● Stored as text representation
– Slower on retrieval due to per row parse (per value?)
● Preserves key order and duplicates
● Mature support in 9.3
– Better Functions
– Operators
● Advanced support in 9.4
– Type building functions
● About 15% storage overhead
● Expression only indexes (WHERE foo)
21. When to use JSON
● Document storage
● Duplicate preservation
● Key order preservation
22. JSONB
● 9.4+
● Full JSON Implementation
● Stored as binary (unlike JSON)
● Works with all JSON operators
● HSTORE-style query operators
● No key order
● No duplicate preservation
● Faster access
● GIN Indexing (and expression), for containment ops use json_path_ops
● About 35% storage overhead
● Much faster than JSON for retrieval (slower than HSTORE)
23. JSONB Features
● Equality operator
– SELECT '{“a”: 1, “b”: 2}'::jsonb = '{“b”:2, “a”:1}'::jsonb
● Containment operator (Softserve)
– SELECT '{“a”: 1, “b”: 2}'::jsonb @> {“b”:2}::jsonb
● Existence
– SELECT '{“a”: 1, “b”: 2}'::jsonb ? 'b';
● Nested operators (softserve works as well)
– SELECT '{“a”: [1,2]}'::jsonb = '{“a”:[1,2]}'::jsonb
● Existence (any) - ?|
● Existence (all) - ?&
25. Logical Decoding
PostgreSQL provides infrastructure to stream the modifications
performed via SQL to external consumers.
The format in which those changes are streamed is determined by
the output plugin used.
Every output plugin has access to each individual new row produced
by INSERT and the new row version created by UPDATE. Availability
of old row versions for UPDATE and DELETE depends on the
configured REPLICA IDENTITY.
It is also possible to write additional methods of consuming the
output of a replication slot without modifying core code.
(http://www.postgresql.org/docs/9.4/static/logicaldecoding.html)
26. What does Logical Decoding Mean?
● You now have backend access to
INSERT/UPDATE/DELETE mechanisms.
● Is used to implement new features such as:
– BDR: https://wiki.postgresql.org/wiki/BDR_User_Guide
– Auditing
– Walbouncer:
http://www.cybertec.at/en/products/walbouncer-enterprise-grade-
partial-replication/
27. BDR
● Multi-Master without triggers! (Sorry Bucardo)
● Uses LLSR (From Logical Decoding)
● Supports distributed Sequences
● Supports synchronisation functions
● Supports conflict handlers
● Highly performant
● Eventually consistent
● Up to 48 nodes
28. WalBouncer
● Requires 9.4
● Allows partial replication to remote replicas
– Each replica can have a different data set
● Filters based on WAL
● Single master to many slave
● Can be disconcerting to the novice
● http://www.cybertec.at/postgresql_produkte/walbouncer/
29. Other 9.4 Stuff
● GIN indexes now faster and smaller
● pg_prewarm
● ALTER SYSTEM
● Concurrent materialized view refresh
● Update Views with different columns
30. ALTER SYSTEM
● Commands such as:
– ALTER SYSTEM SET log_min_duration_statement
= '5s';
Are now saved to postgresql.auto.conf which is
always read last and saved between restarts.
31. Better updateable views
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
product_name TEXT NOT NULL,
quantity INT,
reserved INT DEFAULT 0);
CREATE VIEW products_view AS
SELECT product_id,
product_name,
quantity,
(quantity - reserved) AS available
FROM products
WHERE quantity IS NOT NULL;