<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/redis.git/src/quicklist.h, branch modules-replication</title>
<subtitle>github.com: antirez/redis.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/'/>
<entry>
<title>Use const in Redis Module API where possible.</title>
<updated>2016-06-20T20:08:06+00:00</updated>
<author>
<name>Yossi Gottlieb</name>
<email>yossigo@gmail.com</email>
</author>
<published>2016-06-20T20:08:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=8f3a4df77599e4523bee7dc1db60b0863d6a6a49'/>
<id>8f3a4df77599e4523bee7dc1db60b0863d6a6a49</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>reduce struct padding by reordering members</title>
<updated>2016-05-16T17:12:11+00:00</updated>
<author>
<name>oranagra</name>
<email>oran@redislabs.com</email>
</author>
<published>2016-05-16T17:12:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=283a8125cb85524ce6df6ac9b4edbda23124d95d'/>
<id>283a8125cb85524ce6df6ac9b4edbda23124d95d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow compression of interior quicklist nodes</title>
<updated>2015-01-02T16:16:09+00:00</updated>
<author>
<name>Matt Stancliff</name>
<email>matt@genges.com</email>
</author>
<published>2014-12-11T02:26:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=abdd1414a896c407c23a8f4165cfd6f027cf2b60'/>
<id>abdd1414a896c407c23a8f4165cfd6f027cf2b60</id>
<content type='text'>
Let user set how many nodes to *not* compress.

We can specify a compression "depth" of how many nodes
to leave uncompressed on each end of the quicklist.

Depth 0 = disable compression.
Depth 1 = only leave head/tail uncompressed.
  - (read as: "skip 1 node on each end of the list before compressing")
Depth 2 = leave head, head-&gt;next, tail-&gt;prev, tail uncompressed.
  - ("skip 2 nodes on each end of the list before compressing")
Depth 3 = Depth 2 + head-&gt;next-&gt;next + tail-&gt;prev-&gt;prev
  - ("skip 3 nodes...")
etc.

This also:
  - updates RDB storage to use native quicklist compression (if node is
    already compressed) instead of uncompressing, generating the RDB string,
    then re-compressing the quicklist node.
  - internalizes the "fill" parameter for the quicklist so we don't
    need to pass it to _every_ function.  Now it's just a property of
    the list.
  - allows a runtime-configurable compression option, so we can
    expose a compresion parameter in the configuration file if people
    want to trade slight request-per-second performance for up to 90%+
    memory savings in some situations.
  - updates the quicklist tests to do multiple passes: 200k+ tests now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let user set how many nodes to *not* compress.

We can specify a compression "depth" of how many nodes
to leave uncompressed on each end of the quicklist.

Depth 0 = disable compression.
Depth 1 = only leave head/tail uncompressed.
  - (read as: "skip 1 node on each end of the list before compressing")
Depth 2 = leave head, head-&gt;next, tail-&gt;prev, tail uncompressed.
  - ("skip 2 nodes on each end of the list before compressing")
Depth 3 = Depth 2 + head-&gt;next-&gt;next + tail-&gt;prev-&gt;prev
  - ("skip 3 nodes...")
etc.

This also:
  - updates RDB storage to use native quicklist compression (if node is
    already compressed) instead of uncompressing, generating the RDB string,
    then re-compressing the quicklist node.
  - internalizes the "fill" parameter for the quicklist so we don't
    need to pass it to _every_ function.  Now it's just a property of
    the list.
  - allows a runtime-configurable compression option, so we can
    expose a compresion parameter in the configuration file if people
    want to trade slight request-per-second performance for up to 90%+
    memory savings in some situations.
  - updates the quicklist tests to do multiple passes: 200k+ tests now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add adaptive quicklist fill factor</title>
<updated>2015-01-02T16:16:08+00:00</updated>
<author>
<name>Matt Stancliff</name>
<email>matt@genges.com</email>
</author>
<published>2014-11-26T18:42:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=c6bf20c2a7423f464210dd19dd59073a6bb846a2'/>
<id>c6bf20c2a7423f464210dd19dd59073a6bb846a2</id>
<content type='text'>
Fill factor now has two options:
  - negative (1-5) for size-based ziplist filling
  - positive for length-based ziplist filling with implicit size cap.

Negative offsets define ziplist size limits of:
  -1: 4k
  -2: 8k
  -3: 16k
  -4: 32k
  -5: 64k

Positive offsets now automatically limit their max size to 8k.  Any
elements larger than 8k will be in individual nodes.

Positive ziplist fill factors will keep adding elements
to a ziplist until one of:
  - ziplist has FILL number of elements
    - or -
  - ziplist grows above our ziplist max size (currently 8k)

When using positive fill factors, if you insert a large
element (over 8k), that element will automatically allocate
an individual quicklist node with one element and no other elements will be
in the same ziplist inside that quicklist node.

When using negative fill factors, elements up to the size
limit can be added to one quicklist node.  If an element
is added larger than the max ziplist size, that element
will be allocated an individual ziplist in a new quicklist node.

Tests also updated to start testing at fill factor -5.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fill factor now has two options:
  - negative (1-5) for size-based ziplist filling
  - positive for length-based ziplist filling with implicit size cap.

Negative offsets define ziplist size limits of:
  -1: 4k
  -2: 8k
  -3: 16k
  -4: 32k
  -5: 64k

Positive offsets now automatically limit their max size to 8k.  Any
elements larger than 8k will be in individual nodes.

Positive ziplist fill factors will keep adding elements
to a ziplist until one of:
  - ziplist has FILL number of elements
    - or -
  - ziplist grows above our ziplist max size (currently 8k)

When using positive fill factors, if you insert a large
element (over 8k), that element will automatically allocate
an individual quicklist node with one element and no other elements will be
in the same ziplist inside that quicklist node.

When using negative fill factors, elements up to the size
limit can be added to one quicklist node.  If an element
is added larger than the max ziplist size, that element
will be allocated an individual ziplist in a new quicklist node.

Tests also updated to start testing at fill factor -5.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add quicklist implementation</title>
<updated>2015-01-02T16:16:08+00:00</updated>
<author>
<name>Matt Stancliff</name>
<email>matt@genges.com</email>
</author>
<published>2014-11-13T19:11:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=5e362b84ab8b769bf2738daea97b45a375d223f1'/>
<id>5e362b84ab8b769bf2738daea97b45a375d223f1</id>
<content type='text'>
This replaces individual ziplist vs. linkedlist representations
for Redis list operations.

Big thanks for all the reviews and feedback from everybody in
https://github.com/antirez/redis/pull/2143
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This replaces individual ziplist vs. linkedlist representations
for Redis list operations.

Big thanks for all the reviews and feedback from everybody in
https://github.com/antirez/redis/pull/2143
</pre>
</div>
</content>
</entry>
</feed>
