SlideShare una empresa de Scribd logo
1 de 18
Sterowniki .NET i C++ dla
Apache Cassandra
www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
dr inż. Paweł Kapłański
Cognitum
p.kaplanski@cognitum.eu
Cognitum
Autoryzowany dystrybutor DataStax Enterprise w Polsce
Dostarczamy:

Big Data

Cloud



Wysoce skalowalne aplikacje w chmurze



Rozwiązania Big Data



Systemy zarządzania wiedzą



Aplikacje dedykowane



Rozwój oprogramowania i testowanie aplikacji



Konsulting IT

Semantics
strong partnerships:

Customers from: US, CH, FL, DE
www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Spis treści (Agenda)
1.
2.
3.
4.
5.
6.
7.

Cassandra
Jak działają stare sterowniki oparte o Thrift
Asynchroniczność
Binarny protokół klient-serwer w Cassandrze
Przykład (driver .Net)
Plany na przyszłość
Driver C++

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Cassandra
1. noSql – BigTable (Google 2005)
2. Stworzona w FB – obecnie Apache
3. Rozproszona
4. Skalowalna - Duże (100PB) dane
5. Obecnie już istnieją instalacje po 1000 nodów
6. Symetryczna (odporna na awarie)

7. Klaster (możliwość instalacji „multidatacenter”)
8. Elastyczna – duże możliwości konfiguracji
9. CQL – Cassandra Query Language
– podobny do SQL
www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Multidatacenter

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Typowa aplikacja (serwis www .Net)

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Ważne!
1. Driver to nie tyko „smart socket” - posiada
rozbudowaną logikę działania
2. Driver zarządza połączeniami do klastra
– load balancer
3. Użytkownik nie musi martwić się o
połączenie i strategię – wystarczy ze użyje
jednej z dostaraczanych np. RoundRobin
4. Driver potrafi automatycznie powtórzyć
zapytanie w razie potrzeby
5. Można tworzyć własne strategie
6. Lock-free (wysoka wydajność)
www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Interfejsy C*: Thrift
1. IDL (interface definition language)
2. Pozwala na automatyczne generowanie
kodu w różnych językach

3. Sam Thrift to nie wszystko – trzeba
obsłużyć zapytania do klastra
4. Zapytanie blokuje połączenie
(podobnie jak zapytanie http)
w oczekiwaniu na odpowiedź

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Interfejsy C*: Protokół binarny
1.

Operacje asynchroniczne

2.

Pojedyncze polaczenie do 128
jednoczesnych zapytan

3.

Lepsze wykorzystanie zasobów (połączenia
są kosztowne)

4.

Cassandra może lepiej optymizować

5.

Wsparcie dla programowania
asynchronicznego – powszechne obecnie w
podejsciu client-server

6.

Zdarzenia z Cassandy są „pushowane”
•

zmiana schematu bazy

•

zmiana w topologii klastra

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Wspierane języki
1.

Native Protocol Drivers (Datastax)
•

Java driver (with ORM)

•

.Net driver (Cql2Linq, ORM)

•

Python

•

C++ Driver – early stage of development

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Przykład – połączenie (driver .Net)
1. public class NerdMovie {
[PartitionKey] public string Movie;
[ClusteringKey(1)] public string Director;
public string MainActor;
public int Year;
}
2. var cluster = Cluster.Builder().AddContactPoints("192.168.13.1", "192.168.13.1").Build();
3. using (var session = cluster.Connect("test")){
var nerdMovieTable = session.GetTable<NerdMovie>();
nerdMovieTable.CreateIfNotExists();

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Zapytania
var batch = session.CreateBatch();
batch.Append(nerdMovieTable.Insert(
new NerdMovie() { Movie = "Serenity", Director = "Joss Whedon", MainActor = "Nathan Fillion", Year = 2005 }));
batch.Append(nerdMovieTable.Insert(
new NerdMovie() { Movie = "Pulp Fiction", Director = "Quentin Tarantino", MainActor = "John Travolta", Year
= 1994 }));
batch.Append(nerdMovieTable.Insert(
new NerdMovie() { Movie = "Zero Charisma", Director = "Katie Graham", MainActor = "Nathan Fillion", Year = 2013
}));

var query = from m in nerdMovieTable select m;

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Wywołanie synchroniczne
batch.Execute();
var result = query.Execute();
foreach (var e in result)
Console.WriteLine("Movie " + e.Movie + "[" + e.Director + "]");

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Wywołanie asynchroniczne
ManualResetEventSlim ev = new ManualResetEventSlim();
batch.BeginExecute((ar1) => {
batch.EndExecute(ar1);
query.BeginExecute((ar2) => {
var result = query.EndExecute(ar2);
foreach (var e in result)
Console.WriteLine("Movie " + e.Movie + "[" + e.Director + "]");

ev.Set();
}, null);
}, null);
ev.Wait();

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Co dalej? (driver .Net)
Protokół binarny: wersja 2 (Cassandra 2.x)
-

Batch

-

Autentykacja poprzez SASL

-

Lekkie transakcje – implementacja protokołu
Paxos
IINSER … IF NOT EXISTS,
UPDATE … IF <column>=<value>

-

Strumieniowanie wyników

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Driver C++ (w drodze)
1. Wieloplatformowość (np. embedded)
2. Oparty o boost::asio
3. Mała liczba zależności od innych
bibliotek

www.cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.
Kontakt

Cognitum | PL, Warszawa
office@cognitum.eu
+48 22 250 2541
www.cognitum.eu/semantics

abroad sales representatives:

Cognitum | CH, St. Gallen
swiss-office@cognitum.eu

www.cognitum.eu

Cognitum | UK, Bristol
uk-office@cognitum.eu

The company, product and service names used in this web site are for identification purposes only.
All trademarks and registered trademarks are the property of their respective owners.

Más contenido relacionado

Similar a Sterowniki .NET i C++ dla Apache Cassandra

DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet IntroductionWei Sun
 
How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R projectWLOG Solutions
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...Docker, Inc.
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPC
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPCHPC DAY 2017 | FlyElephant Solutions for Data Science and HPC
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPCHPC DAY
 
Easy way to learn Core java full material
Easy way to learn Core java full materialEasy way to learn Core java full material
Easy way to learn Core java full materialSivannarayana Chimata
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsGraham Dumpleton
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made EasyAlon Fliess
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnelukdpe
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code維佋 唐
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayArik Weinstein
 
Opensourceman ( url for slides with animations https://goo.gl/R638tW )
Opensourceman ( url for slides with animations https://goo.gl/R638tW )Opensourceman ( url for slides with animations https://goo.gl/R638tW )
Opensourceman ( url for slides with animations https://goo.gl/R638tW )Андрей Вандакуров
 
Skiron - Experiments in CPU Design in D
Skiron - Experiments in CPU Design in DSkiron - Experiments in CPU Design in D
Skiron - Experiments in CPU Design in DMithun Hunsur
 

Similar a Sterowniki .NET i C++ dla Apache Cassandra (20)

DotNet Introduction
DotNet IntroductionDotNet Introduction
DotNet Introduction
 
How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R project
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPC
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPCHPC DAY 2017 | FlyElephant Solutions for Data Science and HPC
HPC DAY 2017 | FlyElephant Solutions for Data Science and HPC
 
Easy way to learn Core java full material
Easy way to learn Core java full materialEasy way to learn Core java full material
Easy way to learn Core java full material
 
Corejava ratan
Corejava ratanCorejava ratan
Corejava ratan
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web Applications
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made Easy
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
R sharing 101
R sharing 101R sharing 101
R sharing 101
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
Docker practical solutions
Docker practical solutionsDocker practical solutions
Docker practical solutions
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
 
Opensourceman ( url for slides with animations https://goo.gl/R638tW )
Opensourceman ( url for slides with animations https://goo.gl/R638tW )Opensourceman ( url for slides with animations https://goo.gl/R638tW )
Opensourceman ( url for slides with animations https://goo.gl/R638tW )
 
RAGHUNATH_GORLA_RESUME
RAGHUNATH_GORLA_RESUMERAGHUNATH_GORLA_RESUME
RAGHUNATH_GORLA_RESUME
 
Skiron - Experiments in CPU Design in D
Skiron - Experiments in CPU Design in DSkiron - Experiments in CPU Design in D
Skiron - Experiments in CPU Design in D
 
John f kiser
John f kiserJohn f kiser
John f kiser
 

Más de Cognitum

Introduction to Ontology Engineering with Fluent Editor 2014
Introduction to Ontology Engineering with Fluent Editor 2014Introduction to Ontology Engineering with Fluent Editor 2014
Introduction to Ontology Engineering with Fluent Editor 2014Cognitum
 
Cognitum Ontorion: Knowledge Representation and Reasoning System
Cognitum Ontorion: Knowledge Representation and Reasoning SystemCognitum Ontorion: Knowledge Representation and Reasoning System
Cognitum Ontorion: Knowledge Representation and Reasoning SystemCognitum
 
Modeling Ontologies with Natural Language
Modeling Ontologies with Natural LanguageModeling Ontologies with Natural Language
Modeling Ontologies with Natural LanguageCognitum
 
Zarzadzanie wiedza dla zarządzania kryzysowego
Zarzadzanie wiedza dla zarządzania kryzysowegoZarzadzanie wiedza dla zarządzania kryzysowego
Zarzadzanie wiedza dla zarządzania kryzysowegoCognitum
 
Technologie Semantyczne - Wykłady
Technologie Semantyczne - WykładyTechnologie Semantyczne - Wykłady
Technologie Semantyczne - WykładyCognitum
 
Semantic Rules Representation in Controlled Natural Language in FluentEditor
Semantic Rules Representation in Controlled Natural Language in FluentEditorSemantic Rules Representation in Controlled Natural Language in FluentEditor
Semantic Rules Representation in Controlled Natural Language in FluentEditorCognitum
 
Nowoczesne technologie w naukach społecznych
Nowoczesne technologie w naukach społecznychNowoczesne technologie w naukach społecznych
Nowoczesne technologie w naukach społecznychCognitum
 
Application of Semantic Knowledge Management System in Selected Areas of Poli...
Application of Semantic Knowledge Management System in Selected Areas of Poli...Application of Semantic Knowledge Management System in Selected Areas of Poli...
Application of Semantic Knowledge Management System in Selected Areas of Poli...Cognitum
 
Application of Semantic Knowledge Management System in Selected Areas of Pol...
Application of Semantic Knowledge Management System  in Selected Areas of Pol...Application of Semantic Knowledge Management System  in Selected Areas of Pol...
Application of Semantic Knowledge Management System in Selected Areas of Pol...Cognitum
 
Cognitum dusseldorf 03_2012
Cognitum dusseldorf 03_2012Cognitum dusseldorf 03_2012
Cognitum dusseldorf 03_2012Cognitum
 
Practical applications of controlled natural language with description logics...
Practical applications of controlled natural language with description logics...Practical applications of controlled natural language with description logics...
Practical applications of controlled natural language with description logics...Cognitum
 

Más de Cognitum (11)

Introduction to Ontology Engineering with Fluent Editor 2014
Introduction to Ontology Engineering with Fluent Editor 2014Introduction to Ontology Engineering with Fluent Editor 2014
Introduction to Ontology Engineering with Fluent Editor 2014
 
Cognitum Ontorion: Knowledge Representation and Reasoning System
Cognitum Ontorion: Knowledge Representation and Reasoning SystemCognitum Ontorion: Knowledge Representation and Reasoning System
Cognitum Ontorion: Knowledge Representation and Reasoning System
 
Modeling Ontologies with Natural Language
Modeling Ontologies with Natural LanguageModeling Ontologies with Natural Language
Modeling Ontologies with Natural Language
 
Zarzadzanie wiedza dla zarządzania kryzysowego
Zarzadzanie wiedza dla zarządzania kryzysowegoZarzadzanie wiedza dla zarządzania kryzysowego
Zarzadzanie wiedza dla zarządzania kryzysowego
 
Technologie Semantyczne - Wykłady
Technologie Semantyczne - WykładyTechnologie Semantyczne - Wykłady
Technologie Semantyczne - Wykłady
 
Semantic Rules Representation in Controlled Natural Language in FluentEditor
Semantic Rules Representation in Controlled Natural Language in FluentEditorSemantic Rules Representation in Controlled Natural Language in FluentEditor
Semantic Rules Representation in Controlled Natural Language in FluentEditor
 
Nowoczesne technologie w naukach społecznych
Nowoczesne technologie w naukach społecznychNowoczesne technologie w naukach społecznych
Nowoczesne technologie w naukach społecznych
 
Application of Semantic Knowledge Management System in Selected Areas of Poli...
Application of Semantic Knowledge Management System in Selected Areas of Poli...Application of Semantic Knowledge Management System in Selected Areas of Poli...
Application of Semantic Knowledge Management System in Selected Areas of Poli...
 
Application of Semantic Knowledge Management System in Selected Areas of Pol...
Application of Semantic Knowledge Management System  in Selected Areas of Pol...Application of Semantic Knowledge Management System  in Selected Areas of Pol...
Application of Semantic Knowledge Management System in Selected Areas of Pol...
 
Cognitum dusseldorf 03_2012
Cognitum dusseldorf 03_2012Cognitum dusseldorf 03_2012
Cognitum dusseldorf 03_2012
 
Practical applications of controlled natural language with description logics...
Practical applications of controlled natural language with description logics...Practical applications of controlled natural language with description logics...
Practical applications of controlled natural language with description logics...
 

Último

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Sterowniki .NET i C++ dla Apache Cassandra

  • 1. Sterowniki .NET i C++ dla Apache Cassandra www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 2. dr inż. Paweł Kapłański Cognitum p.kaplanski@cognitum.eu
  • 3. Cognitum Autoryzowany dystrybutor DataStax Enterprise w Polsce Dostarczamy: Big Data Cloud  Wysoce skalowalne aplikacje w chmurze  Rozwiązania Big Data  Systemy zarządzania wiedzą  Aplikacje dedykowane  Rozwój oprogramowania i testowanie aplikacji  Konsulting IT Semantics strong partnerships: Customers from: US, CH, FL, DE www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 4. Spis treści (Agenda) 1. 2. 3. 4. 5. 6. 7. Cassandra Jak działają stare sterowniki oparte o Thrift Asynchroniczność Binarny protokół klient-serwer w Cassandrze Przykład (driver .Net) Plany na przyszłość Driver C++ www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 5. Cassandra 1. noSql – BigTable (Google 2005) 2. Stworzona w FB – obecnie Apache 3. Rozproszona 4. Skalowalna - Duże (100PB) dane 5. Obecnie już istnieją instalacje po 1000 nodów 6. Symetryczna (odporna na awarie) 7. Klaster (możliwość instalacji „multidatacenter”) 8. Elastyczna – duże możliwości konfiguracji 9. CQL – Cassandra Query Language – podobny do SQL www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 6. Multidatacenter www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 7. Typowa aplikacja (serwis www .Net) www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 8. Ważne! 1. Driver to nie tyko „smart socket” - posiada rozbudowaną logikę działania 2. Driver zarządza połączeniami do klastra – load balancer 3. Użytkownik nie musi martwić się o połączenie i strategię – wystarczy ze użyje jednej z dostaraczanych np. RoundRobin 4. Driver potrafi automatycznie powtórzyć zapytanie w razie potrzeby 5. Można tworzyć własne strategie 6. Lock-free (wysoka wydajność) www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 9. Interfejsy C*: Thrift 1. IDL (interface definition language) 2. Pozwala na automatyczne generowanie kodu w różnych językach 3. Sam Thrift to nie wszystko – trzeba obsłużyć zapytania do klastra 4. Zapytanie blokuje połączenie (podobnie jak zapytanie http) w oczekiwaniu na odpowiedź www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 10. Interfejsy C*: Protokół binarny 1. Operacje asynchroniczne 2. Pojedyncze polaczenie do 128 jednoczesnych zapytan 3. Lepsze wykorzystanie zasobów (połączenia są kosztowne) 4. Cassandra może lepiej optymizować 5. Wsparcie dla programowania asynchronicznego – powszechne obecnie w podejsciu client-server 6. Zdarzenia z Cassandy są „pushowane” • zmiana schematu bazy • zmiana w topologii klastra www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 11. Wspierane języki 1. Native Protocol Drivers (Datastax) • Java driver (with ORM) • .Net driver (Cql2Linq, ORM) • Python • C++ Driver – early stage of development www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 12. Przykład – połączenie (driver .Net) 1. public class NerdMovie { [PartitionKey] public string Movie; [ClusteringKey(1)] public string Director; public string MainActor; public int Year; } 2. var cluster = Cluster.Builder().AddContactPoints("192.168.13.1", "192.168.13.1").Build(); 3. using (var session = cluster.Connect("test")){ var nerdMovieTable = session.GetTable<NerdMovie>(); nerdMovieTable.CreateIfNotExists(); www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 13. Zapytania var batch = session.CreateBatch(); batch.Append(nerdMovieTable.Insert( new NerdMovie() { Movie = "Serenity", Director = "Joss Whedon", MainActor = "Nathan Fillion", Year = 2005 })); batch.Append(nerdMovieTable.Insert( new NerdMovie() { Movie = "Pulp Fiction", Director = "Quentin Tarantino", MainActor = "John Travolta", Year = 1994 })); batch.Append(nerdMovieTable.Insert( new NerdMovie() { Movie = "Zero Charisma", Director = "Katie Graham", MainActor = "Nathan Fillion", Year = 2013 })); var query = from m in nerdMovieTable select m; www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 14. Wywołanie synchroniczne batch.Execute(); var result = query.Execute(); foreach (var e in result) Console.WriteLine("Movie " + e.Movie + "[" + e.Director + "]"); www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 15. Wywołanie asynchroniczne ManualResetEventSlim ev = new ManualResetEventSlim(); batch.BeginExecute((ar1) => { batch.EndExecute(ar1); query.BeginExecute((ar2) => { var result = query.EndExecute(ar2); foreach (var e in result) Console.WriteLine("Movie " + e.Movie + "[" + e.Director + "]"); ev.Set(); }, null); }, null); ev.Wait(); www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 16. Co dalej? (driver .Net) Protokół binarny: wersja 2 (Cassandra 2.x) - Batch - Autentykacja poprzez SASL - Lekkie transakcje – implementacja protokołu Paxos IINSER … IF NOT EXISTS, UPDATE … IF <column>=<value> - Strumieniowanie wyników www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 17. Driver C++ (w drodze) 1. Wieloplatformowość (np. embedded) 2. Oparty o boost::asio 3. Mała liczba zależności od innych bibliotek www.cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.
  • 18. Kontakt Cognitum | PL, Warszawa office@cognitum.eu +48 22 250 2541 www.cognitum.eu/semantics abroad sales representatives: Cognitum | CH, St. Gallen swiss-office@cognitum.eu www.cognitum.eu Cognitum | UK, Bristol uk-office@cognitum.eu The company, product and service names used in this web site are for identification purposes only. All trademarks and registered trademarks are the property of their respective owners.