Store can now handle multiple concurrent Redis requests by using EM Synchrony's connection pools. Previously on very high loads I noticed a small percentage (but significant) of requests that could error out by receiving an incorrect redis protocol (got a FIXNUM when expecting Array, for example on an Store.db.lrange). This was quickly identified as a concurrency problem, and I started researching. Turned out while being thread-safe you can't really share a single connection with multiple fibers with redis-rb, so I was forced to use a connection pool. This fixed it perfectly and we're now scaling.
Store can now handle multiple concurrent Redis requests by using EM Synchrony's connection pools. Previously on very high loads I noticed a small percentage (but significant) of requests that could error out by receiving an incorrect redis protocol (got a FIXNUM when expecting Array, for example on an Store.db.lrange). This was quickly identified as a concurrency problem, and I started researching. Turned out while being thread-safe you can't really share a single connection with multiple fibers with redis-rb, so I was forced to use a connection pool. This fixed it perfectly and we're now scaling.

mindware/prgov_gmq_cap_api,mindware/prgov_gmq_cap_api,mindware/prgov_gmq_cap_api