パスワードを忘れた? アカウント作成
16684078 story
SNS

Misskeyの遅いから「Node.jsやめる(Rustにする?)」というissueが紛糾 75

ストーリー by nagazou
紛糾 部門より
あるAnonymous Coward 曰く、

Twitter代替サービスとしてユーザーが急増してサーバーコストが問題となっているOSSのSNSプラットフォーム「Misskey」で、「Node.jsやめる(Rustにする?)」というissueが登録されて紛糾しているようだ(はてなブックマーク)。

Misskeyのメインである「Misskey.io」のインスタンスは、個人運営であるが現在CPU1416コア、メモリ2.8TBという途方もないスペックで稼働しているという(まとめダネ!)。こうした状況を受けてか、3日に「Node.jsやめる(Rustにする?)」というissueが「Node.jsはパフォーマンス上の問題があるため。Goとかでもいいけど」というコメントと共に登録されたようだ。

issueにはタレコミ時点で94件のコメントが寄せられている他、Twitterなどでも話題となっていたが、メモリ消費が削減できそうやおもしろそうという意見がある一方で、そもそもMisskeyが遅い原因は本当にNode.jsなのかやスロークエリーを先に直すべきではと言った声、CPUバウンドなのかIOバウンドを測定してから検討すべきと言った声が多く寄せられる事態となっている。タレこみ子的にも、サーバー開発では性能対策は言語よりもまずDBやキャッシュというイメージがあるが、果たしてこの言語移行はありだろうか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2023年07月06日 18時22分 (#4490374)

    Issue作成した者です。Issueでも書きましたが、パフォーマンスの理由もありますが「Rustで書かれている」方が選ばれやすいという、マーケティング的な理由も大きいです。
    Twitterなど見てても「なぜMisskeyはRustにしないのか」といった意見がよく流れてきますね
    他にも単に面白そうだからという技術的な興味もあります。

    • Re: (スコア:0, フレームのもと)

      by Anonymous Coward

      それならあなたがRust版のSNSを作って公開すればよいのでは。
      既存のソフトウェアにRustにしろと言って回るのではなく。
      Rails製のMastodonなど、ActivetyPubを採用したオープンソースSNSは多数あり、その中で知名度のもっともあるMastodonと、
      そしてこのMisskeyがよく選ばれているわけで、それなのにマーケティング的な理由で言語を切り替えはおかしいのでは。
      もっと無名なオープンソースSNSからRustにしては?

    • by Anonymous Coward

      Node.jsやめてDenoにしよう、というのならわかります(個人的見解)。

      • by Anonymous Coward

        バックエンドをJavaScriptにするメリットって何だろう。
        サーバー負荷に苦しむ状況だとSSRなんて論外だし、特にメリットが思い付かない。

        • ノンブロッキングIOとエンジンの高速化に血道をあげているブラウザ開発者のおかげでシングルコアを何も考えずにいい感じで使い切れる上、コンテナ化すればコアごとにプロセス立てて並列で回せるので簡単に性能を稼ぎやすいのはメリットだと思います。

          親コメント
        • by Anonymous Coward

          プロジェクト参加者がコードをかけるってだけじゃないかな。
          よく知らない言語で書いたって禄なことないわけで。
          プロジェクト参加者の技量で何を使うかって左右されると思う。

          • by Anonymous Coward

            フロントとバックで同じ言語が使えるというのは大きい。
            学習コストは減るしロジックの共通化や移動もしやすい。

            • by Anonymous Coward

              それは JavaScript とかいうぶっ壊れた言語を使ってることで帳消しになってる気がする。
              TypeScript しか使わないというなら多少ましにはなるけど。

        • by Anonymous Coward

          十数年くらい前はなんかNode.jsがスッゲー持て囃されてたよな
          自分にはよく分からんかった
          サーバーサイドもJSで書けるのがメリット?
          いや、サーバーサイドは別の適した言語で書けばいいやんって
          案の定、熱が冷めたらこういう話が出てくる

    • by Anonymous Coward

      syuilo さん Issue を思いついたやりたいことをとりあえず書くアイデア帳みたいに使うから、今回それに慣れてない外部の人の目に触れてしまったせいで検討不足とか何とか変に過剰反応されてしまった感ある

    • 確かにNode.jsはイケてない

    • by Anonymous Coward

      利用者は実装が何かなんて気にするの?

      • by Anonymous Coward

        利用者というか開発者に対してじゃないかな。
        絶対的な開発者の数で言えばNode.jsの方がいいだろうけど、OSSに参加してくれそうな開発者はRustの方が多そう。

        OSSじゃないけど開発者への受けが良いから.NETからGoで書きなおしてますって会社知ってるけど、逆に経験者の採用は苦労しているみたいね。

    • by Anonymous Coward

      >面白そうだからという技術的な興味
      コレ大事

      >言語よりもまずDBやキャッシュ
      DB構造がちゃんとしてればDBMSのキャッシュでIOも極小になるけどね。
      別途キャッシュ持つとデータ二重管理で同期やら整合性で面倒な面も。

      • by Anonymous Coward on 2023年07月07日 7時45分 (#4490635)

        むかーし、自社の DBMS を SQLServer だと遅いから ○iRDB に変更したらどうかという馬鹿みたいな提案(ごり押し)があって、
        アホな人が全く同じクエリを何回百回も投げて、○iRDB ならこんなに速くなりますとか言ってたことがあったなあ。

        まあ、確かに接続ユーザーが一つしか無い状態で同じクエリが投げられたら、諸々のチェックをスキップして
        同じ結果を返せばいいんだから、その点では ○iRDB(もしくは ○iRDB のミドルウェア)の方が賢いとは
        言えるけど、現実ではそんなことないんだから、そんな特殊処理入れるより、全うに性能上げる方がいいよなあ。

        なお、毎回違うクエリを投げるようにアドバイスしたところ、無事遅くなった模様。

        親コメント
  • by Anonymous Coward on 2023年07月06日 19時55分 (#4490465)

    趣味なんだから貢献者のモチベと経験が重要で、ここやIssueにいっちょかみしに沸いてくる外野なんてどうでもいいよね
    過去1年間のコミット数を見た感じ、メイン貢献者はこの4人かな...

    | コミット数 | ユーザ名 | 賛否 | Rust経験 |
    |---------------|--------------|------------------------|----------------------|
    | 1,901 commits | syuilo | 提案者 | かじった程度か? |
    | 259 commits | tamaina | 自分が書けないから反対 | 書けない |
    | 147 commits | acid-chicken | 賛成 | そこそこ触ってそう? |
    | 71 commits | saschanaz | 元々Rust移植版を開発中 | Mozilla社員、強そう |

  • by Anonymous Coward on 2023年07月06日 18時08分 (#4490365)

    何が遅い原因なのかを明確にしてからじゃないと、言語やフレームワークを変更すれば解決するかはわからないですよね

    // 画面表示ごとに何故かドでかいクエリを3回発行してる謎クソ実装とかに遭遇したが、PMが「サーバスペック不足かなぁ?」とか言っててひっくり返りそうになった

    • by Anonymous Coward

      何が遅い原因なのかを明確にしてからじゃないと、言語やフレームワークを変更すれば解決するかはわからないですよね

      // 画面表示ごとに何故かドでかいクエリを3回発行してる謎クソ実装とかに遭遇したが、PMが「サーバスペック不足かなぁ?」とか言っててひっくり返りそうになった

      画面表示ごとになぜかドでかいクエリを3回発行しているという事実を知ってる上でサーバスペック不足かなぁって言ったならひっくり返るのも分かる
      けど、知らなかったら「作ったやつの技術力不足だろ」なんて言ったら開発メンバーから顰蹙かうから言えないだろ…

  • by Anonymous Coward on 2023年07月07日 2時59分 (#4490609)

    そもそもメッセンジャーサービスはマネタイズが難しいというのが根本的な問題ではないかと

    Twitterも創業以来ずっと莫大な負債を積み上げ続けてきて、2018年頃やっと一時は黒字化を達成しましたがまたすぐに赤字転落
    コロナショックを経てインターネット広告の有効性に疑問符がつき始めているのが現状なわけで今後も厳しい時期が続くのではないかと
    つまりイーロンマスクがどうこうする以前からTwitterの未来には暗雲が立ちこめていた状態だったように思います

    MastodonやMisskeyのようなTwitterクローンサービスが運用できていたのは端的には利用者が少なく有志の持ち出しでコストを賄えていたからに他ならず、
    ユーザーが増えてTwitterと近い規模で運用しようと思ったらその莫大な運用コストをどこからか調達しなければサービスの継続は間違いなく不可能でしょう
    Misskeyが直面している問題は技術的な問題ではなく結局は運用コストをどう捻出するかという単純な問題なのではないかと思います

    Twitterがうまくいかなかった問題を一から作り直すだけでそう簡単に解決できるとは思えません
    そもそもとして分散型サービスはどうしても中央集権型サービスより全体としてのコストは増加するものです
    言語やシステムを刷新するだけでコスト問題が解決すると安易に考えてしまうのは、人員を削減しまくれば解決すると考えたイーロンマスクと同様の安直さではないでしょうか?

  • by Anonymous Coward on 2023年07月06日 17時51分 (#4490351)

    他人事としては、どうなるか興味深いしー

    • by Anonymous Coward on 2023年07月06日 18時30分 (#4490381)

      同意です。
      他の大きいボトルネックから改善していっても、いつかはGCがボトルネックになるのは目に見えてますし、
      それなら一番大きい言語から変更するのは割と妥当な気がします。

      親コメント
  • by Anonymous Coward on 2023年07月06日 17時53分 (#4490354)

    Misskey.ioがスポンサーを探してサーバー増強 (金の力) で解決した方がいいんじゃないかなと思った。
    MetaのThread ? が 1000万ユーザー突破したらしいけど安定しているのはプログラムの質もあるだろうけどサーバースペックもすごいんだろうし

    詳しくは知らんけど。

    • by Anonymous Coward

      上手くいかないネットサービス無限ループ

      1. 新しいプラットフォームに人が集まって来て処理が重くなる
      2. 処理が重いのを解決するにはサーバー増強しないと
      3. サーバー増強するためには金がないといけないよね
      4. 金を集めるには、スポンサー広告付けたり 金取ってトレントに載せたり ユーザーから課金しないと
      5. 広告やトレンド操作やユーザー課金に 多くのユーザーがキレて別プラットフォームに離脱する

      以下、無限ループ
      今twitterやredditで起きていることって、かつてMySpaceやニコニコ動画で起きてたことですよね。

    • by Anonymous Coward

      Facebookは自社データセンタ + それなりの性能のサーバーの超多クラスタだったような…
      でも今はソフト側をチューンしてAMD EPYCの少クラスタで動かすのが流行りってどこかで読んだような…

  • by Anonymous Coward on 2023年07月06日 18時06分 (#4490363)

    > 遅い原因は本当にNode.jsなのかやスロークエリーを先に直すべきではと言った声、
    > CPUバウンドなのかIOバウンドを測定してから検討すべきと言った声
     
    まずはこれでしょ。もしも仕事なら。
    自腹でやってる中の人が、別の言語で書きなおしたいってのなら好きにしていいと思う。
     
    スラドもやりたきゃ書き換えていいよ (・∀・)

  • by Anonymous Coward on 2023年07月06日 18時06分 (#4490364)

    Misskey.ioをfirefoxで見るとめちゃくちゃメモリを喰うんですよね。
    なんとかなるのならしてほしい。

    • by Anonymous Coward on 2023年07月06日 23時10分 (#4490554)

      Firefoxはjavascript多用するサイト見るとだいたいどこでもめちゃくちゃメモリ食う
      ブラウザゲームとか特に顕著

      親コメント
    • by Anonymous Coward

      ここで言うパフォーマンスはフロントではなくバックエンドのはなし

    • by Anonymous Coward

      Node.jsやRustというからサーバーサイドの話で、クライアントであるfirefoxとは関係ない話ではないかな。知らんけど

      • by Anonymous Coward

        直接の関係はないんだけど
        サーバーサイドとフロントを同じ言語で開発できるということは
        フロント側の開発も活発にやっているのが想像できて
        機能の一部をフロント側で実行しようとする可能性がある

        クライアント側で重い処理すればサーバー側が軽くなる
        でも重くて使いにくいサイトが出来上がる

  • by Anonymous Coward on 2023年07月06日 18時56分 (#4490408)

    Misskey forkのCalckeyの方は既にバックエンドのRust化を進めています [gnusocial.jp]。
    でも技術的な問題 [codeberg.org]で2ヶ月前ぐらいから開発が止まってるようです [codeberg.org]ね…。

  • by Anonymous Coward on 2023年07月07日 7時20分 (#4490627)

    >Misskeyの遅いから

    Misskeyの反応が遅いということを書きたいのでしょうけど
    こういう書き方はモヤる

  • by Anonymous Coward on 2023年07月07日 7時34分 (#4490633)

    elixirは候補に上がらないの?

typodupeerror

普通のやつらの下を行け -- バッドノウハウ専門家

読み込み中...