rabbit-slide-kou-pgconf-asia-2016 2016.12.3.1 → 2016.12.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e9e56912a6ba5ba5a6e8d4fa15578604df83ae69
4
- data.tar.gz: ddbedc66bc2bf92fe62bab90a7100131a33bc01d
3
+ metadata.gz: 035d86da01bae9e7f4dca419ab71bc46783ba024
4
+ data.tar.gz: 7380e6a2bfbdad393cccdc38a4339f3d04d7509c
5
5
  SHA512:
6
- metadata.gz: 6494bbdab2af883956695df206d29641b55c76c6cd1cd5f7b02ffe1dd42df30f3442cf569a95967023656ed67dff7f87ecd6b9e25ce76196d752d0831f360987
7
- data.tar.gz: 0143c74f1cd6616f14c05a804ab6060b5e36aa7b92dad990af5fea4c6f29c179f445eaed0d1adf369abd723cbe6be2642cede31d407fadcf23f2f41dfe32483b
6
+ metadata.gz: 4eb0fa7e862b75a3f71e8b6377eefb17b367730fdd7b97ceae8fa3b84162e1546b9e8f9468565fc2b24881d0f7c5a090b8a28464789ba6dc08b6ffa4ca0f5563
7
+ data.tar.gz: 2fc68d1038ac98b61db0c3980081582054112e8588389f6fb2f96e8886575fcc95d03dddfd3578bbf6599c3dedcdb044b4bedc5f33d03c84add305dafad4584f
@@ -6,7 +6,7 @@ tags:
6
6
  - pgroonga
7
7
  - postgresql
8
8
  presentation_date: 2016-12-03
9
- version: 2016.12.3.1
9
+ version: 2016.12.3.2
10
10
  licenses:
11
11
  - CC-BY-SA-4.0
12
12
  - CC-BY-3.0
@@ -316,14 +316,14 @@
316
316
  inkscape:pageopacity="0.0"
317
317
  inkscape:pageshadow="2"
318
318
  inkscape:zoom="1.4"
319
- inkscape:cx="291.32061"
320
- inkscape:cy="178.64967"
319
+ inkscape:cx="291.33318"
320
+ inkscape:cy="292.12282"
321
321
  inkscape:document-units="px"
322
322
  inkscape:current-layer="layer1"
323
323
  showgrid="false"
324
- inkscape:window-width="1920"
325
- inkscape:window-height="1016"
326
- inkscape:window-x="1920"
324
+ inkscape:window-width="1024"
325
+ inkscape:window-height="704"
326
+ inkscape:window-x="0"
327
327
  inkscape:window-y="27"
328
328
  inkscape:window-maximized="1"
329
329
  fit-margin-top="5"
@@ -339,7 +339,7 @@
339
339
  <dc:format>image/svg+xml</dc:format>
340
340
  <dc:type
341
341
  rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
342
- <dc:title></dc:title>
342
+ <dc:title />
343
343
  </cc:Work>
344
344
  </rdf:RDF>
345
345
  </metadata>
@@ -534,7 +534,7 @@
534
534
  sodipodi:nodetypes="cc"
535
535
  inkscape:connector-curvature="0"
536
536
  id="path4336"
537
- d="m -149.90468,129.3986 0,40.20305"
537
+ d="m -149.90468,125.82717 0,56.63162"
538
538
  style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4356)" />
539
539
  <text
540
540
  sodipodi:linespacing="125%"
@@ -808,40 +808,18 @@
808
808
  id="tspan5074">(Point: In PGroonga)</tspan></text>
809
809
  <g
810
810
  id="g5507"
811
- transform="translate(-71.602156,-72.741644)">
811
+ transform="translate(-71.602156,-64.884501)">
812
812
  <text
813
813
  sodipodi:linespacing="125%"
814
814
  id="text4558"
815
- y="277.1691"
815
+ y="289.1691"
816
816
  x="-105.25858"
817
817
  style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
818
818
  xml:space="preserve"><tspan
819
819
  id="tspan4562"
820
- y="277.1691"
820
+ y="289.1691"
821
821
  x="-105.25858"
822
822
  sodipodi:role="line">&quot;ca&quot;,&quot;at&quot;</tspan></text>
823
- <text
824
- sodipodi:linespacing="125%"
825
- id="text4846"
826
- y="312.24121"
827
- x="-79.601219"
828
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#204a87;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
829
- xml:space="preserve"><tspan
830
- y="312.24121"
831
- x="-79.601219"
832
- id="tspan4848"
833
- sodipodi:role="line">1</tspan></text>
834
- <text
835
- sodipodi:linespacing="125%"
836
- id="text4850"
837
- y="312.27246"
838
- x="-1.5595034"
839
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#204a87;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
840
- xml:space="preserve"><tspan
841
- y="312.27246"
842
- x="-1.5595034"
843
- id="tspan4852"
844
- sodipodi:role="line">2</tspan></text>
845
823
  </g>
846
824
  <path
847
825
  sodipodi:nodetypes="cc"
@@ -22,9 +22,9 @@ Some my patches are merged\n
22
22
 
23
23
  = Patches\n(('note:パッチ'))
24
24
 
25
- * (('wait'))BUG #13840: pg_dump generates unloadable SQL\n
25
+ * (('wait'))#13840: pg_dump generates unloadable SQL\n
26
26
  (('note:pg_dumpがリストアできないSQLを出力する'))
27
- * (('wait'))BUG #14160: DROP ACCESS METHOD IF EXISTS isn't impl.\n
27
+ * (('wait'))#14160: DROP ACCESS METHOD IF EXISTS isn't impl.\n
28
28
  (('note:DROP ACCESS METHOD IF EXISTSが実装されていない'))
29
29
 
30
30
  (('wait'))
@@ -43,7 +43,7 @@ They are found while developing PGroonga\n
43
43
 
44
44
  = PostgreSQL and FTS\n(('note:PostgreSQLと全文検索'))
45
45
 
46
- * PostgreSQL has out-of-the-box full text search feature\n
46
+ * PostgreSQL has built-in full text search feature\n
47
47
  (('note:PostgreSQLには組込の全文検索機能がある'))\n
48
48
  * (('wait'))It has some problems...\n
49
49
  (('note:ただ、いくつか問題がある'))
@@ -242,7 +242,7 @@ pg_bigm
242
242
  * "cat"→"ca","at"
243
243
  (2) ((*Search all tokens*))\n
244
244
  (('note:すべてのトークンを検索'))
245
- * "ca" and "at" exist: Candidate!
245
+ * "ca" & "at" exist: Candidate!
246
246
  (3) ((*Check appearance pos.*))\n
247
247
  (('note:出現位置をチェック'))
248
248
  * "ca" then "at": Found!
@@ -461,7 +461,7 @@ for all languages!
461
461
 
462
462
  = Performance: Wrap up\n(('note:性能:まとめ'))
463
463
 
464
- * Keep fast search with update\n
464
+ * Keep fast search w/ update\n
465
465
  (('note:更新しながらでも高速検索を維持'))
466
466
  * Support index only scan\n
467
467
  (('note:インデックスオンリースキャンをサポート'))
@@ -556,18 +556,49 @@ prefix Romaji/Katakana search\n
556
556
  (('note:(GIN supports only this style)'))\n
557
557
  (('note:(GINはこのやり方だけサポート)'))
558
558
 
559
- = JSON: FTS\n(('note:JSON:全文検索'))
559
+ = JSON: FTS: Data\n(('note:JSON:全文検索:Data'))
560
560
 
561
561
  # coderay sql
562
+ CREATE TABLE logs (
563
+ record jsonb
564
+ );
562
565
  INSERT INTO logs (record)
563
566
  VALUES ('{"host": "app1"}'),
564
567
  ('{"message": "app is down"}');
568
+
569
+ = JSON: FTS: Index\n(('note:JSON:全文検索:インデックス'))
570
+
571
+ # coderay sql
572
+ CREATE INDEX message_index ON logs
573
+ USING GIN
574
+ ((record->>'message') gin_trgm_ops);
575
+ -- {"message": "HERE IS ONLY SEARCHABLE"}
576
+ CREATE INDEX record_index ON logs
577
+ USING pgroonga (record);
578
+ -- All string values are searchable
579
+
580
+ = JSON: FTS: GIN\n(('note:JSON:全文検索:GIN'))
581
+
582
+ # coderay sql
583
+ SELECT * FROM logs
584
+ WHERE record->>'message' LIKE '%app%';
585
+ -- ↑ {"host": "app1"} isn't target
586
+ -- record
587
+ -- ----------------------------
588
+ -- {"message": "app is down"}
589
+ -- (1 row)
590
+
591
+ = JSON: FTS: PGroonga\n(('note:JSON:全文検索:PGroonga'))
592
+
593
+ # coderay sql
565
594
  SELECT * FROM logs
566
- WHERE record @@ 'string @@ "app"'
567
- -- record
568
- -- --------------------------
569
- -- {"host": "app1"}
570
- -- {"message": "app is down"}
595
+ WHERE record @@ 'string @ "app"';
596
+ -- ↑ All string values are target
597
+ -- record
598
+ -- ----------------------------
599
+ -- {"host": "app1"}
600
+ -- {"message": "app is down"}
601
+ -- (2 rows)
571
602
 
572
603
  = JSON: Wrap up\n(('note:JSON:まとめ'))
573
604
 
@@ -576,7 +607,7 @@ prefix Romaji/Katakana search\n
576
607
 
577
608
  = Replication\n(('note:レプリケーション'))
578
609
 
579
- * Support with PostgreSQL 9.6!\n
610
+ * Support with PG 9.6!\n
580
611
  (('note:PostgreSQL 9.6で使う場合はサポート!'))
581
612
  * PostgreSQL 9.6 ships "generic WAL"\n
582
613
  (('note:PostgreSQL 9.6で「generic WAL」機能が追加'))
@@ -586,7 +617,7 @@ prefix Romaji/Katakana search\n
586
617
  = Implementation\n(('note:実装'))
587
618
 
588
619
  (1) Master: Encode action logs as MessagePack\n
589
- (('note:マスター:アクションログをMessagePackでエンコード'))
620
+ (('note:マスター:アクションログをMessagePack形式に変換'))
590
621
  (2) Master: Write the action logs to WAL\n
591
622
  (('note:マスター:アクションログをWALに書き込み'))
592
623
  (3) Slaves: Read the action logs and apply them\n
@@ -646,7 +677,7 @@ prefix Romaji/Katakana search\n
646
677
 
647
678
  = Replication: Wrap up\n(('note:レプリケーション:まとめ'))
648
679
 
649
- * Support with PostgreSQL 9.6!\n
680
+ * Support with PG 9.6!\n
650
681
  (('note:PostgreSQL 9.6で使う場合はサポート!'))
651
682
  * Concept: Action logs on WAL\n
652
683
  (('note:コンセプト:WAL上にアクションログを書く'))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbit-slide-kou-pgconf-asia-2016
3
3
  version: !ruby/object:Gem::Version
4
- version: 2016.12.3.1
4
+ version: 2016.12.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou