JP5044816B2 - オブジェクトを記憶・管理するシステム - Google Patents
オブジェクトを記憶・管理するシステム Download PDFInfo
- Publication number
- JP5044816B2 JP5044816B2 JP2007231126A JP2007231126A JP5044816B2 JP 5044816 B2 JP5044816 B2 JP 5044816B2 JP 2007231126 A JP2007231126 A JP 2007231126A JP 2007231126 A JP2007231126 A JP 2007231126A JP 5044816 B2 JP5044816 B2 JP 5044816B2
- Authority
- JP
- Japan
- Prior art keywords
- new
- old
- unit
- area
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
ヒープ領域20は、このように、文字列オブジェクトをその実体のみならずオフセット値などに対応付けて記憶している。これにより、例えばオフセット値またはカウント値を変更することで、文字列の一部削除または分割などをした新たな文字列オブジェクトを迅速に生成することができる。
次に、格納部630について説明する。格納部630は、選択部610により選択された新オブジェクトと内容が等しい旧オブジェクトが検索されなかったことを条件に、選択された当該新オブジェクトを新たな旧オブジェクトとしてヒープ領域20に格納する。
以上、図9に関連して説明したように、本実施形態の諸機能は、例えば、既存のガーベジ・コレクションに対する僅かな改変で実現することができる。このため、プログラム開発や保守の手間は極めて小さく、更には、同様のガーベジ・コレクタを有する実行システムに広く適用することができる。
20 ヒープ領域
22 ヘッダ部
25 ボディ部
26 オブジェクト
27 オブジェクト
28 オブジェクト
30 コード領域
40 実行システム
50 ユーザ・プログラム
300 新世代領域
305 第1領域
307 第2領域
310 旧世代領域
320 制御用領域
325 ハッシュテーブル
400 文字列クラス・ライブラリ
410 生成部
430 参照部
500 システムクラス・ライブラリ
510 ガーベジ・コレクタ部
610 選択部
620 検索部
630 格納部
640 統合部
600 制御プログラム群
1000 CPU
1020 RAM
Claims (9)
- プログラムの実行により生成されるオブジェクトを管理するシステムであって、
生成されてから予め定められた基準期間が経過したオブジェクトである旧オブジェクト、および、生成されてから前記基準期間が経過していないオブジェクトである新オブジェクトを区別可能に記憶している記憶装置と、
プログラムの実行に応じて新たにオブジェクトを生成した場合に、生成した当該オブジェクトを前記新オブジェクトとして前記記憶装置に格納する生成部と、
前記記憶装置に記憶されている前記新オブジェクトの中から、生成されてから前記基準期間が経過した新オブジェクトを選択する選択部と、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトを前記記憶装置から検索する検索部と、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトが検索されなかったことを条件に、選択した当該新オブジェクトを新たな前記旧オブジェクトとして前記記憶装置に格納する格納部と、
前記検索部により当該旧オブジェクトが検索されたことを条件に、選択した当該新オブジェクトに対する参照を、検索された当該旧オブジェクトに対する参照に統合する、統合部と
を備えるシステム。 - 前記記憶装置内のある記憶領域を旧世代領域とし、前記記憶装置内の他の記憶領域を新世代領域とし、他の何れのオブジェクトからも参照されていないオブジェクトを検出したことを条件に、当該オブジェクトの記憶領域を解放する処理を、前記旧世代領域と比較して前記新世代領域に記憶されたオブジェクトについてより高い頻度で行うと共に、予め定められた条件を満たすオブジェクトを前記新世代領域から前記旧世代領域に殿堂入りさせる、世代別ガーベジ・コレクタ部を更に備え、
前記記憶装置は、前記旧世代領域に前記旧オブジェクトを、前記新世代領域に前記新オブジェクトを記憶し、
前記生成部は、プログラムの実行に応じて新たにオブジェクトを生成した場合に、生成した当該オブジェクトを前記新世代領域に格納し、
前記選択部は、ある新オブジェクトが、世代別ガーベジ・コレクタ部によって前記新世代領域から前記旧世代領域に殿堂入りすると判断されたことを条件に、当該新オブジェクトが生成されてから前記基準期間が経過したと判断する、請求項1に記載のシステム。 - 前記世代別ガーベジ・コレクタ部は、前記新世代領域に新たに記憶されてから、前記新世代領域についてオブジェクトの記憶領域を解放する処理が、予め定められた基準回数行われても、前記新世代領域に記憶され続けているオブジェクトを、前記予め定められた条件を満たすオブジェクトとして、前記新世代領域から前記旧世代領域に殿堂入りさせる、請求項2に記載のシステム。
- 前記格納部は、前記選択部が選択した当該新オブジェクトと内容が等しい前記旧オブジェクトが検索されなかったことを条件に、選択した当該新オブジェクトと内容が同一の新たな前記旧オブジェクトを、前記旧世代領域に生成し、
前記統合部は、前記選択部が選択した当該新オブジェクトと内容が等しい前記旧オブジェクトが検索されなかったことを条件に、選択した当該新オブジェクトに対する参照を、前記格納部が格納した当該旧オブジェクトに対する参照に変更し、
前記世代別ガーベジ・コレクタ部は、前記統合部により前記新オブジェクトに対する他のオブジェクトからの参照が、前記旧オブジェクトに対する参照に変更されことを条件に、前記新オブジェクトの記憶領域を解放する、請求項2に記載のシステム。 - 前記記憶装置は、前記オブジェクトとして、不変文字列オブジェクトを記憶している、請求項1に記載のシステム。
- それぞれの前記オブジェクトは、他のオブジェクトから直接参照されるヘッダ部、および、前記ヘッダ部から参照されるボディ部を有し、
前記統合部は、ある新オブジェクトと内容が等しい前記旧オブジェクトが検索されたことに応じて、当該新オブジェクトのヘッダ部から当該新オブジェクトのボディ部に対する参照を、当該新オブジェクトのヘッダ部から当該旧オブジェクトのボディ部に対する参照に統合する、請求項1に記載のシステム。 - 前記記憶装置は、記憶しているそれぞれの前記旧オブジェクトに対する参照を、当該旧オブジェクトの内容に基づき算出されるハッシュ値に対応付けた、ハッシュテーブルを記憶しており、
前記検索部は、ある新オブジェクトが生成されてから前記基準期間が経過した場合に、当該新オブジェクトの内容に基づくハッシュ値に対応する参照を前記ハッシュテーブルから読み出すことで、当該新オブジェクトと内容が等しい旧オブジェクトを検索し、
前記格納部は、新オブジェクトを新たに旧オブジェクトとして格納したことを条件に、更に、当該旧オブジェクトの内容に基づきハッシュ値を算出し、当該ハッシュ値を当該旧オブジェクトに対する参照に対応付けて前記ハッシュテーブルに追加し、当該旧オブジェクトが将来ガーベジ・コレクタにより解放される場合に前記ハッシュテーブルからも削除する、
請求項1に記載のシステム。 - プログラムの実行により生成されるオブジェクトをコンピュータにより管理する方法であって、
前記コンピュータは、
生成されてから予め定められた基準期間が経過したオブジェクトである旧オブジェクト、および、生成されてから前記基準期間が経過していないオブジェクトである新オブジェクトを区別可能に記憶している記憶装置を備え、
前記コンピュータにより、
プログラムの実行に応じて新たにオブジェクトを生成した場合に、生成した当該オブジェクトを前記新オブジェクトとして前記記憶装置に格納するステップと、
前記記憶装置に記憶されている前記新オブジェクトの中から、生成されてから前記基準期間が経過した新オブジェクトを選択するステップと、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトを前記記憶装置から検索するステップと、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトが検索されなかったことを条件に、選択した当該新オブジェクトを新たな前記旧オブジェクトとして前記記憶装置に格納するステップと
当該検索するステップにおいて当該旧オブジェクトが検索されたことを条件に、選択した当該新オブジェクトに対する参照を、検索された当該旧オブジェクトに対する参照に統合するステップと
を備える方法。 - プログラムの実行により生成されるオブジェクトを管理するシステムとして、コンピュータを機能させるプログラムであって、
前記コンピュータを、
生成されてから予め定められた基準期間が経過したオブジェクトである旧オブジェクト、および、生成されてから前記基準期間が経過していないオブジェクトである新オブジェクトを区別可能に記憶している記憶装置と、
プログラムの実行に応じて新たにオブジェクトを生成した場合に、生成した当該オブジェクトを前記新オブジェクトとして前記記憶装置に格納する生成部と、
前記記憶装置に記憶されている前記新オブジェクトの中から、生成されてから前記基準期間が経過した新オブジェクトを選択する選択部と、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトを前記記憶装置から検索する検索部と、
選択した当該新オブジェクトと内容が等しい前記旧オブジェクトが検索されなかったことを条件に、選択した当該新オブジェクトを新たな前記旧オブジェクトとして前記記憶装置に格納する格納部と、
前記検索部により当該旧オブジェクトが検索されたことを条件に、選択した当該新オブジェクトに対する参照を、検索された当該旧オブジェクトに対する参照に統合する、統合部と
して機能させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007231126A JP5044816B2 (ja) | 2007-09-06 | 2007-09-06 | オブジェクトを記憶・管理するシステム |
US12/192,766 US8176100B2 (en) | 2007-09-06 | 2008-08-15 | System for storing and managing objects |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007231126A JP5044816B2 (ja) | 2007-09-06 | 2007-09-06 | オブジェクトを記憶・管理するシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009064217A JP2009064217A (ja) | 2009-03-26 |
JP5044816B2 true JP5044816B2 (ja) | 2012-10-10 |
Family
ID=40433214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007231126A Expired - Fee Related JP5044816B2 (ja) | 2007-09-06 | 2007-09-06 | オブジェクトを記憶・管理するシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8176100B2 (ja) |
JP (1) | JP5044816B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8387003B2 (en) * | 2009-10-27 | 2013-02-26 | Oracle America, Inc. | Pluperfect hashing |
JP4959781B2 (ja) | 2009-12-22 | 2012-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | オブジェクト生成地点記録方法およびプログラム |
US8533671B2 (en) * | 2010-06-07 | 2013-09-10 | Microsoft Corporation | Assigning type parameters |
JP5615220B2 (ja) * | 2011-03-30 | 2014-10-29 | 三菱電機株式会社 | ヒットテスト装置及びヒットテスト方法 |
JP5525658B2 (ja) * | 2011-06-14 | 2014-06-18 | 株式会社日立製作所 | 計算機、リソース使用量計算方法及びリソース使用量計算プログラム |
US8468138B1 (en) | 2011-12-02 | 2013-06-18 | International Business Machines Corporation | Managing redundant immutable files using deduplication in storage clouds |
JP5883300B2 (ja) * | 2012-02-02 | 2016-03-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | オブジェクトを特定するためのハッシュコードを生成するための方法、プログラム及びシステム |
JP5885616B2 (ja) * | 2012-08-08 | 2016-03-15 | キヤノン株式会社 | 情報処理装置、インストール方法、およびプログラム |
US10120796B2 (en) * | 2012-09-14 | 2018-11-06 | Sap Se | Memory allocation for long-lived objects |
US10146684B2 (en) * | 2016-10-24 | 2018-12-04 | Datrium, Inc. | Distributed data parallel method for reclaiming space |
KR20200027204A (ko) * | 2018-09-04 | 2020-03-12 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438560B1 (en) * | 1999-09-16 | 2002-08-20 | International Business Machines Corporation | Reuse of immutable objects during object creation |
US6839725B2 (en) * | 2000-05-16 | 2005-01-04 | Sun Microsystems, Inc. | Dynamic adaptive tenuring of objects |
US6598141B1 (en) * | 2001-03-08 | 2003-07-22 | Microsoft Corporation | Manipulating interior pointers on a stack during garbage collection |
JP2003256209A (ja) * | 2002-03-06 | 2003-09-10 | Matsushita Electric Ind Co Ltd | プログラム実行装置 |
JP4589095B2 (ja) * | 2004-12-14 | 2010-12-01 | 三菱電機株式会社 | プログラム実行装置及びプログラム実行方法及びデータ領域管理プログラム |
-
2007
- 2007-09-06 JP JP2007231126A patent/JP5044816B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-15 US US12/192,766 patent/US8176100B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009064217A (ja) | 2009-03-26 |
US8176100B2 (en) | 2012-05-08 |
US20090070740A1 (en) | 2009-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5044816B2 (ja) | オブジェクトを記憶・管理するシステム | |
CN106575297B (zh) | 使用盲更新操作的高吞吐量数据修改 | |
US8046521B2 (en) | Computer virtualization apparatus and program and method therefor | |
US7865885B2 (en) | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations | |
RU2433453C2 (ru) | Оптимизация операций программной транзакционной памяти | |
US6247027B1 (en) | Facilitating garbage collection during object versioning for space and time dimensional computing | |
KR100368166B1 (ko) | 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법 | |
KR20210063862A (ko) | 키-값 기반의 데이터 저장 장치 및 이를 포함하는 시스템 | |
JPWO2012127590A1 (ja) | エンディアン変換方法、およびシステム | |
KR100931460B1 (ko) | 단일 스레드 응용을 지원하기 위한 시간-멀티플렉스된스펙큘레이티브 멀티 스레딩 | |
JP5773493B2 (ja) | 情報処理装置 | |
JP5697195B2 (ja) | アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法 | |
JP5160483B2 (ja) | ストレージシステム及びデータマイグレーション対応検索システム | |
Li et al. | Leveraging NVMe SSDs for building a fast, cost-effective, LSM-tree-based KV store | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
US20070255771A1 (en) | Method and system for renewing an index | |
JP2006163596A (ja) | 情報処理システム、制御方法、及びプログラム | |
CN117377953A (zh) | 基于树的数据结构 | |
JP2933628B2 (ja) | 主記憶装置管理方法および計算機システム | |
JP4701611B2 (ja) | 動的変換方式のエミュレータ向けメモリ管理方法 | |
JP5303943B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP5577518B2 (ja) | メモリ管理方法、計算機及びメモリ管理プログラム | |
JP5212216B2 (ja) | ジョブ処理装置 | |
JP5246014B2 (ja) | 仮想化プログラム、仮想化処理方法及び装置 | |
CN117642735A (zh) | 数据结构中的项的版本化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120605 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120626 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |