SlideShare a Scribd company logo
SASI, Cassandra on the full text search ride
DuyHai DOAN – Apache Cassandra evangelist
@doanduyhai
1 5 minutes introduction to Apache Cassandra™
2 SASI introduction
3 SASI cluster-wide
4 SASI local read/write path
5 Query planner
6 Some benchmarks
7 Take away
2
@doanduyhai
5 minutes introduction to Apache
Cassandra™
@doanduyhai
The tokens
4
Random hash of #partition à token = hash(#p)
Hash: ] –x, x ]
hash range: 264 values
x = 264/2
C*
C*
C*
C*
C* C*
C* C*
@doanduyhai
Token ranges
5
A: −x,−
3x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
B: −
3x
4
,−
2x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
C: −
2x
4
,−
x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
D: −
x
4
,0
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
E: 0,
x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
F:
x
4
,
2x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
G:
2x
4
,
3x
4
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
H :
3x
4
,x
⎤
⎦
⎥
⎥
⎤
⎦
⎥
⎥
H
A
E
D
B C
G F
@doanduyhai
Distributed tables
6
H
A
E
D
B C
G F
user_id1
user_id2
user_id3
user_id4
user_id5
CREATE TABLE users(
user_id int,
…,
PRIMARY KEY(user_id)
),
@doanduyhai
Distributed tables
7
H
A
E
D
B C
G F
user_id1
user_id2
user_id3
user_id4
user_id5
@doanduyhai
Coordinator node
8
Responsible for handling requests (read/write)
Every node can be coordinator
• masterless
• no SPOF
• proxy role
H
A
E
D
B C
G F
coordinator
request
1
2 3
@doanduyhai9
Q & A
! "
@doanduyhai
SASI introduction
@doanduyhai
What is SASI ?
11
•  SSTable-Attached Secondary Index à new 2nd index impl that follows
SSTable life-cycle
•  Objective: provide more performant & capable 2nd index
@doanduyhai
Who created it ?
12
Open-source contribution by an engineers team
@doanduyhai
Why is it better than native 2nd index ?
13
•  follow SSTable life-cycle (flush, compaction, rebuild …) à more optimized
•  new data-strutures
•  range query (<, ≤, >, ≥) possible
•  full text search options
@doanduyhai14
Demo
@doanduyhai
SASI cluster-wide
@doanduyhai
Distributed index
16
On cluster level, SASI works exactly like native 2nd index
H
A
E
D
B C
G F
UK user1 user102 … user493
US user54 user483 … user938
UK user87 user176 … user987
UK user17 user409 … user787
@doanduyhai
Distributed search algorithm
17
H
A
E
D
B C
G F
coordinator
1st round
Concurrency factor = 1
@doanduyhai
Distributed search algorithm
18
H
A
E
D
B C
G F
coordinator
Not enough
results ?
@doanduyhai
Distributed search algorithm
19
H
A
E
D
B C
G F
coordinator
2nd round
Concurrency factor = 2
@doanduyhai
Distributed search algorithm
20
H
A
E
D
B C
G F
coordinator
Still not enough
results ?
@doanduyhai
Distributed search algorithm
21
H
A
E
D
B C
G F
coordinator
3rd round
Concurrency factor = 4
@doanduyhai
Concurrency factor formula
22
•  more details at:
http://www.planetcassandra.org/blog/cassandra-native-secondary-index-
deep-dive/
@doanduyhai
Caveat 1: non restrictive filters
23
H
A
E
D
B C
G F
coordinator
Hit all
nodes
eventually
L
@doanduyhai
Caveat 1 solution : always use LIMIT
24
H
A
E
D
B C
G F
coordinator
SELECT *
FROM …
WHERE ...
LIMIT 1000
@doanduyhai
Caveat 2: 1-to-1 index (user_email)
25
H
A
E
D
B C
G F
coordinator
Not found WHERE user_email = ‘xxx'
@doanduyhai
Caveat 2: 1-to-1 index (user_email)
26
H
A
E
D
B C
G F
coordinator
Still no result
WHERE user_email = ‘xxx'
@doanduyhai
Caveat 2: 1-to-1 index (user_email)
27
H
A
E
D
B C
G F
coordinator
At best 1 user found
At worst 0 user found
WHERE user_email = ‘xxx'
@doanduyhai
Caveat 2 solution: materialized views
28
For 1-to-1 index/relationship, use materialized views instead
CREATE MATERIALIZED VIEW user_by_email AS
SELECT * FROM users
WHERE user_id IS NOT NULL and user_email IS NOT NULL
PRIMARY KEY (user_email, user_id)
But range queries ( <, >, ≤, ≥) not possible …
@doanduyhai
Caveat 3: fetch all rows for analytics use-case
29
H
A
E
D
B C
G F
coordinator
Client
@doanduyhai
Caveat 3 solution: use co-located Spark
30
H
A
E
D
B C
G F
Local index filtering in Cassandra
Aggregation in Spark
Local index query
@doanduyhai
SASI local read/write path
@doanduyhai
SASI Life-cycle: in-memory
32
Commit log1
. . .
1
Commit log2
Commit logn
Memory
. . .
MemTable
Table1
MemTable
Table2
MemTable
TableN
2
Index
MemTable1
Index
MemTable2
. . .
Index
MemTableN
3
ACK the client
@doanduyhai
Local write path data structures
33
Index mode, data type Data structure Usage
PREFIX, text Guava ConcurrentRadixTree name LIKE 'John%'
CONTAINS, text Guava ConcurrentSuffixTree
name LIKE ’%John%'
name LIKE ’%ny’
PREFIX, other JDK ConcurrentSkipListSet
age = 20
age >= 20 AND age <= 30
SPARSE, other JDK ConcurrentSkipListSet
age = 20
age >= 20 AND age <= 30
suitable for 1-to-N index with N ≤ 5
@doanduyhai
SASI Life-cycle: flush to SSTable
34
Commit log1
. . .
1
Commit log2
Commit logn
Memory
Table1
SStable1
Table2 Table3
SStable2 SStable3
4
OnDiskIndex1
OnDiskIndex2
OnDiskIndex3
@doanduyhai
SASI Life-cycle: compaction
35
SSTable1 SSTable2 SSTable3
New SSTable
OnDiskIndex1 OnDiskIndex2 OnDiskIndex3
New OnDiskIndex
@doanduyhai
Local write path summary
36
Index files are built
•  on memtable flush
•  on compaction flush
To avoid OOM, index files are split into chunk of
•  1Gb for memtable flush
•  max_compaction_flush_memory_in_mb for compaction flush
à consequences: SASI has impact on write bandwidth (CPU & disk I/O)
@doanduyhai
Local read path
37
•  first, optimize query using Query Planer (see later)
•  then load chunks (4k) of index files from disk into memory
•  perform binary search to find the indexed value(s)
•  retrieve the corresponding partition keys and push them into the Partition
Key Cache
à Yes, currently SASI only keep partition key(s) so on wide partition it’s not very
optimized ...
@doanduyhai
OnDiskIndex files
38
SStable1
SStable2
user_id4 FR user_id1 US user_id5 FR
user_id3 UK user_id2 DE
OnDiskIndex1
FR US
OnDiskIndex2
UK DE
B+Tree-like
data structures
@doanduyhai
OnDiskIndex Layout
39
Header
Block
Data Block
Pointer Block
Data Block
Meta
Pointer
Block Meta
Level Index
Offset
4k Multiple of 4k
Multiple of 4k
Levels
Count
Meta Data Info
@doanduyhai
Header Block Layout
40
Descriptor
Version
Header Block layout
variable
Term
Size
short
Index
Mode
Min
Term
Max
Term
Min
Pk
Max
Pk
Has
Partial
short short short short variable byte
@doanduyhai
OnDiskIndex Layout
41
Header
Block
Data Block
Pointer Block
Data Block
Meta
Pointer
Block Meta
Level Index
Offset
4k Multiple of 4k
Multiple of 4k
Levels
Count
Meta Data Info
@doanduyhai
Data Block layout
42
Terms Count
4k
Offset Array: [0, 10, 22, …] Term Block TokenTree Block
4k
Terms Count Offset Array: [0, 23, 35, …] Term Block TokenTree Block
Terms Count Offset Array: [0, 17, 34, …] Term Block TokenTree Block
Terms Count Offset Array: [0, 12, 28, …] Term Block TokenTree Block
…
Padding
Padding
Padding
Padding
Padding
Padding
Padding
Padding
@doanduyhai
OnDiskIndex Layout
43
Header
Block
Data Block
Pointer Block
Data Block
Meta
Pointer
Block Meta
Level Index
Offset
4k Multiple of 4k
Multiple of 4k
Levels
Count
Meta Data Info
@doanduyhai
Pointer Block building
44
Data Block1
Pointer Block1
4k
Data Block2 Data BlockN
…
LastTerm1 LastTerm2 LastTermN…
Pointer Block2
…
4k
Pointer BlockN
Pointer BlockN+1
LastTermM LastTermM+1 … LastTermO
Pointer BlockN+2
…
Root Pointer Block
Pointer Level 1
Pointer Level 2
Pointer Root
Level
Data Level
@doanduyhai
Binary search using OnDiskIndex files
45
Data Block1 Data Block2 Data BlockN
Pointer Block Pointer Block …
Root Pointer Block
Pointer Level 2
Pointer Level 3
Pointer Root Level
Data Level
Pointer Block
Pointer Block Pointer Block Pointer Block…
Pointer Block Pointer Block Pointer Block… Pointer Level 1
Data Block3 …
@doanduyhai
Term Block Binary Search
46
Term1 Term50 Term100
val < Term100 ?
Term25 Term75
Term50 Term75 Term100
val > Term50 ?
Term75Term50 Term63
val < Term75 ?
…
Term57
val = Term57 ?
@doanduyhai
Query Planner
@doanduyhai
Query planner
48
•  build predicates tree
•  predicates push-down & re-ordering
•  predicate fusions for != operator
@doanduyhai
Query optimization example
49
WHERE age < 100 AND fname LIKE 'p%' AND fname != 'pa%' AND age > 21
@doanduyhai
Query optimization example
50
AND is associative
and commutative
@doanduyhai
Query optimization example
51
!= transformed to
exclusion on range scan
@doanduyhai
Query optimization example
52
AND is associative
and commutative
@doanduyhai
Some benchmarks
@doanduyhai
Hardware specs
13 bare-metal machines
• 6 CPU HT (12 vcores)
• 64Gb RAM
• 4 SSDs in RAID0 for a total of 1.5Tb
Data set
• 13 billions of rows
• 1 numerical index with 36 distinct values
• 2 text index with 7 distinct values
• 1 text index with 3 distinct values
54
@doanduyhai
Benchmark results
Full table scan using co-located Spark (no LIMIT)
55
Predicate count Fetched rows Query time in sec
1 36 109 986 609
2 2 781 492 330
3 1 044 547 372
4 360 334 116
@doanduyhai
Benchmark results
Full table scan using co-located Spark (no LIMIT)
56
Predicate count Fetched rows Query time in sec
1 36 109 986 609
2 2 781 492 330
3 1 044 547 372
4 360 334 116
@doanduyhai
Benchmark results
Beware of disk space usage for full text search !!!
Table albums with ≈ 110 000 records, 6.8Mb data size
57
@doanduyhai
Take Away
@doanduyhai
SASI vs search engines
SASI vs Solr/ElasticSearch ?
•  Cassandra is not a search engine !!! (database = durability)
•  always slower because 2 passes (SASI index read + original Cassandra data)
•  no scoring
•  no ordering (ORDER BY)
•  no grouping (GROUP BY) à Apache Spark for analytics
If you don’t need the above features, SASI is for you!
59
@doanduyhai
SASI sweet spots
SASI is a relevant choice if
•  you need multi criteria search and you don't need ordering/grouping/scoring
•  you mostly need 100 to 10000 of rows for your search queries
•  you always know the partition keys of the rows to be searched for (this one applies to
native secondary index too)
•  you want to index static columns (SASI has no penalty since it indexes the whole
partition)
60
@doanduyhai
SASI blind spots
SASI is a poor choice if
•  you have strong SLA on search latency, for example few millisecs requirement
•  ordering of the search results is important for you
61
@doanduyhai62
Q & A
! "
@doanduyhai63
Thank You
@doanduyhai
duy_hai.doan@datastax.com
https://academy.datastax.com/

More Related Content

PDF
Spark Cassandra 2016
Duyhai Doan
 
PDF
Cassandra introduction 2016
Duyhai Doan
 
PDF
Cassandra introduction 2016
Duyhai Doan
 
PDF
Fast track to getting started with DSE Max @ ING
Duyhai Doan
 
PDF
Spark cassandra integration 2016
Duyhai Doan
 
PDF
Sasi, cassandra on full text search ride
Duyhai Doan
 
PDF
Datastax day 2016 introduction to apache cassandra
Duyhai Doan
 
PDF
Cassandra and Spark, closing the gap between no sql and analytics codemotio...
Duyhai Doan
 
Spark Cassandra 2016
Duyhai Doan
 
Cassandra introduction 2016
Duyhai Doan
 
Cassandra introduction 2016
Duyhai Doan
 
Fast track to getting started with DSE Max @ ING
Duyhai Doan
 
Spark cassandra integration 2016
Duyhai Doan
 
Sasi, cassandra on full text search ride
Duyhai Doan
 
Datastax day 2016 introduction to apache cassandra
Duyhai Doan
 
Cassandra and Spark, closing the gap between no sql and analytics codemotio...
Duyhai Doan
 

What's hot (20)

PDF
Cassandra 3 new features 2016
Duyhai Doan
 
PDF
Big data 101 for beginners devoxxpl
Duyhai Doan
 
PDF
Apache cassandra in 2016
Duyhai Doan
 
PDF
Big data 101 for beginners riga dev days
Duyhai Doan
 
PDF
Datastax enterprise presentation
Duyhai Doan
 
PDF
Cassandra nice use cases and worst anti patterns no sql-matters barcelona
Duyhai Doan
 
PDF
Spark cassandra integration, theory and practice
Duyhai Doan
 
PDF
Real time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Duyhai Doan
 
PDF
Spark cassandra connector.API, Best Practices and Use-Cases
Duyhai Doan
 
PDF
Datastax day 2016 : Cassandra data modeling basics
Duyhai Doan
 
PDF
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
StampedeCon
 
PDF
Spark Cassandra Connector Dataframes
Russell Spitzer
 
PDF
Apache Spark and DataStax Enablement
Vincent Poncet
 
PDF
Spark Cassandra Connector: Past, Present, and Future
Russell Spitzer
 
PDF
Apache Spark - Loading & Saving data | Big Data Hadoop Spark Tutorial | Cloud...
CloudxLab
 
PDF
User Defined Aggregation in Apache Spark: A Love Story
Databricks
 
PDF
Apache Spark - Dataframes & Spark SQL - Part 1 | Big Data Hadoop Spark Tutori...
CloudxLab
 
PDF
Zero to Streaming: Spark and Cassandra
Russell Spitzer
 
PDF
Big data analytics with Spark & Cassandra
Matthias Niehoff
 
PDF
DataSource V2 and Cassandra – A Whole New World
Databricks
 
Cassandra 3 new features 2016
Duyhai Doan
 
Big data 101 for beginners devoxxpl
Duyhai Doan
 
Apache cassandra in 2016
Duyhai Doan
 
Big data 101 for beginners riga dev days
Duyhai Doan
 
Datastax enterprise presentation
Duyhai Doan
 
Cassandra nice use cases and worst anti patterns no sql-matters barcelona
Duyhai Doan
 
Spark cassandra integration, theory and practice
Duyhai Doan
 
Real time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Duyhai Doan
 
Spark cassandra connector.API, Best Practices and Use-Cases
Duyhai Doan
 
Datastax day 2016 : Cassandra data modeling basics
Duyhai Doan
 
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...
StampedeCon
 
Spark Cassandra Connector Dataframes
Russell Spitzer
 
Apache Spark and DataStax Enablement
Vincent Poncet
 
Spark Cassandra Connector: Past, Present, and Future
Russell Spitzer
 
Apache Spark - Loading & Saving data | Big Data Hadoop Spark Tutorial | Cloud...
CloudxLab
 
User Defined Aggregation in Apache Spark: A Love Story
Databricks
 
Apache Spark - Dataframes & Spark SQL - Part 1 | Big Data Hadoop Spark Tutori...
CloudxLab
 
Zero to Streaming: Spark and Cassandra
Russell Spitzer
 
Big data analytics with Spark & Cassandra
Matthias Niehoff
 
DataSource V2 and Cassandra – A Whole New World
Databricks
 
Ad

Viewers also liked (17)

PDF
Cassandra 3 new features @ Geecon Krakow 2016
Duyhai Doan
 
PDF
Spark zeppelin-cassandra at synchrotron
Duyhai Doan
 
PDF
Algorithmes distribues pour le big data @ DevoxxFR 2015
Duyhai Doan
 
PDF
Cassandra introduction @ NantesJUG
Duyhai Doan
 
PDF
KillrChat presentation
Duyhai Doan
 
PDF
Cassandra drivers and libraries
Duyhai Doan
 
PDF
Cassandra introduction mars jug
Duyhai Doan
 
PDF
Introduction to KillrChat
Duyhai Doan
 
PDF
KillrChat Data Modeling
Duyhai Doan
 
PDF
Apache Zeppelin @DevoxxFR 2016
Duyhai Doan
 
PDF
Cassandra introduction @ ParisJUG
Duyhai Doan
 
PDF
Cassandra introduction at FinishJUG
Duyhai Doan
 
PDF
Data stax academy
Duyhai Doan
 
PDF
Libon cassandra summiteu2014
Duyhai Doan
 
PDF
Apache zeppelin the missing component for the big data ecosystem
Duyhai Doan
 
PDF
Cassandra for the ops dos and donts
Duyhai Doan
 
PDF
From rdbms to cassandra without a hitch
Duyhai Doan
 
Cassandra 3 new features @ Geecon Krakow 2016
Duyhai Doan
 
Spark zeppelin-cassandra at synchrotron
Duyhai Doan
 
Algorithmes distribues pour le big data @ DevoxxFR 2015
Duyhai Doan
 
Cassandra introduction @ NantesJUG
Duyhai Doan
 
KillrChat presentation
Duyhai Doan
 
Cassandra drivers and libraries
Duyhai Doan
 
Cassandra introduction mars jug
Duyhai Doan
 
Introduction to KillrChat
Duyhai Doan
 
KillrChat Data Modeling
Duyhai Doan
 
Apache Zeppelin @DevoxxFR 2016
Duyhai Doan
 
Cassandra introduction @ ParisJUG
Duyhai Doan
 
Cassandra introduction at FinishJUG
Duyhai Doan
 
Data stax academy
Duyhai Doan
 
Libon cassandra summiteu2014
Duyhai Doan
 
Apache zeppelin the missing component for the big data ecosystem
Duyhai Doan
 
Cassandra for the ops dos and donts
Duyhai Doan
 
From rdbms to cassandra without a hitch
Duyhai Doan
 
Ad

Similar to Sasi, cassandra on the full text search ride At Voxxed Day Belgrade 2016 (20)

PDF
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
Codemotion
 
PDF
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
DataStax
 
PDF
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Amste...
Codemotion
 
PPT
Intro to Data warehousing lecture 11
AnwarrChaudary
 
PPT
Intro to Data warehousing lecture 14
AnwarrChaudary
 
PPT
Intro to Data warehousing lecture 19
AnwarrChaudary
 
PDF
Big Data Grows Up - A (re)introduction to Cassandra
Robbie Strickland
 
PPTX
Designing data intensive applications
Hemchander Sannidhanam
 
PDF
Apache Cassandra - Data modelling
Alex Thompson
 
PPTX
Indexing
Dr. C.V. Suresh Babu
 
PDF
Indexes overview
aioughydchapter
 
PPT
Lecture 26
Shani729
 
PDF
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
Patrick McFadin
 
PPTX
Ten things to consider for interactive analytics on write once workloads
Abinasha Karana
 
PDF
Index management in depth
Andrea Giuliano
 
PPT
Tunning overview
Hitesh Kumar Markam
 
PDF
Scaling MySQL Strategies for Developers
Jonathan Levin
 
PDF
Fosdem 2012 practical_indexing
scombaudon
 
PDF
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
NoSQLmatters
 
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Milan...
Codemotion
 
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
DataStax
 
SASI, Cassandra on the full text search ride - DuyHai Doan - Codemotion Amste...
Codemotion
 
Intro to Data warehousing lecture 11
AnwarrChaudary
 
Intro to Data warehousing lecture 14
AnwarrChaudary
 
Intro to Data warehousing lecture 19
AnwarrChaudary
 
Big Data Grows Up - A (re)introduction to Cassandra
Robbie Strickland
 
Designing data intensive applications
Hemchander Sannidhanam
 
Apache Cassandra - Data modelling
Alex Thompson
 
Indexes overview
aioughydchapter
 
Lecture 26
Shani729
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
Patrick McFadin
 
Ten things to consider for interactive analytics on write once workloads
Abinasha Karana
 
Index management in depth
Andrea Giuliano
 
Tunning overview
Hitesh Kumar Markam
 
Scaling MySQL Strategies for Developers
Jonathan Levin
 
Fosdem 2012 practical_indexing
scombaudon
 
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
NoSQLmatters
 

More from Duyhai Doan (6)

PDF
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Duyhai Doan
 
PDF
Le futur d'apache cassandra
Duyhai Doan
 
PDF
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Duyhai Doan
 
PDF
Cassandra UDF and Materialized Views
Duyhai Doan
 
PDF
Apache zeppelin, the missing component for the big data ecosystem
Duyhai Doan
 
PDF
Distributed algorithms for big data @ GeeCon
Duyhai Doan
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Duyhai Doan
 
Le futur d'apache cassandra
Duyhai Doan
 
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Duyhai Doan
 
Cassandra UDF and Materialized Views
Duyhai Doan
 
Apache zeppelin, the missing component for the big data ecosystem
Duyhai Doan
 
Distributed algorithms for big data @ GeeCon
Duyhai Doan
 

Recently uploaded (20)

PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 

Sasi, cassandra on the full text search ride At Voxxed Day Belgrade 2016