- 12 2月, 2014 2 次提交
-
-
由 antirez 提交于
-
由 antirez 提交于
A system similar to the RDB write error handling is used, in which when we can't write to the AOF file, writes are no longer accepted until we are able to write again. For fsync == always we still abort on errors since there is currently no easy way to avoid replying with success to the user otherwise, and this would violate the contract with the user of only acknowledging data already secured on disk.
-
- 08 2月, 2014 1 次提交
-
-
由 antirez 提交于
-
- 07 2月, 2014 1 次提交
-
-
由 antirez 提交于
-
- 05 2月, 2014 1 次提交
-
-
由 antirez 提交于
Sometime an osx master with a Linux server over a slow link caused a strange error where osx called the writable function for the socket but actually apparently there was no room in the socket buffer to accept the write: write(2) call returned an EAGAIN error, that was not checked, so we considered write(2) == 0 always as a connection reset, which was unfortunate since the bulk transfer has to start again. Also more errors are logged with the WARNING level in the same code path now.
-
- 04 2月, 2014 1 次提交
-
-
由 antirez 提交于
-
- 03 2月, 2014 4 次提交
-
-
由 antirez 提交于
The define is now used in other parts of Redis 2.8 tree instead of long long. A nice side effect is that now 2.8 and unstable sentinel.c files are identical as it should be.
-
由 antirez 提交于
Keys expiring in the middle of the execution of Lua scripts are to create inconsistencies in masters and / or AOF files. See the following example: if redis.call("exists",KEYS[1]) == 1 then redis.call("incr","mycounter") end if redis.call("exists",KEYS[1]) == 1 then return redis.call("incr","mycounter") end The script executes two times the same *if key exists then incrementcounter* logic. However the two executions will work differently in the master and the slaves, provided some unlucky timing happens. In the master the first time the key may still exist, while the second time the key may no longer exist. This will result in the key incremented just one time. However as a side effect the master will generate a synthetic `DEL` command in the replication channel in order to force the slaves to expire the key (given that key expiration is master-driven). When the same script will run in the slave, the key will no longer be there, so the script will not increment the key. The key idea used to implement the expire-at-first-lookup semantics was provided by Marc Gravell.
-
由 antirez 提交于
-
由 antirez 提交于
server.lua_time_start is expressed in milliseconds. Use mstime_t instead of long long, and populate it with mstime() instead of ustime()/1000. Functionally identical but more natural.
-
- 31 1月, 2014 3 次提交
-
-
由 antirez 提交于
This is especially important since we already have a concept of backlog (the replication backlog).
-
由 Nenad Merdanovic 提交于
In high RPS environments, the default listen backlog is not sufficient, so giving users the power to configure it is the right approach, especially since it requires only minor modifications to the code.
-
由 antirez 提交于
This fixes issue #1530.
-
- 28 1月, 2014 2 次提交
- 25 1月, 2014 1 次提交
-
-
由 antirez 提交于
-
- 22 1月, 2014 3 次提交
-
-
由 antirez 提交于
-
由 antirez 提交于
-
由 antirez 提交于
Incremental flushing in rio.c is only used to avoid huge kernel buffers synched to slow disks creating big latency spikes, so this fix has no durability implications, however it is certainly more correct to make sure that the FILE buffers are flushed to the kernel before calling fsync on the file descriptor. Thanks to Li Shao Kai for reporting this issue in the Redis mailing list.
-
- 14 1月, 2014 3 次提交
- 13 1月, 2014 12 次提交
-
-
由 antirez 提交于
-
由 antirez 提交于
The new command allows to change master-specific configurations at runtime. All the settable parameters can be retrivied via the SENTINEL MASTER command, so there is no equivalent "GET" command.
-
由 antirez 提交于
-
由 antirez 提交于
The command totally removes a monitored master.
-
由 antirez 提交于
The claim about unlinking the instance from the connected hash tables was the opposite of the reality. Also the current actual behavior is safer in most cases, so it is better to manually unlink when needed.
-
由 antirez 提交于
-
由 antirez 提交于
-
由 antirez 提交于
It allows to add new masters to monitor at runtime.
-
由 antirez 提交于
The new function is used when we want to normalize an IP address without performing a DNS lookup if the string to resolve is not a valid IP. This is useful every time only IPs are valid inputs or when we want to skip DNS resolution that is slow during runtime operations if we are required to block.
-
由 antirez 提交于
With SENTINEL MASTERS it was already possible to list all the configured masters, but not a specific one.
-
由 antirez 提交于
Note: the auth password with the master is voluntarily not exposed.
-
由 antirez 提交于
-
- 09 1月, 2014 2 次提交
- 08 1月, 2014 2 次提交
-
-
由 antirez 提交于
Masters not understanding REPLCONF ACK will reply with errors to our requests causing a number of possible issues. This commit detects a global replication offest set to -1 at the end of the replication, and marks the client representing the master with the REDIS_PRE_PSYNC flag. Note that this flag was called REDIS_PRE_PSYNC_SLAVE but now it is just REDIS_PRE_PSYNC as it is used for both slaves and masters starting with this commit. This commit fixes issue #1488.
-
由 antirez 提交于
-
- 26 12月, 2013 2 次提交