Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Apr 4, 2013
Commits on Mar 31, 2013
  1. Increase the default threadpool size to twice the cores or at least

    Add a counter of threads used by sql commands. This is because sql
    commands can create database locks that "live" across many commands
    and it is possible to deadlock while waiting on a db lock and no
    threads available in the pool to unlock. If you reach this limit,
    the only option is to terminate the connection. (The better thing
    to do would be not to ever block in threads, but for now this will
Commits on Mar 30, 2013
Commits on Mar 29, 2013
  1. SQLSAVE and BGSAVE are now much better equipped with dealing with

    a busy or locked sqlite database. It's important to note that an
    exclusive transaction on a db will prevent all saving from
    happening, but at this point I cannot think of a way around this.
    Also fix a bug where we would start a deferred multibulk and then
    end up with an error - the whole response should be discarded.
Commits on Mar 27, 2013
Commits on Mar 23, 2013
Commits on Mar 19, 2013
  1. Duh - reference counting is not thread-safe! And a few other fixes.

    All test should pass and sqlite seems to working stably under heavy
Commits on Mar 16, 2013
  1. A few locking/concurrency fixes related to replication - do not

    expire keys in randomkey and wrap the propogate() call in a server
Commits on Mar 15, 2013
  1. Change SQLite behaviour to block when objects are locked by

    transactions. There is now a db connection per client, which
    allows for more concurrency and resolves some issues.
Commits on Jan 10, 2013
Commits on Jan 9, 2013
Commits on Jan 4, 2013
Commits on Jan 3, 2013
  1. Make SELECT always return a column header, if there are no rows to be

    Add type to the column row.
    Fix a 64bit compiler warning.
Commits on Jan 1, 2013
Commits on Dec 28, 2012
Commits on Dec 26, 2012
  1. Added SQLite

Commits on Dec 16, 2012
Commits on Nov 21, 2012
  1. Rework our locking strategy:

    1. Eliminate trylock spins that were needlessly eating CPU cycles.
    2. Instead use a timedEvent to continue pipelined commands, which sadly
       requires an additional eventLoop-level lock.
    3. Release the client lock in debug sleep and in Lua scripts -
       the locking in Lua is only necessary around redis calls.
Commits on Nov 16, 2012
  1. Locking strategy write up

  2. More accurate benchmark numbers

  3. There is no need to waste time building key lists if we are not in

    locking_mode and are in one of the commands that always run in the main
  4. Introduce locking mode. Now most of the locking can be skipped when no

    threads are running. This should make Thredis perform at native speed
    when locking mode is off.
  5. Rename redis-server to thredis-server and change redis to thredis in a

    few places to make it less confusing when running both alongside.
  6. Fix an issue with EXEC and possibly other commands blocking on a

    writable event by using trylock in sendReplyToClient.
    Fix the MONITOR test - it was sporadically failing with ae_select
    because of command ordering.
  7. Make threadpool-size a configurable parameter with an auto option

    (default), in which case the size of the threadpool would be equal to
    the number of CPU's. (hopefully this is cross-platform)
  8. @kovyrin

    Add a configuration option slave-allow-key-expires to allow TTL-based…

    kovyrin authored committed
    … expires on the slave. This could be useful for non-readonly slaves where temporary data is created based on the replicated keys and it needs to be expired after a TTL.
  9. 2.6 rebase

Something went wrong with that request. Please try again.