Redisに新しい汎用データ構造「ストリーム」が導入されました。これはリスト、ソート済みセット、Pub/Subの機能を統合し、時系列データやメッセージングなど様々なユースケースに対応します。ストリームは効率的なメモリ使用と高速な範囲クエリを実現し、Redis 4.0シリーズで年内に安定版としてリリースされる予定です。
antirez-com
antirez-com から 30 件
Redis 4.0のPSYNC2レプリケーションプロトコルで発見された重大なバグについて、その原因と影響を分析。スレーブ再起動時のLuaスクリプト処理の問題から、複数のパッチリリースに至った経緯を詳細に説明し、今後のリリースプロセス改善策を提案。
Redis Streamsは現在開発の最優先事項であり、コンシューマーグループの実装が進行中です。RDBフォーマットの大幅な変更により、StreamsはRedis 5.0でリリースされる予定で、約2ヶ月後に本番環境で利用可能になる見込みです。
Redisのラディックスツリー実装で発生した読み込みオーバーフローバグの調査過程を描く。クラッシュレポートとアセンブリ解析を通じて、既に修正済みのバグを特定した経験から、システムソフトウェア開発における重要な教訓を共有する。
Incapsulaのレポートでは、インターネット上に公開されたRedisインスタンスの75%がマルウェアに感染していると報告されていますが、これは適切な保護なしに公開IPアドレスで公開されているインスタンスに限定された調査結果です。Redisは元々インターネットに直接公開されることを想定しておらず、適切な設定と保護モードの使用が重要です。
Appleのセキュリティチームによって発見されたRedisのLuaサブシステムにおける複数の脆弱性が修正されました。これらの問題は主にクラウド上のマネージドRedisサービスに影響し、cmsgpackライブラリやstructパッケージのバッファオーバーフローなどを通じてメモリ破壊やプロセス制御の可能性がありました。Redis 3.2.12、4.0.10、5.0-rc2で修正がリリースされています。
Redis LabsのCommon Clauseライセンスに関するページが誤解を招き、Redis自体がライセンス変更したかのように伝えられましたが、Redisコアはこれまで通りBSDライセンスのままです。一部のRedisモジュール(RediSearchなど)がApache+Common Clauseに変更されますが、これはRedis Labsが開発したエンタープライズ向けアドオンのみに適用されます。
Redisの創設者であるantirezは、Redis Labsが特定のRedisモジュールのライセンスを変更したことについて、これはオープンコアモデルではないと主張しています。Redisのコアは依然としてBSDライセンスのままであり、オープンコアとは異なり、有用な機能をオープンソース版から取り除いて有料化しているわけではないと説明しています。
Redis作者のantirezが、データベースのレプリケーションにおける「マスター・スレーブ」という用語の使用を擁護。この用語は文脈から切り離しても攻撃的ではないと主張し、政治的正しさよりも実質的な社会問題の解決に焦点を当てるべきだと述べている。
Redis作者のantirezが、技術的に有用ではないが「ハック価値」のあるコードとしてLOLWUTコマンドを実装。コンピュータアート「Schotter」をインスピレーションに、ターミナル上で動的に生成されるアート作品をデータベースコマンドとして実現し、プログラミングの原点である探求と創造の精神をRedisコミュニティに呼びかける。
この記事では、Redisのコードコメントを分析し、9つのカテゴリに分類しながら、コードコメントが長期的な保守性や他者による理解のためにいかに重要であるかを論じています。著者は、優れたコードを書くためにはコメントが不可欠であると主張し、その理由として「コードが何をしているか」ではなく「なぜそのようにしているか」を説明することや、読者の認知的負荷を軽減する役割を指摘しています。
Redis 6ではRESP3のみをサポートし、後方互換モードは提供しないという決定について説明。RESP3はよりセマンティックなプロトコルで、クライアントライブラリの実装を簡素化し、新しいコマンドでも適切なデータ型を返すことができる。移行期間としてRedis 5は2年間サポートされ、ユーザーは十分な時間をかけてアップグレードできる。
Redis開発者であるantirezが、RESP3プロトコル、ACL(アクセス制御リスト)、マルチスレッディング、永続性の改善、データ構造など、2019年のRedis開発計画について詳細に説明しています。ユーザーの懸念に応え、各機能の目的と優先順位を明確にすることで、コミュニティとの透明性を高めています。
Redis誕生10周年を記念して、作者がGopherプロトコルの実装を発表。現代のインターネットの複雑さから離れ、テキスト中心のシンプルなコミュニケーションを求めるコミュニティに向けた、100行のコードで実装された遊び心あるプロジェクト。
Redis 5で導入されたStreamsは、Kafkaのようなメッセージング用途だけでなく、純粋なデータ構造としても強力です。CSVファイルのような柔軟性を持ちつつ、メモリ効率が高く、時系列データやオブジェクトのロギングなど多様な用途に適用できます。従来のSorted Set + Hash方式と比べて13倍のメモリ効率を実現し、1億件のエントリーを1.8GBで格納可能です。
人気プロジェクトのメンテナンスは心理的に大きな負担となる。大量のイシューやPRへの対応、本来の開発作業とのバランス、長期間の継続的な取り組みによる精神的疲労など、オープンソースメンテナーが直面する現実的な課題について、Redis開発者の経験を基に考察する。
Redis 6では、サーバーがクライアントのキャッシュを追跡し、キーが変更されたときに無効化通知を送信する新しいクライアントサイドキャッシュ機能が導入されました。これにより、クライアントはローカルキャッシュを効率的に管理でき、アプリケーションのパフォーマンスが大幅に向上します。
Redis 6の最初のリリース候補版が公開されました。これまでで最大規模のリリースとなり、ACL、SSLサポート、RESP3プロトコル、クライアントサイドキャッシュ、スレッド化I/Oなど多くの新機能が導入されています。多数のコントリビューターによる協力のもと、エンタープライズ環境でのセキュリティと拡張性が大幅に向上しました。
Redis 6.0.0 安定版がリリースされました。主な新機能としてSSL、ACL、RESP3、クライアントサイドキャッシュ、スレッド化I/O、ディスクレスレプリケーションなどが含まれ、クライアントサイドキャッシュの再設計やACLの改善、PSYNC2の強化、RDBファイルの高速ロードなど、RC1以降の重要な改善も行われています。
Redisの創始者であるantirezが、10年以上にわたるRedisメンテナーの役割から退くことを発表しました。彼はコードを書くことを自己表現の手段として捉え、プロジェクトの維持管理よりも創造的な活動を求めています。今後はRedis Labsのアドバイザリーボードとして関わりつつ、新しい可能性を探求していく予定です。
オープンソース開発者たちは、無償で書いたコードに対して有償の仕事よりも熱心に品質向上に取り組むという逆説を論じている。ユーザーからの厳しい要求を単なる金銭問題と捉えるのではなく、共にソフトウェアの完成度を高める機会として捉えるべきだと説く。
プログラミングと執筆
2.5プログラミングと小説執筆には多くの共通点がある。どちらもローカルとグローバルの要素が調和した構造が必要で、一貫した継続的な作業が成功の鍵となる。ただし、小説は一度完成するとほぼ不変であるのに対し、コードは時間とともに進化し続ける点が大きな違いだ。
『Wohpe』を書くこと
2.0著者は初のSF小説『Wohpe』を出版した経験を通じて、チェスの初心者が駒の動きを評価できないように、書き始めの作家も文章の良し悪しがわからない段階があると語る。文学創作には膨大な労力が必要な割に読者の反応が乏しい現実があるが、それでも書き続けること自体が深い発見をもたらす最高の芸術であると述べている。
著者のSalvatore Sanfilippoが、初のSF小説『Wohpe』を出版した経験を振り返り、初心者としての執筆の難しさ、チェスの学習との類似性、そして文学市場の厳しい現実について語っています。プログラミングの世界との比較を通じて、創作活動の意義と満足感について考察しています。
リンクリストの擁護
2.0リンクリストは単なるコーディング面接用のデータ構造ではなく、教育的価値があり、拡張可能で、実用的で、シンプルで、概念的な魅力を持つ重要なデータ構造です。RedisやLinuxカーネルなど多くの実システムで活用されており、計算の空間と時間に関する基本的な理解を提供します。
アイドルスキャンの起源
3.51998年末に考案されたアイドルスキャンは、Hpingツールの開発中に発見されたIPパケットIDフィールドの連続的な増加という特性を利用した攻撃手法です。著者はこの情報漏洩に懸念を抱き、友人と議論を重ねた末に理論を実証し、酔った勢いでBUGTRAQに投稿したことで歴史的な攻撃手法として確立されました。
プログラマーが2024年初頭におけるLLMの活用について考察。LLMはコード生成や学習支援に有用だが、システムプログラミングでは限界がある。著者はLLMを「全知の愚者」と表現し、複雑なフレームワーク学習や使い捨てプログラム作成で効果を発揮する一方、高度な推論が必要な場面では不十分だと指摘。
著者は、これまで英語で直接書いていたブログ投稿を、母国語のイタリア語で書いてGPT-4で翻訳する新しいアプローチを試みました。その結果、より質の高い文章が得られ、翻訳後も自分の声が保たれていることに驚きました。この技術の可能性に希望を感じる一方で、言語学習への意欲が失われることへの恐れも感じています。
この記事では、現在広く使われているトップ-p(nucleus sampling)の代替として、First Token Cutoff(FTC)という新しいサンプリングアルゴリズムを提案しています。FTCは、最高確率トークンに対する相対的な確率のしきい値(co)に基づいて選択可能なトークンを制限し、低品質なトークンの選択を防ぎつつ、適切な多様性を確保します。
Raspberry Pi PicoのPWM機能を利用して、DACなしでWAVファイルを再生する方法を解説。高周波PWMのデューティ比を調整することで複雑な波形を生成し、8ビットオーディオデータを再生するMicroPythonコードを紹介。