GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
クラウドや多言語の環境に対応できる 新しいJava実行環境 GraalVM は、ネイティブビルドだけでなく、通常の Java VM として使うこともできます。
このたび、クラウド環境用ベンチマーク「BluePerf」などを使い、GraalVM と OpenJDK を比較したので、結果を報告します。
Japan Java User Group (JJUG) Cross Community Conference (CCC) 2021 Fall 発表資料
https://www.youtube.com/watch?v=5MtjfQfdC_g
Neo4jは、グラフ理論をデータベースエンジンの設計思想として採用しているDBMS (Data Base Management System)です。特にNeo4jが、他のグラフデータベースに比べ、一目をおいていることは、データ処理にCypherというSQLライクなクエリ言語が使えるということです。Cypherは、関係型データベースでさえ苦手とするとても複雑なジョインが絡む処理や、そもそもSQLではアルゴリズムの限界があるデータ処理にも対応できます。
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
クラウドや多言語の環境に対応できる 新しいJava実行環境 GraalVM は、ネイティブビルドだけでなく、通常の Java VM として使うこともできます。
このたび、クラウド環境用ベンチマーク「BluePerf」などを使い、GraalVM と OpenJDK を比較したので、結果を報告します。
Japan Java User Group (JJUG) Cross Community Conference (CCC) 2021 Fall 発表資料
https://www.youtube.com/watch?v=5MtjfQfdC_g
Neo4jは、グラフ理論をデータベースエンジンの設計思想として採用しているDBMS (Data Base Management System)です。特にNeo4jが、他のグラフデータベースに比べ、一目をおいていることは、データ処理にCypherというSQLライクなクエリ言語が使えるということです。Cypherは、関係型データベースでさえ苦手とするとても複雑なジョインが絡む処理や、そもそもSQLではアルゴリズムの限界があるデータ処理にも対応できます。
本文件提供了 Microsoft SQL Server 2012 的安装与基本使用教程,包括系统需求、安装步骤以及常见问题的解决方法。文档详细说明了应先安装 SQL Server,再安装 Visual Studio 的重要性,并展示了如何创建数据库、表格以及执行基本的 SQL 指令。最后,文件还提出了一些练习课题,以帮助学习者巩固所学知识。
The document outlines the history, features, and comparisons of Redis, Memcached, and Aerospike, detailing key developments in Redis from its inception to version 3.0. It highlights the architectural differences between Redis and Memcached, emphasizing Redis's single-threaded simplicity and in-memory persistence, while noting Memcached's multi-threaded advantages. Additionally, it discusses Aerospike's strengths, such as ACID compliance and scalability, and the challenges of benchmarking different database systems effectively.
Enterprise Architecture Case in PHP (MUZIK Online)Yi-Feng Tzeng
The document presents a comprehensive overview of enterprise architecture in PHP, detailing the evolution of the 'muzik' architecture from its inception through various stages, each named after classical composers. Key themes include the significance of architectural decisions, the transition from monoliths to microservices, and the impact of these choices on performance and scalability. Additionally, it emphasizes the importance of adapting technological strategies without falling into the pitfalls of adopting architectures that do not fit specific contexts.
The document discusses the history and evolution of the English language from its origins as Anglo-Frisian dialects brought to Britain by Anglo-Saxon settlers in the 5th century AD. Over time, the language was influenced by Old Norse during the Viking invasions and later by Norman French following the Norman conquest of 1066, gaining vocabulary from both. Modern English began emerging in the late 15th century after the invention of the printing press allowed written English to become more standardized.
The document discusses the impact of climate change on global ecosystems and biodiversity. It highlights the urgency of addressing environmental challenges to mitigate adverse effects. Key strategies for conservation and sustainable practices are also outlined.
The document discusses practical full-text search solutions in PostgreSQL, highlighting various methods including with and without indexing using systems like Sphinx and Apache Lucene. It contrasts the performance of different search methods, emphasizing the importance of appropriate indexing for efficiency and accuracy in querying large datasets. The document concludes with a comparison of indexing speeds and storage requirements across different systems, providing insights into the best practices for full-text search implementation.
The document discusses the importance of effective communication in the workplace. It highlights various techniques to improve interaction among team members. Additionally, it emphasizes the role of active listening in fostering collaboration.
This document provides an overview of five steps to improve PostgreSQL performance: 1) hardware optimization, 2) operating system and filesystem tuning, 3) configuration of postgresql.conf parameters, 4) application design considerations, and 5) query tuning. The document discusses various techniques for each step such as selecting appropriate hardware components, spreading database files across multiple disks or arrays, adjusting memory and disk configuration parameters, designing schemas and queries efficiently, and leveraging caching strategies.
The document is a presentation on advanced PostgreSQL administration, covering installation, configuration, maintenance, and monitoring. It provides detailed information on server initialization, authentication methods, permissions, and configuration settings. Additionally, it addresses transaction management, query tuning, and logging best practices.
本文檔介紹了在 Visual C++ 2005 上開發 C++ 程式和使用 Boost 庫的技巧,並探討了 C++ 語言的特性及其歷史。主要內容涵蓋了 Boost 庫的應用、字串處理及動態記憶體管理等主題,以幫助開發者提升程式碼的效率和安全性。作者邱銘彰提供了自己的專業背景,並分享了對於 C++ 和 Boost 的深刻見解。
Severless PHP Case : Agile Dashboard via GitLab Board APIYi-Feng Tzeng
The document discusses serverless technology in the context of PHP development, emphasizing its appeal due to reduced operational complexity and cost-effectiveness through pay-as-you-go models. It touches upon the evolution of serverless from agile methodologies and its advantages like granular scaling and observability. Additionally, it highlights resources and tools for implementing serverless PHP solutions and addresses considerations like cold starts and performance optimization.
The document discusses various concepts of progressive deployment and DevOps methodologies, emphasizing the importance of resilience and control in deployment processes. It outlines the complexities of contemporary application development, including the need for continuous integration, delivery, and deployment in distributed microservices environments. Key strategies such as feature flags, testing in production, and chaos engineering are highlighted to improve software reliability and reduce integration issues.
Dev(Sec)Ops - Architecture for Security and ComplianceYi-Feng Tzeng
The document discusses the integration of security within DevOps and Agile methodologies, emphasizing the need for a DevSecOps culture that embeds security throughout the software development lifecycle (SDLC). It outlines various practices such as secure coding, compliance with regulations like GDPR, and the importance of involving security stakeholders in the development process. The author highlights challenges in maintaining security during Agile practices and the necessity of automated security testing within continuous integration and delivery pipelines.
Swoole is a C extension for PHP designed to enhance performance through multi-threading and async capabilities, allowing for various server implementations like HTTP, WebSocket, and TCP. The document discusses Swoole's architecture, installation, performance features, and provides examples of asynchronous MySQL connections and HTTP clients. Additionally, it addresses the reasons why some organizations prefer Swoole over Go, citing factors like developer familiarity and training time.
This document discusses timing attacks against web applications. It begins by referencing a previous conference presentation on timing attacks and front-end performance vulnerabilities. It then demonstrates how subtle differences in response times can reveal privileged information, like whether a username is valid. The document advocates adding random delays to responses to mitigate these timing attack vectors. It provides several examples of timing attacks in practice and potential mitigation techniques to obscure timing patterns and prevent secret information leakage.
66. 66/147
2015
Auto / Manual Clean Dead Node
Ref: https://www.facebook.com/groups/199493136812961/permalink/731201573642112/
67. 67/147
2015
Auto / Manual Clean Dead Node
Ref: https://www.facebook.com/groups/199493136812961/permalink/729886527106950/
作者一直強調:
1. DBA 一定要知道什麼時候系統最清閒。
2. 手動決定而不要自動。
68. 68/147
2015
Auto / Manual Clean Dead Node
《我的解釋》
很多營運不是政府機關或金融單位。夜間也不一定可以緩機
休息。因此,面對全球化營運思維時,系統隨時都有高承載
的可能。這意謂著系統即使相對上有「比較空閒」的時間,
但此時線上人數都還可能超過數萬,甚至數百萬人使用。
這時候的任何回收行為都會影響正常的系統營運。
還是回到初衷,選擇最適你的業務需求。
69. 69/147
2015
Auto / Manual Clean Dead Node
《 Sentry 的災難與慘痛經驗 》
The internet is full of awful advice of users suggesting you
should turn off autovacuum, or run it manually at low traffic
times, or simply adjust its schedule to run less often. To know
why that’s ill-advised, you first need to understand the
consequences of autovacuum not running.
網路上很多人建議關閉 AUTOVACUUM ,改以排程或手動
選擇負載低的期間執行 VACUUM 。但這是不明智的,你只
要知道不運行 AUTOVACUUM 會帶來的各種嚴重後果就會
明白了。
Ref: http://blog.getsentry.com/2015/07/23/transaction-id-wraparound-in-postgres.html
89. 89/147
2015
MySQL index->lock contention
《整理》
作者的論點 ( 雖然兩者衝突 )
1. MySQL 的 B+ tree 在 page splitting / merging 時 ,(always) 整棵
B+ tree 都會加上 WRITE_LOCK 。
2. 只有 leaf-node split / merge 會引起 index X lock 。
我的論點 ( 兩個是獨立事件 )
1. “latch” “與 lock” 的定義在 MySQL 中不一樣。
2. ”latch” “只是 one page” ,不等同於 "full index" 。
( ”但若 latch” ”不只是 one page” 則可能 )
2. “latch” ”可以對 node” ”,也可以對 full index” 。
90. 90/147
2015
MySQL index->lock contention
Ref: http://mysqlserverteam.com/mysql-5-7-improves-dml-oriented-workloads/
Before 5.7, every modifications to non-leaf pages (every modifications for the
tree structure) required to exclude the other threads’ access to the whole index
by X-lock, and every concurrent accessing the index tree were blocked.
91. 91/147
2015
MySQL index->lock contention
Ref#1: http://mysqlserverteam.com/mysql-5-7-improves-dml-oriented-workloads/
Ref#2: http://www.percona.com/blog/author/yasufumi/
Ref#3: http://dev.mysql.com/worklog/task/?id=6326
Ref#4: https://github.com/mysql/mysql-server/commit/070115a3d9548f790039c39a48b19d759ab2407c
Before 5.7, every modifications to non-leaf pages (every modifications for the
tree structure) required to exclude the other threads’ access to the whole index
by X-lock, and every concurrent accessing the index tree were blocked.
MySQL 開發者講了兩件事:
1. page split / merge “時,只有發生在 non-leaf pages” 時才會 whole index locked 。
2. page split / merge “時,只有在 non-leaf pages” ”才稱 tree structure modification” 。
補充:這位 MySQL 開發者是誰?
1. 他是 Yasufumi Kinoshita 。
2. Percona 官方認證數一數二 InnoDB 專家,從事 InnoDB 內核改進多年。
( 底下附參考連結 #2)
3. 本次的改良幾乎由他主導,是實際改程式碼的人。 ( 詳見下方參考連結 #3 及 #4)
4. 如果不相信他,我也不知道該相信誰。
92. 92/147
2015
MySQL index->lock contention
《整理》
作者的論點 ( 雖然兩者衝突 )
1. MySQL 的 B+ tree 在 page splitting / merging 時 ,(always) 整棵
B+ tree 都會加上 WRITE_LOCK 。
2. 只有 leaf-node split / merge 會引起 index X lock 。
我的論點 ( 兩個是獨立事件 )
1. “latch” “與 lock” 的定義在 MySQL 中不一樣。
2. ”latch” “只是 one page” ,不等同於 "full index" 。
( ”但若 latch” ”不只是 one page” 則可能 )
128. 128/147
2015
High Concurrent Write?(PURGE/VACUUM)
PostgreSQL 8.3 之後,加入了 HOT ("heap only tuple") 。
但 HOT 並沒有完全解決問題,它的缺點如下:
1. 只有在所有索引屬性都沒有被更新時才能使用 HOT 。
2. 只有在被更新記錄所在頁面能夠存儲新版本時才能用 HOT 。
Ref: http://rhaas.blogspot.tw/2011/02/mysql-vs-postgresql-part-2-vacuum-vs.html