エンジニアとビジネス(4)
こんにちは!株式会社スマレジ、開発部のマサです。
お盆が明けて、お仕事再開ですね!少し休みが長すぎたのか、僕はまだ体の休み気分が抜けきりません。。。
今日はこのシリーズの最後に、性能の問題についてお話しします。
性能とスモールスタートの弊害
おそらく今売れているほとんどのクラウドサービスが、小規模な顧客数・利用者を想定してローンチして、すこしずつ規模が拡大するに合わせて、機能面の強化をして言っていることと思います。
スマレジも上記のパターンで大きなサービスへと進化してきました。しかし、そうであるがゆえに性能面では今なお課題があります。
一部のCSVの取り込みやWebAPIなどは、送信するデータ量によってはデータベースへ大量のデータを書き込むことになります。そして、機能の拡張の度にカラムが増えたり、JOINするテーブルが増えたり、少しずつ1つのSQL自体が巨大化していきます。
その結果、クエリの実行速度は改修とともに低下。加えて、利用者が増えることによりより大量のデータを扱うお客様も増えることにより、スロークエリーが発生してしまいます。
また、スマレジの開発はすでに7年近く続いており、現在では当たり前に考えられているスケーラビリティなどの考え方がまだ存在していなかったりと、時間の流れによるギャップが生まれている部分があります。
社内での性能問題への取り組み
現在、スマレジのPOSサーバー開発チームでは、この性能の問題について、特に注力して取り組んでいるところです。特に、クエリ1本ではなかなかうまくいかない場合、取得を複数カラムに分けてプログラム上で結合するなど、現在のスケールにあったSQL設計に切り替えています。そういう意味では、スマレジの機能は性能改善の過渡期だといえると思います。
これらの成果がお客様の手元へ届くにはまだ少し時間がかかる部分もあるかと思いますが、性能面での問題とはこれからも根気よくお付き合いして改善努力を重ねていきます。
また、こういった事例を経験・解決してきた知見のある方には、ぜひ力を貸してほしいです!その知識が何万という店舗の業務を最適なものにするとてもやりがいのある仕事だとおもうので、ご興味を持たれた方はぜひ、ご一報ください!
詳しくは下記URLをご覧ください。