1. 程式人生 > >系統技術非業餘研究 » ETS新的壓縮特性

系統技術非業餘研究 » ETS新的壓縮特性

即將釋出的R14B01要支援ets的壓縮,更大程度的提高記憶體的利用率。
在github上可以看到這個分支,有興趣的同學可以下載下來看看。

壓縮的時候只壓縮value, key是不壓縮的。 value特別簡單型別的eterm也是不壓縮的,因為zip壓縮需要一定長度的內容,而且壓縮本身也要加入一點的overload.

以下是sverker (author)的提交log.

ETS ‘compressed’ option.

The compressed format is using a slighty modified variant of the extern format
(term_to_binary). To not worsen key lookup’s too much, the top tuple itself
and the key element are not compressed. Table objects with only immediate
non-key elements will therefor not gain anything (but actually consume one
extra word for “alloc_size”).

我們來試驗下吧:

# erl +ec
Erlang R14B01 (erts-5.8.2) [/source] [64-bit] [smp:48:48] [rq:48] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8.2  (abort with ^G)
1> ets:all().
[8207,4110,13,file_io_servers,inet_hosts_file_byaddr,
 inet_hosts_file_byname,inet_hosts_byaddr,inet_hosts_byname,
 inet_cache,inet_db,global_pid_ids,global_pid_names,
 global_names_ext,global_names,global_locks,ac_tab]
2> ets:info(8207).
[{compressed,true},
 {memory,92},
 {owner,<0.26.0>},
 {heir,none},
 {name,shell_records},
 {size,0},
 {node,
[email protected]
}, {named_table,false}, {type,ordered_set}, {keypos,1}, {protection,public}] 3> ets:new(xx, [public, compressed]). 16400 4> ets:info(16400). [{compressed,true}, {memory,302}, {owner,<0.32.0>}, {heir,none}, {name,xx}, {size,0}, {node,
[email protected]
}, {named_table,false}, {type,set}, {keypos,1}, {protection,public}]

祝大家玩的開心。

Post Footer automatically generated by wp-posturl plugin for wordpress.

相關推薦

系統技術業餘研究 » ETS壓縮特性

即將釋出的R14B01要支援ets的壓縮,更大程度的提高記憶體的利用率。 在github上可以看到這個分支,有興趣的同學可以下載下來看看。 壓縮的時候只壓縮value, key是不壓縮的。 value特別簡單型別的eterm也是不壓縮的,因為zip壓縮需要一定長度的內容,而且壓縮本身也要加入一點的

系統技術業餘研究 » Erlang新增選項 +zerts_de_busy_limit 控制節點間通訊的資料量

erlang節點間通訊預設是通過tcp通道進行的, 而且每對節點間只有一個tcp連結,所有的rpc和內建的類似monitor這樣的訊息也都是通過這個通道進行的. 當資料量過大的時候, 系統就會發出 busy distribution port警告, 同時限制資料的吞吐. 這個值預設是128k. 現

系統技術業餘研究 » Flashcache新增驅逐空閒髒頁引數

我在之前的博文提過Flashcache的cache是以set為單位管理的,每個set預設2M。 當單個set裡面的髒頁數量超過dirty_thresh_pct的時候,就會啟動背景工作佇列來把超過設定的髒頁回寫到後備磁碟去。 這裡有別的同學對flashcache設計文件的翻譯. 參看dirty_th

系統技術業餘研究 » escript的高階特性

escript Erlang scripting support, 可以讓erl模組轉身變成unix script來使用,大大方便使用者,具體的使用參看otp文件。我這裡要演示的是些比較被忽視的高階特性: 首先crack erts/etc/common/escript.c:33 static i

系統技術業餘研究 » 的工作和研究方向

和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w

系統技術業餘研究 » Erlang R17特性淺評

Erlang R17RC2 原始碼已經就緒, 參見 這裡 後續版本的釋出時間,官方的時間安排參見 這裡,摘抄如下: Preliminary dates for the upcoming release: Release: erts, emu,comp |Code stop

系統技術業餘研究 » Linux下系統呼叫sync_file_range

我們在做資料庫程式或者IO密集型的程式的時候,通常在更新的時候,比如說資料庫程式,希望更新有一定的安全性,我們會在更新操作結束的時候呼叫fsync或者fdatasync來flush資料到持久裝置去。而且通常是以頁面為單位,16K一次或者4K一次。 安全性保證了,但是效能就有很大的損害。而且我們更新

系統技術業餘研究 » 很容易忽略的ETS表個數限制問題

最近經常碰到ets表使用的數目超過系統的限制導致Erlang應用異常的案例。 比如說神鋒同學報告說在ssh模組裡面,最多隻能開啟500個左右連結,系統空閒的很,但是無法繼續加大連結。 浩庭同學報告說mnesia的事務只能開1千多,多了就上不去了。這些問題看起來沒有關聯。但是其實和ets都有很大的關

系統技術業餘研究 » Snappy(Google家用的快速壓縮演算法,以前的Zippy)

剛剛雕樑同學告訴我google剛剛開源了他自己家用的快速壓縮演算法,AKA Zippy, 看來下貌似不錯。 Snappy is a compression/decompression library. It does not aim for maximum compression, or co

系統技術業餘研究 » Erlang R14B 增加引數 +swt 控制排程器的喚醒閥值

來自github上的otp原始碼提交訊息: Erlang R14B 新增加引數 +swt very_low|low|medium|high|very_high Set scheduler wakeup threshold. Default is medium The threshold dete

系統技術業餘研究 » 如何找出異常所在的行(思路)

在Erlang-china的郵件列表上看到這樣的問題: 我的服務經常發生這樣的錯誤,舉例: Error in process <0.33.0> with exit value: {badarg,[{erlang,’++’,[undefined,[{“37”}]]},{groups,do

系統技術業餘研究 » R14A新增指令優化Ref訊息的接收

Erlang的慣用法之一就是在訊息匹配的時候,如果需要唯一性,通常會通過make_ref搞個唯一的Ref來作為訊息的一部分來匹配。這個慣用法用在gen_server:call或者demonitor這樣的使用頻度很高的函式裡面。由於erlang的訊息匹配是再訊息佇列裡面挨個遍歷來匹配,特別是訊息佇列

系統技術業餘研究 » 推介xz高壓縮率演算法

這幾天看到Linux核心2.6.38釋出的release說明裡面提到: The version .38 kernel comes with a library for decompressing XZ, a format developed from LZMA and known for its

系統技術業餘研究 » 開源壓縮演算法Zopfli介紹

谷歌近日推出了全新開源壓縮演算法Zopfli, 官方主頁在 這裡,相關文件在 這裡 Zopfli is a new deflate compatible compressor that was inspired by compression improvements developed origi

系統技術業餘研究 » fio效能測試工具添圖形前端gfio

gfio.c: In function ‘gfio_ui_setup_log’: gfio.c:322: error: ‘GtkTreeSelection’ undeclared (first use in this function) gfio.c:322: error: ‘selection

系統技術業餘研究

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » MySQL資料庫架構的演化觀察

MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql

系統技術業餘研究 » inet_dist_connect_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 推薦工作機會

最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗:
 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海

系統技術業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke