ααααΆααα½αα’ααααααα»α Khabrovsk α ααΆααααααΆ ααΎαααααα
ααααααααααααΆααααααα½αα±ααα
αΆααα’αΆαααααα αα»ααααα
αΆααααααΎααααααα·ααααΆααααΈα ααααααα ααΆαα·ααααααααΆααα’ααα ααΎαααΆαααααα»αααα’ααααααα½αα’αααΈ Google Cloud Spanner ααΎααααΈαααααααααΆαα½αααΉαααΆαα
αΆααααααΎααααααα·ααααΆ
ααΎαα‘αΎαααΆαα
α»αααααΆααααα»α
αααα»αααΆαααΆαααα»αα αα»αααααααααααΌαααΌααααααααααΆααααΆαααΈαααΌαααΆααααααΆαααΌαααααΆαααΎαααααΆα
αααΎααααα’ααααααααΆα αααααΈαααααΆα αα·αα’ααααααα’αα‘αΆααα»ααα·ααα·ααααα Lightspeed ααααΎααααΆαααααααααααααααααΆαααααα·ααΆααΌαααααΆααα·αααααααααααΆααααααΈααααΎααααΆααααααα·ααααα·ααΆα αα·ααΆα αα·ααααααααααααααααααΆα αααα·ααΆααΌαααααΆααα·ααααααααΆαααααααΈαα½ααααΆαα
ααα»α
ααααΆαα αα·αα
ααα»α
ααααααααααααα½αα ααΌα
ααααα αΎα αα
αααααα Google ααααΆα Cloud Spanner αα
ααΆααααΈααααΆα αααααααα·αααααααα·αα’αΆα
ααΎαααΎααα
αααα»ααα·ααααααΌαααααΆααα·ααααααααααΆαααααα ααΌα
ααΆααΆαααααΎααΆαααααααΆααααααααααΎαααααααΆααααααααα αα·ααα·α
αα
αααααααααααααα·αααααΆαααα 99,999% (SLA)α - ααΎααα·αα’αΆα
ααααΆαα±ααΆαααΎααααΈααα½αααΆαααααααααΎα!
ααΎααααΈαααααααΌααα·αααααΆαααΌαα
ααααΌααααΌααΆααααααα·αααααααααααΎαααΆαα½α Cloud Spanner ααααΌα
ααΆαααααααα·αα·α
ααααααΆαααααααααααΎαααΆαααααΎ ααΎαααΉαααααααααααααΎαααααΆαααααΆααααααα
- αααααααα·αα·α ααααααΆααααααααααααΎαα
- Cloud Spanner αα·ααΆαααααααααα
- ααΆαααΆααααααααααααΎαα
- ααΆαααααΎαααααααΎα
1. αααααααα·αα·α ααααααΆααααααααααααΎαα
αα»αααΉαα αΌααα αααα»αααΆαααΆααααΆαααααα Cloud Spanner ααΆαααααααααααΆ αα·αααΆααα»αααααΆααααααΆααΆαα½αααΉααααααααααΆααααααααααα ααΎααΈααααΆα ααΌααα·ααΆαα’αααΈααααΈααααΎααααΆααααααΆααααααααΎαααΆααα αααα»αα α·ααααα ααααα·α αΆαααΆαααααααααααααΌαααΆααα±ααααααΎααααΆαα Cloud Spanner αα αααα»αα αααααΆαα ααΆααααααααααααααΎαα
- ααΆααΆααααα½ααααααΆαααααααααααΆαααΌαααααΆααα·αααααα SQL αααααααΈ (ααα αααα)
- αααααααααααΆα OLTP ααΆαα½αααΉαααΆαααΆαααα OLAP
α αααΆα: αααααΆααααΆαααΆαααα αα·αααΆαααΆααααα½αααααΆααααααααα α’αααααααααααααααα Cloud Spanner ααΆαα½αααΉααααααααα½α MySQL αααααα½ααΆααααααααααΆα GCP Cloud SQL αα·α Amazon AWS RDS α
ααΆαααααΎααααΆαα Cloud Spanner ααΆααΆααααα½ααααααΆαααααααααααΆαααΌαααααΆααα·αααααα SQL αααααααΈ
αα αααα»αααα·ααααΆα αααααααΈ ααΌαααααΆααα·αααααα αα αααααααααααααΆααααΎααααααα½αααααααΌαααααΆααα·αααααααα·ααα·α α¬ααΎαααΈααααα·ααααααα·ααΈαααααΆααααααααΆαα»α (ααΆα αααααααααΆαααααΆαααΎαα‘αΎαααα ααα½αα’αααααααΎααααΆαα αα·α/α¬ααααΎ) ααΆααα·ααΈααΆα αααΎαααΎααααΈααΆααααααααααααααΆααααΎααααα ααααα·ααααα’αΆα ααα½αααααΆαα αααααΆαααΆαααΆααααα αααααααααΆαααΆαααααααΆαα αααΎαααΆαααααααααΉαααΆαααααΎα’αααααΆαααααααααα
ααΆα§ααΆα ααα ααα αΆαααααΌααααααααΌαα’αα»ααααααΊααααΌαααΎααααΆαααΆααααααααΌαααααΆααα·αααααααααααΆααααααΉαααΆαα’αα»αααααααααα α αΎαααααααα½ααα½αααΆα±ααααααΌαααααΆααΉαααααΌααααΈααααΎααααΆαααααααα·ααΈααα’αααα»αα ααααα·αααΎααΆαα·ααααααααααΆαααα α’αααα’αΆα ααααΎαααΎαααααΎααΆαααααααΆαααΌαααααΆααα·ααααααααααα α¬αααααα
ααΆαααααΎααΆαααααααΆαααααααααααα·ααΈαα½ααααα αΌαααΆαααααΎα±αααααααΎαα‘αΎαααΌαα§ααΆα ααααααΆαααΈααα ααΆααααααΆαααααΆαααααααααααααααααααΎαααΆα/ααααΌααααααα RAM ααΆααααα αααΎα ααΆααααα»αααΏαααΆααα»αα ααααααααααΌαααααΆααα·ααααααααααΆαααααα (αααααααΎαα·ααΈααΆααααααα α»αααα) ααΌα ααΆααΆαααααααΆα MySQL ααα’αααααα
ααΆααα»ααα·ααααα·ααΆα αααΎαα αααααα·ααΈααΆαααααααα ααα»ααααααΆααααααααααα»αααΊααα ααααΆαααΈαααα’αα·ααααΆαα ααΎααΈααααΆαα αα ααααααααααααααααα§ααΆα ααααααΆαααΈαααααααΆαααααααΌαααΆαααΆαααα ααΆαα ααααααααΎααα½αααα»αααααα ααΆαααααΎααΆαααααααΆααααααα
ααΆαααααΎααΆαααααααΆααααααααΊααΆαα·ααΈααΆααααααα½αααααααΆαααΈαααααΆααααα αααΎαααααΌαααΆααααααααα αααα»αα ααααα αααααΆαα§ααααααα·αααααΎαααΆαα’αα»ααααααΆαααααΆααααααααα ααααααα ααα½ααααΆαααΈαααααααΌαααΆαααααααα ααΆαα αααΎα αααααααΈ ααααααααααΌαααααΆααα·αααααααα·αααααΎααΆαααααααΆααααααααΆαααα’ α¬αα·αααααΎααΆαααααααΆαααΆαααααααα α§ααΆα ααα MySQL α’αΆα ααααΎααΆαααααααΆαααααααααααΆααααααα·ααααα·ααΆαα’αΆααααααααααα’αααα’αΆαααΆααα ααα»αααααα·αα’αΆα ααααΎααΆαααααααΆαααααααααααΆααααΆααααααααΆαααα
αααααΆααα·αααα αααααΆαααααααΆαα·ααααααΆ Cloud Spanner α’αΆα ααααΎααΆαααααααΆααααααααΆααααΆαααΆααααα½ααααααΆαα’αααααΆαααααα·α αα½α αααα»αα
αααααααα·ααααααααα DBMS ααΆααααΆαααα ααααΌαααααΆααααααααΈαα»αααααααααααΆα ααΆααΌαααααΆα ααΎαααΆααα DBMS αααααααα·αααααα»ααα αααα»αααα - αααααΆαα Google, GCP Cloud SQL αα·ααααααΆαα Amazon, AWS RDS α αα αααα»αααΆαααΆααααααααααααΎα ααΎαααΆααααααααΎααααααααΌα ααΆααααααα
- ααΆαααΌααααααΈαααααααα·αααα αα·ααΆαααΆα SQL, DDL, DML; αααααΆαααααΆααααααΆαα/α§αααααααααΆαα ααΆαααΆααααααααα·ααααα·ααΆα αα·αααΌα αααααα ααΎα
- ααΆαααΆααααααΆαα’αα·ααααααα ααΆαα’αα·αααααα αα·αααΆαααααΎαααααααΆααααα½αα
- ααΆαααΆαααααααααααααααΆαα ααΆααααααααααααααα» - α§ααΆα ααα ααΆαααααΎααΆαααααααΆαα‘αΎαααΎ/α α»αααααα αα·αααΆαααααΎα±αααααααΎαα‘αΎαααΌαααααΈα SLA ααΆαααααα»ααα»ααα·αααΆαααΎαα‘αΎααα·α; ααΆαααααααααααα»ααααα·ααΆα / ααΆαα αΌαααααΎα
ααΆαααααΎααααΆαα Cloud Spanner ααΆαααααααααΆα OLTP αααααΆαααΎαααααΎαααΆα OLAP
ααααααααα Google αα·αααΆαα’αα’αΆααααΆαα αααΆααααΆ Cloud Spanner ααααΌαααΆααα ααΆα‘αΎααααααΆααααααΎαααΆααα·ααΆα ααΆα ααααααααααααααα½αα ααα½αααΆαα½ααααΆαααΈαααααααααααΌα ααΆ Apache Impala & Kudu αα·α YugaByte αααααααΌαααΆααα ααΆα‘αΎααααααΆααααααα»αααΆαααΆααααα OLAP α
αααααΈααΆααΆαα±ααΆααα·α αα½α ααα Cloud Spanner αα½ααααα αΌααααΆαααΈα HTAP (ααααΎαααΆαααααα·ααααα·ααΆα/ααΆααα·ααΆαααΌαααΆαα) ααΆαα½αααΉααααα»ααα»αααΆα OLAP αααα’αΆα ααααΎααΆα (α αααΎα α¬αα·α ααΆαααα) ααΎααα·αααΆααΆααααΉαααα½αααΆαααΆαααα α·ααααα»αααΆααααααααΎαα
ααΆαα½αααΉααααα·αααα ααΎαααΆααα·αα·αααααΎαααααααααΌα ααΆααααααα
- ααΆααααα»ααα·αααααα αα·αα·αααα αα·αααΆαααΆααααααΆααααα αα
- ααΆαα’αα»αααααααα½α αα·α DML
2. Cloud Spanner αααααα
Google Spanner ααΊααΆαααααααααααααααααααΌαααααΆααα·αααααααααααΆαααααΆααααααααΆαααα»α (RDBMS) ααα Google ααααΎααααΆαααααααΆααααααΆααααααααΆαααααα½ααα½αα ααα½αα Google ααΆαααααΎα±ααααΆα’αΆα ααααΎααΆαααΆααΌαα αααααΆααα’αααααααΎααααΆαα Google Cloud Platform αα ααΎαααααΆα 2017 α
αααααΊααΆαααααααα½αα ααα½ααα Cloud Spannerα
- α ααααα RDBMS αααα’αΆα ααααΎααΆαααααααΆαααΆααααααα ααααΎααΆαααααΎααααΆααααααααααααΆαααααααΉα ααΎααααΈααΆααΆααΆαααΌαααΆααααΈαααααΆααααααΆαααα·ααααααα
- ααΆαααΆααααααααα·ααααα·ααΆαααααααΆααΆαα ααααα·ααααα·ααΆαα’αΆα ααΆααααααΉαααΆααΆαα αααΎα - αα·αα αΆαααΆα ααααααα ααααααΆααΆααααα½ααα (αα·αααΌα Apache HBase α¬ Apache Kudu)α
- ααΆααΆααααααΆαααΌαααααΆαααΎααΌαααα
ααααα ααΆααΆαααΆααα’ααααααΌαααααΆαααααααααααΆααααααΆα (PC) αααα’αΆα
ααΆααα½αααααΆα
αααΎααα
αααα»αααΆααΆαα αα·ααααααααΆααΆαααααΌαααΆααααααΆαα»ααααα»αααααΆαααα»αααααΌααα αααααααΎα±ααααΆααΆαααααα·αααααΆα αα·ααα αααααααΆααααΆαααααααααα»αααααΌαααα ααΌα
αααααααααααααΆαααΌαααααΆαααΎαα»αααααΌααααααααααα ααΆαα’αα»ααααααααΌαααααααααΌααΆαααααΈααααΎααααΆαααααααΆααα
ααΆααΆαα»ααααα»αα
α·αααααΎααααΈαααααα
ααΆαα
ααααΎαααΆαααα’αααα»α . - ααΆααΆαααααΌαα ααΆααΆαα’αΆα ααΆαααΆαα’αΆααααααα ααΎααααΆαα αα·ααα ααα αα½αβαααβαααα»αβααΆααΆαβααΌαβα’αΆα βααααΌαβααΆαβααααΌααααβααΉαβαα½αβαααβαααα»αβααΆααΆαβααα αα·ααΈααΆαααααααααααααΎαααααΏαααααΆααααααααααααΆαααααααααα’αΆα ααααΌαααΆααααααα’ααααααααΆααααα»αααααΆααααΆαααααΌαα·αααααα ααΌα ααΆααΆααααααααα’αα·αα·αααα½αααααΆ αα·ααα·αααααααααααααα½αααα
- αααααααααα Cloud Spanner ααΆααααααααααααααααααΆαααααααα αα·αα·ααααααΆααα½ααααααααΆαααααΎαα·αα·αααα αα·ααα½ααααα»αααααΌαααααΆααα’ααα ααααα·αααΎα ααααΆα αα·αα·ααααααα’αΆα ααΆααα½αααααααα·αααΆααα·αα·αααααααααααααααααα αα·αα·ααααα’αΆα ααααΌαααΆαααααααααααααΆαα½αααΆααΆααα ααΎααααΈαααααΎαααααΏααααα½αα ααΆαααΉααααααΉαααΆα αααΎαα’αα»ααααα αααααα·αα·αααα ααΌα ααΆα ααα½αα’αα·ααααΆαααα½αααααααααααααααααΆαα»ααααα»ααα·αα·ααααα ααΌα ααααΆαααααααα αααα½αααΆαααααα·αα·ααααα’αΆα αα·ααααααααΌα αα αααα»α RDBMSs ααααααααα
βCloud Spanner ααααΎαααΎαααααααααααααααααααααααααα·αααααα»αααααΈααααααα»αααααα ααΆαα·ααα Cloud Spanner αα·αααααΎαααΎαααααααααααααααΆααααααααααααααααααααααα·αα ααααα·αααΎαααα½αααααΎαα»ααα½αααααΆαα½αααααα·αααααΌαααΆααααααΆαα»ααα
αααα»α
- αα·α αα αααααααααααααα·αααααΆαααα (SLA): ααΆαααΆαααααααΆααα αααα»αααααααα½αααΆαα½αααΉα SLA αα 99,99%; ααΆαααΆαααααααΆααα α»αααααααΆαα½αααΉα 99,999% SLA α ααααααααα SLA αααα½αααΆααααΆααααααΆαα·α αα ααααααααααα½α αα·ααα·ααααααΆααΆαααΆααΆααααααααααΆαα½αααααα αααα»αααΏααΆααα»ααααα Google ααΆααα·αααααααα·ααΆααα½αα ααα½αααΎααααΈααααΎααΆαααΆαααΆαααααΆααααααααα (αααααΆααααΆα―αααΆαααα 99,999% ααΆααααααΆ 26,3 αα·ααΆααΈααααΆααα·αααΆαααααΆαααααααα»ααα½αααα )
- α
αααΎααααα
https://cloud.google.com/spanner/
α αααΆα: αααααα Apache Tephra ααααααααΆαααΆααααααααα·ααααα·ααΆααααααΎαα‘αΎαααα Apache HBase (α₯α‘αΌααααααααααΌαααΆαα’αα»αααααα αααα»α Apache Phoenix ααΆααααΆ)α
3. ααΆαααΆααααααααααααΎαα
ααΌα αααα ααΎαααΆααα’ααααααΆααΆαα’αΆαααΆαα’αα’αΆααααα Google α’αααΈα’ααααααααααααα Cloud Spanner - ααΆαααααΎααΆαααααααΆααααααααααΎαααααααΆααααααααα ααααααααααααααΆααΆαααΌαααΆααααΈαααααΆααααααΆααααα αα·α SLA αααααααΆααα αααααΈααΆαααααΌαααΆαααΆααααααααα·ααααα»αααΆααααααααΆααααα ααΆαααααΆααααα»αααΆααααααα ααΆα ααααα ααααααΎαααΊαα·ααααααΎααααΈααα·ααααα½ααααααααα αααα»ααα αα·α α αΌαααΎααααααααΎααΏααααααααααααα’αααααααΎααααΆααααΌαααααΆααα·ααααααααΆαα αααΎαααα α·ααααα»αααΆααα ααΆαααααΎααααΆ αα·αααααααΆαααααΎααααΆααα
ααΎαααΆαααΆαααααα Cloud Spanner ααΆααΆααααα½ααααααΆαα Sharded MySQL
Google Cloud SQL αα·α Amazon AWS RDS αααααΆ OLTP DBMSs ααααααα·αααααα»αααΈααα αααα»αααΈααααΆαααα ααΆααααα»ααααααααα·αααα αααΎαα ααααααΆαααΆααααα ααΎααααΈααααΎααΆαααααααΆαααΌαααααΆααα·ααααααααΆαααααααΎαααΈααα αααααααΆαααααα½α α’αααααααΌαα’αα»ααααααΆααααα αααααααα·ααΈα αα·ααΈααΆαααααααααααααΎαααΆααααα»αααααΆααααααααααααΆααααΆαααααααα·ααΈ αα·αααΆααααααααααα ααΎαααΆααααα‘ααααΎαααΈααααααα Spanner ααααΉαα αΌααα αααα»αααααΆααΈαααΌααααΆααααα αΌαααααΆααΌα shards ααΆα αααΎαα αΌααα αααα»α instance αααα½α αα·αα’αααΈααααααααααα·ααα (ααααα·αααΎααΆα) α’αΆα ααΉαααααΌααααααα
ααΆαααΆαααα SQL, DML αα·α DDL ααααΌα ααΆα§αααααααααΆαα αα·ααααααΆααα?
ααΆααααΌα αα αααα αΆααααααΎαααΆαα½αααΌαααααΆααα·ααααααααΆαα½α α’αααααααΌααααααΎαααααΌαα·ααααααα ααααα·αααΎα’ααααα·αααΆα’αααα’αΆα ααααΆαα JDBC Spanner αα α§ααααα SQL αααα’αααα αΌαα α·ααα α’αααααΉαααΎαααΆα’αααα’αΆα αα½ααα·ααααααααααα’αααααΆαα½αααΆααΆα ααα»ααααα’ααααα·αα’αΆα ααααΎααΆααΎααααΈαααααΎαααΆααΆα α¬αααααα (DDL) α¬ααΆααααα αΌα/ααααΎαα αα α»ααααααααΆα/αα»αααΆαα½αα‘αΎαα ααααα·ααααα·ααΆα (DML) α JDBC ααααΌαααΆααααα Google αα·αααΆααααααΆααααΈααααααα
msgstr "αααααα·ααΈβαααααΆβαα αα α»ααααααβαα·αβααΆααααβααα ααααΈαααααααΆααα DML α¬ DDL α"
α―αααΆα Spanner
ααααΆαααΆααα·ααααααΎαααΆαααΆαα½ααα»αααΌα GCP αα - α’αααα’αΆα
ααααΎααΆααααααα½α SELECT ααα»αααααα ααααΆαααα’ααΆααααααα·ααΈαααααΆ JDBC αααααΆαααΆαααΆαααααααααΆαα DML αα·α DDL ααΈαα αααα αα½αααΆααααααα·ααααα·ααΆααααααα
ααΆαααααΎααααΆααααααΎαααα αΆαααΆα ααα APIs ααααΆαααααα½ααααα Cloud Spanner (αααααΆαααααααα DDL αα·α DML αα αααα»α JDBC) αααααΆαα±ααααΆααααααααααα½αα ααα½ααααααΆαααααααααΌααααααΆαααααααααΌα ααΆ ααααα»αααΆααααααΆαα α¬αααααααααα αααΌαααααΆααα·αααααα (α§. Spring MVC) α ααΆααααααΆ αα αααααααΎ JDBC α’αααααΆαααααΈααΆααααα»αααΆαααααΎαααΎααααα»ααααααΆαααααα’αααα αΌαα α·ααα (α§. HikariCP, DBCP, C3PO ααα) αααααααΌαααΆαααΆααααα αα·αααααΎαααΆαααα’α αααα»αααααΈ Spanner APIs ααααΆαααααα½α ααΎαααααΌαααΉαααα’ααααΎ frameworks/binding pools/sessions αααααΎαααΆααααααΎααααα½αα―αα
ααΆααα ααΆααααΌαααααΆαα (PC) α’αα»ααααΆαα±αα Cloud Spanner ααΆαααααΏαααΏααα αααα αΌαααααΎαα·ααααααααΆαααααα»αααααΌααα ααα»ααααααααααΆααααα αΆαααα½ααα½αα ααα½ααααααα
- α’ααααα·αα’αΆα ααααΎαα αα α»ααααααααΆααααααααα ααααααΆαααα ααααΌαα’αααααααΌααααα»αααΆαα»α ααααΈαα»αααααΌαααααΎα α αΎααααα αΌαααΆα‘αΎααα·αααΆαα½αααΉααααααααααΈα (ααΆβααααααβαα βααΉαβαααΆαααΈαβααΌαααααΆαβαα·αααααα/αααΆαααΈαβαααα»αβαααβααααααβαα·αβαα»αααααΌαααβαααααβαααβα )
- ααΆαα UPDATE αα·α DELETE statements ααααΌααααααααΆαα PC αα αααα»α WHERE ααΌα ααααααΆαα·αα’αΆα αααααΆααα DELETE all statements - ααΆααααΌαααααΆα subquery ααΆαα·α αα α§ααΆα αααα UPDATE xxx WHERE id IN (SELECT id ααΈ table1)
- ααααααααααΎααααααΎααααααααααααααααα· α¬α’αααΈααααααααααΆααααααααααααΆαααααααΆααααΆααα»αααααΌαααα ααΎααααΈα±ααααΆααααΎαααΆα ααααααααααααΌαααααΆααααΌααααααααΎααα αααααααΆααααααα·ααΈα
ααααααααααααααΆααααααα?
Google Cloud Spanner ααΆαααΆαααΆαααααααααααΆααααααΆαα½ααααααΆααααααααααααααααΆαααααααα αααβααΊβααΆβαα»αααΆαβααβααα’βαα½αβαααβαα·αβαααααβααΆαβαα βαααα»αβαα αα αααα·ααααΆβαααααβαααβααα αα αα α»αααααα Apache Kudu αα·αααΆαααααα·αα·αααααααααΆαααααααααΆααααααα α αΎα Apache HBase αα·αααΆαααααα·αα·αααααααααααΆαααα ααα»ααααα’αΆα αααααααα½αααΆααΆαααα Apache Phoenix α
αα·αα·αααααα αααα»α Kudu αα·α HBase α’αΆα ααααΌαααΆαααααααΌααΆαααΆααΆαααΆα ααααα‘αααα½ααααααΆααααΆαααΆααααααααααΆααααα αααα ααα»ααααα’αΆααΌαα·αααααααα·ααααα·ααΆααααααΆαα’αα»αααααα ααΎααΆααΆααα αα·αααΆααΆααα·αα·αααααααααΆαααααααααααΌαααααααΎα‘αΎααα ααααα·ααααααα·ααΈ α αΎααα·αααααΆαααααα»αααΆαα’αα»ααααααααΉαααααΌαα
ααΌα αααααΆααααααΆαααα αααα»αααΆααα·αα·αααα‘αΎααα·α Cloud Spanner αααααααααααααααΆα’αΆα αα»αααΈααααααααα MySQL α ααΌα αααα ααΆαααα α·ααααα»αααΆαααα·ααααα½αααααααΌαααΆααααααα ααααααααΎααααα½α αα·αααααααααΎααααΈααΆααΆααΆαααααααααααααΉαααααΌαααααΌαααΆαααααΎαα αααααααααααααΌαααΆαα
ααααΆα?
ααααα»ααααααα·αα αα·αααΆααααααααααα αααα»αααΌαααααΆααα·ααααααααΊαα·αααααΆαα αα½αααα’αΆα ααΆααααααααααααααΆααααααΈααααΎααααΆαααα½αα ααα½ααα; α αααΌαα α·αααααΈααααααααα»αααΊαααααΆααα’ααΌααΈαααααα·ααααΆ αα·ααααααΆαααα»ααααα·ααΆαα ααΆα’αα»αα Cloud Spanner αα·αααΆααααααΆαααΎαααα αααααΆαααΆαααΆααααα ααααααααααΎααααααααααααααα»ααααα ααΈααααααα·αααΆαααααααΆααααα’α·ααααααΆααααΆαα’αα»ααααΆαα αΌαααααΎαα ααααα·ααα½ααα αααααΆαααΎαα’αΆα ααΆαααααααααΆααααα’αΆα αααααα ααΆαα
ααΌαααΎαα―αααΆα Cloud Spanner αααααΆαααααααααααααα’α·αα’αααΈααΌααΆ αα·αααΆαααΉααααααΉα (
ααΆααααααΆαα’αα·αααααα?
Cloud Spanner αααααααΌαααΆαααΆααααααΆααΆααααααααααα·ααΈαααααααααααΆααααααΎααΆαααΆαα½α API ααααααΆα αααααΆααααααααΆααααααΆααααΌαααΆαααΊαααα·ααα αααα»αααααααα C#, Go, Java, node.js, PHP, Python αα·α Ruby α α―αααΆααααααΊαααα’α·αααΆαα ααα»ααααααΌα αα ααΉααα αα αααα·ααααΆααααΎαααααααααααα αα ααααααΊααΌα ααΆααααΎαααααααααα ααΉααα αα αααα·ααααΆααΌαααααΆααα·ααααααααααααα·αααααα»α αααα’αΆα ααΆαα±ααα αααΆααααααααΆα αααΎααααα»αααΆααααααααΆααααα αΆ α¬αααα αΆααααΆαααααΎααααΆααααααααΆα
α α»αβα ααααβααΆαβααΆααααβαααβααΆαβα’αα·ααααβααΌαααααΆαβαα·α?
ααΎαβαα·αβααΆαβααβααΎαβαα·ααΈβαααα»αβααΆαβαααααΎα Cloud Spanner instance αα
βαααα»αβααα·αααβαααβααα α’αααΈααααα·ααααα»ααααααΎαααα½αααΆαααΊααΌαααΆα Docker α
ααΆαααΆαααααααααααααααΆα?
ααΆααααααΎαα§ααΆα ααα Cloud Spanner ααΊααΆααααααΆααα α’αααααααΆααααααααΌαααααΎαααΎααααΆαααΆααααααΎααα α»ααααα α¬α§ααΆα αααααααααααα½α αααααΆααααααα αα·αα ααα½αααααΆααα αααα»ααααααααα·α ααΆααα½αααΆααΈ ααααΌααααα’αααααΉαααααΎαααΆαα
αααααΆααααΆααΌαααααΆαααΆα αααΎαα’αΆα α αΌαααααΎαααααααΆααααΈααααα Spanner αα αααα»α Google Console α αα·αααααΆααααα’α·ααααααααααα’αΆα ααααΆαααΆαααα Stackdriver αααα’αααααα’αΆα αααααααααα·ααααααα αα·ααααααΆαααααΌαααααΉααααααα
α αΌαααααΎααααΆα?
MySQL αααααααΌαααΆαααααααααΆαααΌααααΌααΆα αα·ααααα’α·ααααααΆααααΆαα’αα»ααααΆα/αα½ααΆααΈααααα’αααααααΎααααΆααα α’αααβα’αΆα βαααααβαα ααΆααααααααβα αΌαβααααΎβααΆααΆαβααΆααααΆααβααΆαβαααΆαβααΆαβαααα½α α¬βααΌααααΈβααβαααα»αβααβααβαα½αβααβααααβααΆβααα»αααααα Cloud Spanner ααααΎααααΆααα§ααααα Identity & Access Management (IAM) αααα Google αααα’αα»ααααΆαα±ααα’αααααααααααααΆααα αα·αααΆαα’αα»ααααΆααααα»αααααα·αααααααααα»αα αααααΎααααα’α·ααααα»αααΊαααααααααΆαααααα·αααΌαααααΆααα·αααααα ααααα·αααααΉαααααΈααααΎααααΆααααα·αααααααΆαα αααΎαα ααΆααααααααααααααα’αααα±αααααααααα·ααΆαααΆααα»ααααα·ααΆααααααααα αααα»αααΌα α αααααΆαα ααΆαααααααα α¬ααΆααααΈαααΎααααΈααΆαααΆαααΆαααααΎααααΆααααααΆα Spanner αααααααΆαααΆαα’αα»ααααΆαα
ααααα»ααα»α?
ααΎααααΈαα·ααΆαα±ααααΆαααα ααΆαα·αααΆαααΆαααααα»ααα»ααα αααα»α Cloud Spanner ααα αααααΈααΆαααααΌαααΆα SLA ααααααααα Google α’αΆα ααΆααΆααΆα’ααααα·αααΆααααααα·ααααααααΆαα½ααααααΆαααααΆααααΆααααααααααΉα α¬ααΌαααααΆααα·αααααα ααα α»αααααααα»ααα αα·ααΆαααΆααααααα·ααΈα αα αα α»ααααααααα αααααααΆααααα½ααααααΎααααΈααααα»ααα»ααα·ααααααααΊααΆαααααΆαααΆααααααα·ααΈααΈααΌαααααΆααα·αααααααα ααΆααααα·ααΆααΆααααα»αααΆα ααααα‘ααα
ααααΎαααΆααααα½α?
ααΎαααΆαααααΎ Yahoo! ααΎααααΈαααα»ααα·αααααα αα·ααααα½αααΆαααααα Cloud Serving Benchmarkα ααΆααΆαααΆαααααααααα αΆαααΈααααα»αααΆαααΆα YCSB B ααΆαα½αααΉααααΆααΆαααααααα 95% αα 5% α
* ααΆαααααΎααααααααα»αααααΌαααΆαααααΎαααΆααα
ααΎ n1-standard-32 Compute Engine (CE) (32 vCPU, 120 GB memory) α αΎαααΆαααΆαααααααααα·ααααααΆααααα αΆαααα»αααΆαααΆααααααααααα
** α
ααα½αα’αα·ααα·ααΆαααααααααα‘αΆααααα»αα§ααΆα ααα YCSB αααα½αααΊ 400α ααΆαααααΎααααα YCSB ααα»αα
ααα½αααααΆααα½αααααΌαααααααΎαααΆαααΎααααΈααα½αααΆαααα»αα
ααα½α 2400 αααααααα‘αΆαα
αααα‘ααααΎαααααααααα ααΆαα·αααααΆααα½αααααααααΆααααα»α CPU αα·α TPS ααΎαα’αΆα ααΎαααΎααααΆαα αααΆααααΆ Cloud Spanner ααααΎααΆαααααααΆαααΆααααΆαααα’α ααααα»ααααααααααααααΎαα‘αΎααααα ααα½αααα αααΎααααααααααα‘αΆαααααΌαααΆαααΌααΆαααααα ααα½αααα αααΎαααααααΆαααα αααα»αα ααααα Cloud Spanner α αααααααααααΆαααΊααααΆαααΎααα αααααααΆαα ααΆαα·ααααα αααααααΎαααΆαααΆαα½α 2400 threads ααΆαααααΎααααααααααααααΆαα½αααΉα 6 ααααΈααΌα ααααααΆαααΈαααααΆαααα ααααΆα αΆαααΆα αααΎααααΈααα½αααΆααααααααΉαααααΌαααΆααα»αα ααααα»ααΈαα½ααααΉαααααΎαααΆαααΆαααααΎααααα YCSB αα½ααααα½αα±ααααααα» CE αααααα½ααααααΆαααΆαααααΎααααααααΆαααΆα‘ααα ααα½α 6 α αα·ααΈααα ααΆααΉαααΆααααααΆααααα½ααααα»αααΆααααα αααααΆαααΆαααΊααααΆαααααααΎαααα Cloud Spanner αα·αααΆαααΊααααΆααααααααΌαααΆααααααααααααΆαααααΆαααααααΆααααΆα Cloud Spanner αα·α CE instance αααααααΎαααΆαααΆαααααα
ααΎ Cloud Spanner ααααΎαααΆαααΆ OLAP αααΆαααΌα ααααα ?
ααΆααααα αα?
ααΆααααα αααα·αααααααα ααΆαααααα―αααΆαααααΆαααΌααααα αα·α/α¬α‘αΌααΈαα αααα α ααΆααΆαααΆα ααΊααΆαααα·αααααααα·αααααααΆααα αααα»ααααΆαααΈα OLAP ααΆαα αααΎαα ααΆαααΆαα’αΆα ααααΎα±αααααααΎαα‘αΎααααΆαααααΆααααΌαααααΎαααΆααααα½α αα·αααααααΆααααααΆααΌαααααΆααα·ααααααα α αΌαααΆαααααααα αα αααα»αααΆααααα ααααΆα’αααααααΆα ααααα‘αα ααΌα ααααααΎαααααΆαααααα·ααΆαα’αααΈααΆααααααΆααααααΆαααΆααααααααΆαααααΆααααα αα αα·αααΆααααα ααααα αααααααΆααααα»αααΆαααααααα·αααααααα ααΆααΆαααΆα αα·αααΌααααΈαααααααααααα αΌααα αααα»ααααααααααΊααΆαααααΉαααααααΎαααΆααααα½ααα·ααΆαα
Cloud Spanner αα·αααΆααααααΆαααΆαααααααααα ααΆαααα αααα·ααααααααΆααααα»ααα ααΆα’αααΈαααααα α ααΆ ααααα-s ααα’ααααΎαα½ααααααΉαα ααααα ααΆααααα ααααααΌαααΆαα’αα»αααααααααααααααααααα·ααΎααααΈααααΎα±ααααΆααα»αααααΆαααααα»ααα αααα»αα ααααα Cloud Spanner α αα»αααΆαααααΆααααααααααααα Cloud Spanner ααΊααΆααααααααααα»αααΌαααααΆαααααααΆααΆααα (ααΆααΆαααααα·αααΆαααΆαααααααααααααΆαα½ααααααααα)α Spanner ααααΎααααααααααααααααα·ααΆααΎααΆααΆα ααααα αα·αααααααααααααΌαααΆαα’αΆαααΉαααΆααααΆααα·αααααααα αααα»αα’αααααα ααααα-ah, α αΎαα’αΆα αααααα α α·αααααΎααΆαααααααααααααααα αα·ααΈααα ααααΆααααΆααααα αααΎαα’αΆα ααΆαααααααααΉαααΆαααααΎαα»α ααααααααΎαααααα·αααααΆααααααα
αααα»ααααα»ααα·αααααα?
αα·ααΈααΆααααα Cloud Spanner αααααΆαααα·ααααααααΆαα αααΎαααΊααΌα ααααΆαα ααΉαααΆααααα»αααααααΆα ααΎααααΈαααααα ααΆαααΌαααΆαα’αα»ααααα’αα·ααααΆ α’αααααααΌαα’αα»ααααααΆαααΆαααααΆααα½αα ααα½α αα½αααΆαα
- αααααααα·ααααααααααα’αααααΆααααααΉαα ααααα
- α αααα½αααΆααα 10 *α ααα½αααααΆαα αααααααΆα ααααα‘ααα
- αααααΎααααα»ααααα·α αα ααΆαααΆαααΆαααααααα»ααα·ααααααααααααααΆα
ααΆααααα»ααα·αααααααααααααΎααααΆααααααΆαα Cloud Spanner ααΆααα’ααα
ααΎαααΆαααααΎααααα»αααΆαααΆα YCSB A ααΎααααΈαααααΎααααα»ααα·αααααα 10M αα½αα
* ααΆαααααΎααααααααα»αααααΌαααΆαααααΎαααΆαααΎαααΆαααΈαααααΆ n1-standard-32 (32 vCPU, α’αααα
αα
αΆα 120 GB) α αΎαααΆαααΆαααααααΊαα·ααααααΆααααα αΆαα
αααα»αααΆαααααΎααααααααααα
** ααΆαααα‘αΎαααααΆαααααα½ααα·αααααΌαααΆαααααΆααααααΆααααααα»αααα·αααααααΆαα½αα‘αΎαα
ααΌα αααααΆααααααΆααααΆαααΎ Cloud Spanner ααααΎαααΆαααΆαααααααααααααααααααααα·αααααα’ααααΎααααα»ααααααα½ααα ααΌα ααααααααααααΉααααααΎαα‘αΎααααααΆααααΈααΆαααααΎαααααααααα αΎααααααααααΆαααααααααΆααα αααααααααααΆααααα αΆααα ααΈααα ααΊααΆααααααααααα’αααα»ααααααΎαααα½αααΆαα αααα‘ααααΎααααααΆαααΎ ααΎαα’αΆα ααΎαααΎαααΈααααααα Cloud Spanner ααααΎααΆαααααααΆα (ααα’) αα ααααααα ααα½αααααΆαααα αααα»αα αααααααΎαα‘αΎαα ααααααααα ααααααΊ latencies ααΆαααααααΆααααα»α ααααααα»αααΈαααααααααααΆααααααα»αααΆαααΆαα αααα»α (95% α’αΆα αα·α 5% ααααα) ααΌα αααααΆααα·αααααΆαα αααα»ααααααααΆαααΎα
ααααΎααΆαααααααΆα?
ααΆααααααΎα αα·ααααααα ααα½αααααΆαα Cloud Spanner ααΊααΆαα·α αα ααΆααααα α»α ααααααα ααααα·αααΎβα’αααβα ααβαααα»αβαα·ααααααβααΆαβααΏα α’αααβα’αΆα βααΉαβαα·α αΆαααΆβααΈβααΆαβαααααΎαβα§ααΆα αααβααααα’αααβαααβα’αα·ααααΆ (αααα»αααααΈβααααααΎαβααΆβααΆα 25 nodes αα αααα»αααααα US-EAST) α αΎαβαααααΆααααβααΆαααααααβα ααα½αβααααΆααβαααβααΆαβαα·αααα·βαααααΆααβααΆααααα»αβααααααΆβααααα’αααβαα ααααααβαα·ααααααβααΆααα’ααβα αΌαα ααΌαααααΆααα·αααααα αααααααα ααΎαααααααα 2TB/node α
ααΎαβααααΌαβααΆαβααβααααΉαβααΈβααααα·αβαααβααΌααααΈβααβααΆαα½αβααΉαβααΌαααααΆαβαα·ααααααβααΌα βααΆαβαααβα αααααΆααααΈααααΎαααΆαααΆαααααααΆα αααΎααα ααΌαααααΆααα·ααααααααααααΎαααΆαααα ααααα αα 155 GB α αΎααα ααααααααΆααααααααα ααα 1 node instance ααΎαααΆαααα½αααα α»αααΌα ααΆααααααα
ααΎαα’αΆα
ααααΎααΆαααααααΆαα
α»αααΈ 25 αα
2 ααααΈ ααα»ααααααΎαααΆαααΆααααΆαααα
ααααΆααααΈαα
ααΆααααααΎα αα·ααααααα ααα½αααααΆαααα αααα»αα ααααα Cloud Spanner α’αΆα ααααΌαααΆααααααααααααααααα·αααααααΎ REST API α ααΆα’αΆα ααΆαααααααααααΆαα·ααααααααΆααααΆαααααααααΆααααα»αααααααααααΎαα‘αΎααααα»αα’αα‘α»ααααααααααΆαααΆααααααΆααΉαα
ααΆαα’αα»αααααααα½α OLAP?
ααΎαα‘αΎα ααΎαααΆαααααααα αααΆααααααααΆα αααΎααααα»αααΆαααΆαααααα Spanner ααααααΎαααΎααααααααα αααααΆααααΈ SELECT COUNTs ααΆα αααΎα ααΎαααΉαααααΆααααΆααΆαααααΎαααααααΉαααΆαααααααααααΈ α αΎα Spanner ααΉααα·ααααααΆαααΆαααΈαααααααααααααααΆαα OLAP αααααα ααααα·ααα·αααΈα ααα½αααααΆαααα αααα»αα ααααα ααΆαααααΆααααααααΎαααΎαα ααα½ααα½αααααααα»αααΆααΆααα½α 10M α αααΆααααααΈ 55 αα 60 αα·ααΆααΈα ααΎαααΈαααααα ααΆαααααα½ααααααΆαααΆαα’αααα αα αΆαααααααααΎααααΈαααααΆαα»αααααααααααα·ααααααααΆααααΆαααααΆαα½αααΉαααα α»α OOM α
SELECT COUNT(DISTINCT(field0)) FROM usertable; β (10M distinct values)-> SpoolingHashAggregateIterator ran out of memory during new row.
ααααα½αα
ααα½ααααααΆαααααα½α TPC-H α’αΆα
ααααΆααα
αααα»αα’ααααααααα Todd Lipcon
4. ααΆαααααα·ααααΆαααααααΎαα
ααααα·αααΈααααΆαααΆααα αα α»αααααααααααααααα·ααααααα Cloud Spanner ααΆαα·ααΆααααα»αααΆααααααααΆααΆααΆααΆααααα½αααααΆαααααααααΆαααααααααααΆα OLTP αααααΆαααααΆααααααα’ααα ααΆαα·ααααα αααααααααααΌαααΆαααααα’αααααΎαααΈααΆα αααααααΆααααααΆαααα½αααΉαααααΌαα αααΆααααα»αααΆααααΆααααααααααΆααα»ααα·αα ααα»α ααααααΆααααα Cloud Spanner α
αα αααααΎαα αΆααααααΎαααΆαααααα Cloud Spanner ααΎαααααΉαααΆαα»αααΆααααααααααααααααΆααΆαααααααααΌα ααααΆ α¬αααΆαα αα ααΆαααα·αααααΆαααΈαααααααααΆα Google SQL ααααααααα ααα»ααααβααΎαβααΆαβααΆαβααααΆααβααα’αΎαβαααβααΆαβαααααβααΆαβααααα»αβαα»αβαααααα αα·αβααΆαβαααααβααααβααααα·αβααααΆααβααΎβααΆαβα αΌαβααααΎααααΆααβααααΆαα αα·ααα·ααΆαααΈαααααα ααααΆαααα·ααΆααΆαα’αα·αααααααααα»ααααα»α ααααΆααααααα·αααΆαααα JDBC αααααααΆαααΆαααΆαααα DML αα·α DDL α αΎαααΌα αααααα ααΎα
ααΌα αααα ααΎβα’αααβαααβααααΌαβααααΎβααΆαααααααΆαβαα·ααααααβααααα·ααααα·ααΆαβαα βααΆ? ααΆα αΆααααΌα ααΆαα·αααΆααααααααααΆααααα½ααα ααΎααΈααααΆααααααααΉαααααΈααααΎααααΆααααΆααα’ααα ααΆααααααααααΆαααααααα·α αα·ααααααααΎαα αα ααΆα αααΎα (αα½αα ααα½ααααααααΌαααΆαααΎαα‘αΎααα αααα»αα’αααααααα) αααααΈαα½ααααΆαααΆαααααΆαα αα·αα ααα»α ααααααααααα½ααα ααα»ααααααααΆαααααΆααααΆαααααα»αα αααααα½αααααααα SaaS ααΆαα½αααΉα 99,999% SLA αα·αααΆααααΈαααααΆααααααΆαααααα ααααα·αααΎ SLA αααααααΊααΆααααα α ααααααααα’ααα α αΎαα’ααααα·αααΆααααααα αααααααΎααααααααααΆααα α»αααααααΆαααααα½ααα Cloud Spanner α’αΆα ααΆαααααααααΆααααα’ααααααα»ααααααααα ααα»ααααα’ααααα½αααααΉαααΈααααααααααααααΆα
ααΎααααΈα±ααααΆαααΆααα»αααα·ααα Cloud Spanner ααΎαααααααΌαααΆαα
ααααααΆαααΆααΆααΆααααα
αα·ααΆααααΌαααααΆα 2017 ααΌα
ααααααΆααα ααα»αααααα»αααΆαααααΉαααΆααΆαααααααΆααα
αα
α»αααααααα½αα
ααα½αααααααΆα’αΆα
ααΉαααΆαααα
αα·α (αααααΉαααΆ) α αΎααα
αααααααα½αααααααΎ ααΆα’αΆα
ααΆα’αααααααΆααααααΌαα ααααα αααΆαααΆαα·α Cloud Spanner αα·ααααααααΆααααααΆααααααα
αα αααααααΆαα Google αααααα Google ααααΎααΆααΆααΌαααααΆααααααΆααααα·ααα Google ααααααααα α αΎααα
ααααααααααΈαααα Google ααΆααααα½α Megastore αα
αααα»α Google Cloud Storage ααΆαα½α Cloud Spanner ααΆα’αα»ααααΆαα±αα Google Cloud Storage ααΆαααΆααααΈαααααΆααααααΆαααΆαααααΆαααααααΆαααααααΈααααα»αα
ααΎααΆαααααααΆαααα (ααααα
αααα·ααααααΆααααΈαααααΆαα
ααΌα αααα αα ααααΆααααααΉα... ααΎααααααΉαα
α’ααα αΎαα ααΌα βα’αααβαα·ααααβα’ααααα ααΎαβααβααααβαααααΉαβααα ααα»ααααβααΎβα’αααβαααβαααΆαβααΆβα ααααβααΏαβααα? ααααααα αααα»αααα·ααααα
ααΎαααΌαα’ααααΎαα’αααααΆααα’ααααααΆααααααααΆααααααΎαα
ααααα: www.habr.com