SlideShare a Scribd company logo
1 of 22
Download to read offline
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 1/22
rqlite
Replicating SQLite using Raft consensus
Philip O'Toole
GoSF April 20th 2016
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 2/22
About me
Director of Data Platform Engineering at Percolate.
Previously a full-time core developer with In uxDB.
Led the team that built Loggly's 2nd generation indexing and search platform.
Big fan of Go, databases, and distributed systems.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 3/22
About rqlite
rqlite is a distributed system, which fully replicates a SQLite database using the Raft
consensus protocol.
You can nd the source at github.com/otoolep/rqlite(https://github.com/otoolep/rqlite).
The current release is v2.2.1.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 4/22
Why?
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 5/22
Why replicate SQLite?
Rock solid relational database, within a single C source le.
With replication, you get reliability.
Easy installation and deployment, thanks to Go.
Lightweight operation.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 6/22
What is Raft?
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 7/22
Raft is a distributed consensus protocol.
Such protocols are used to ensure multiple di erent nodes -- servers -- always agree
on a given set of values.
It allows us to build a cluster of servers, such that for a quorum of servers within the
cluster, each of those servers has the same state.
Within rqlite that state is a SQLite database.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 8/22
rqlite architecture
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 9/22
A rqlite node
┌──────────────┐ ┌────┐
Clients Other
└──────────────┘ │ Nodes │
│ ─────
│ ▲
│ │
│ │
▼ ▼
┌─────────────────────────────┐┌───────────────┐
│ HTTP(S) ││ TCP │
└─────────────────────────────┘└───────────────┘
┌───────────────────────────────────────────────┐
│ Raft(hashicorp/raft) │
└───────────────────────────────────────────────┘
┌───────────────────────────────────────────────┐
│ matt-n/go-sqlite3 │
└───────────────────────────────────────────────┘
┌───────────────────────────────────────────────┐
│ sqlite3.c │
└───────────────────────────────────────────────┘
All repositories hosted on Github
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 10/22
rqlite clusters
rqlite clusters are most practical when 3, 5, or 7 nodes in size.
Even numbers don't get you anything, and larger than 9 becomes unwieldy.
rqlite is not suitable for replicating massive clusters, such as all the SQLite databases
on a smartphone network.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 11/22
Hashicorp Raft
Raft implementation from Hashicorp, available at github.com/hashicorp/raft
(https://github.com/hashicorp/raft)
Used by Consul, Nomad, and In uxDB.
Another well known Raft implementation has been written by CoreOS, available at
github.com/coreos/etcd/tree/master/raft(https://github.com/coreos/etcd/tree/master/raft)
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 12/22
Integrating with Hashicorp Raft
Integrating with the Raft consensus module involves implementing ve key functions.
Apply(l*raft.Log)interface{} //Applyacommittedentrytothestatemachine
Snapshot()(raft.FSMSnapshot,error)//Returnsasnapshotofthestatemachine
Restore(rcio.ReadCloser)error //Createstatemachinefromsnapshot
Persist(sinkraft.SnapshotSink) //Writesnapshottopersistentstorage
Release() //Snapshotrelease.Usuallyano-op
A reference use of Hashicorp's Raft implementation is available at
github.com/otoolep/hraftd(https://github.com/otoolep/hraftd)
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 13/22
Demo
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 14/22
Lessons learned
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 15/22
"Plan to throw one away. You will, anyhow."
rqlite v1.0 su ered from many shortcomings.
Poor API.
Used the generic Go SQL interfaces.
Non-idiomatic Go code.
go-raft as the consensus module, which was nearing its end-of-life.
But v1.0 was still used to build github.com/openmarket/openmarket
(https://github.com/openmarket/openmarket), a bitcoin-based marketplace!
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 16/22
rqlite v2.2.1
Idiomatic Go code.
Much better API, thanks to experience with In uxDB.
Limited use of 3rd party libraries.
Good use of interfaces, which allows better testing.
Direct use of the Go SQLite package.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 17/22
Better code means better features
Read consistency levels: strong, weak, and none.
Hot backups.
In-memory database support.
User-level permissioning.
There is now a Python driver available at github.com/zmedico/pyrqlite
(https://github.com/zmedico/pyrqlite)
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 18/22
Next steps
rqlite is software, and software is never nished.
Proper dependency management.
A fully-featured CLI.
Leader redirection.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 19/22
What rqlite can do
With it you've got a lightweight and reliable distributed store for relational data.
You could use rqlite as part of a larger system, as a central store for some critical
relational data, without having to run a heavier solution like MySQL.
rqlite might also be an e ective way to provide a small number of SQLite read-replicas.
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 20/22
References
github.com/otoolep/rqlite(https://github.com/otoolep/rqlite)
github.com/hashicorp/raft(https://github.com/hashicorp/raft)
github.com/mattn/go-sqlite3(https://github.com/mattn/go-sqlite3)
github.com/otoolep/hraftd(https://github.com/otoolep/hraftd)
github.com/zmedico/pyrqlite(https://github.com/zmedico/pyrqlite)
github.com/goraft/raft(https://github.com/goraft/raft)
github.com/openmarket/openmarket(https://github.com/openmarket/openmarket)
raft.github.io/(https://raft.github.io/)
thesecretlivesofdata.com/raft/(http://thesecretlivesofdata.com/raft/)
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 21/22
Thank you
Philip O'Toole
GoSF April 20th 2016
http://www.philipotoole.com/(http://www.philipotoole.com/)
@general_order24(http://twitter.com/general_order24)
4/20/2016 rqlite
http://127.0.0.1:3999/rqlite.slide#17 22/22

More Related Content

What's hot

Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentationeraz
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCAFeza BUZLUCA
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Suhyeon Jo
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
안드로이드 스터디 Jni 발표 자료 Rev05 송형주
안드로이드 스터디 Jni 발표 자료 Rev05 송형주안드로이드 스터디 Jni 발표 자료 Rev05 송형주
안드로이드 스터디 Jni 발표 자료 Rev05 송형주iamhjoo (송형주)
 
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxChrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxEunsu Kim
 
Under the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureUnder the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureScyllaDB
 
ハイパースレッディングの並列化への影響
ハイパースレッディングの並列化への影響ハイパースレッディングの並列化への影響
ハイパースレッディングの並列化への影響Hiroshi Watanabe
 
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi HonmaInsight Technology, Inc.
 
LLAP: Building Cloud First BI
LLAP: Building Cloud First BILLAP: Building Cloud First BI
LLAP: Building Cloud First BIDataWorks Summit
 
seven-ways-to-run-flink-on-aws.pdf
seven-ways-to-run-flink-on-aws.pdfseven-ways-to-run-flink-on-aws.pdf
seven-ways-to-run-flink-on-aws.pdfSergioBruno21
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
[IBM 서버] 노후서버는 왜 교체해야 하는가
[IBM 서버] 노후서버는 왜 교체해야 하는가[IBM 서버] 노후서버는 왜 교체해야 하는가
[IBM 서버] 노후서버는 왜 교체해야 하는가(Joe), Sanghun Kim
 
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기Jiho Choi
 
서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)_ce
 
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)Youngil Cho
 

What's hot (20)

Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentation
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCA
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
안드로이드 스터디 Jni 발표 자료 Rev05 송형주
안드로이드 스터디 Jni 발표 자료 Rev05 송형주안드로이드 스터디 Jni 발표 자료 Rev05 송형주
안드로이드 스터디 Jni 발표 자료 Rev05 송형주
 
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptxChrome DevTools로 JS 메모리릭 디버깅하기.pptx
Chrome DevTools로 JS 메모리릭 디버깅하기.pptx
 
Under the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database ArchitectureUnder the Hood of a Shard-per-Core Database Architecture
Under the Hood of a Shard-per-Core Database Architecture
 
ハイパースレッディングの並列化への影響
ハイパースレッディングの並列化への影響ハイパースレッディングの並列化への影響
ハイパースレッディングの並列化への影響
 
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma
[A15] SQL Server Trouble Shooting Tips from Support Team by Takashi Honma
 
LLAP: Building Cloud First BI
LLAP: Building Cloud First BILLAP: Building Cloud First BI
LLAP: Building Cloud First BI
 
seven-ways-to-run-flink-on-aws.pdf
seven-ways-to-run-flink-on-aws.pdfseven-ways-to-run-flink-on-aws.pdf
seven-ways-to-run-flink-on-aws.pdf
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
 
[IBM 서버] 노후서버는 왜 교체해야 하는가
[IBM 서버] 노후서버는 왜 교체해야 하는가[IBM 서버] 노후서버는 왜 교체해야 하는가
[IBM 서버] 노후서버는 왜 교체해야 하는가
 
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기
 
서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)서비스중인 게임 DB 설계 (쿠키런 편)
서비스중인 게임 DB 설계 (쿠키런 편)
 
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
 

Similar to rqlite - replicating SQLite via Raft consensu

Mastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiMastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiTeam Hypriot
 
From Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHPFrom Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHPAlbert Chen
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Phil Estes
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIYoni Davidson
 
Ros with docker 20151107
Ros with docker  20151107Ros with docker  20151107
Ros with docker 20151107Sejin Park
 
Spl in the wild - zendcon2012
Spl in the wild - zendcon2012Spl in the wild - zendcon2012
Spl in the wild - zendcon2012Elizabeth Smith
 
Open Ha Cluster
Open Ha ClusterOpen Ha Cluster
Open Ha Clustermarx wang
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareSebastiano Merlino (eTr)
 
BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話Kohei Tokunaga
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - IntroductionErik Lagerway
 
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and ScalaWriting highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and Scalajfarcand
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsAndy Wang
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Red Hat Developers
 
Não reinvente a roda! Desenvolvendo com bibliotecas Android
Não reinvente a roda! Desenvolvendo com bibliotecas AndroidNão reinvente a roda! Desenvolvendo com bibliotecas Android
Não reinvente a roda! Desenvolvendo com bibliotecas AndroidVítor Bruno de Almeida
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Developmentriround
 

Similar to rqlite - replicating SQLite via Raft consensu (20)

Mastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry PiMastering Docker on a Raspberry Pi
Mastering Docker on a Raspberry Pi
 
From Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHPFrom Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHP
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018
 
Castoro / RubyKaigi2010
Castoro / RubyKaigi2010Castoro / RubyKaigi2010
Castoro / RubyKaigi2010
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
 
App container rkt
App container rktApp container rkt
App container rkt
 
Ros with docker 20151107
Ros with docker  20151107Ros with docker  20151107
Ros with docker 20151107
 
Spl in the wild - zendcon2012
Spl in the wild - zendcon2012Spl in the wild - zendcon2012
Spl in the wild - zendcon2012
 
Spl in the wild
Spl in the wildSpl in the wild
Spl in the wild
 
Open Ha Cluster
Open Ha ClusterOpen Ha Cluster
Open Ha Cluster
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
 
BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話
 
ORTC Library - Introduction
ORTC Library - IntroductionORTC Library - Introduction
ORTC Library - Introduction
 
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and ScalaWriting highly scalable WebSocket using the Atmosphere Framework and Scala
Writing highly scalable WebSocket using the Atmosphere Framework and Scala
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gems
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!
 
6202942
62029426202942
6202942
 
Não reinvente a roda! Desenvolvendo com bibliotecas Android
Não reinvente a roda! Desenvolvendo com bibliotecas AndroidNão reinvente a roda! Desenvolvendo com bibliotecas Android
Não reinvente a roda! Desenvolvendo com bibliotecas Android
 
My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Development
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

rqlite - replicating SQLite via Raft consensu