README.md in pg_cache_key-0.1.0 vs README.md in pg_cache_key-0.1.1
- old
+ new
@@ -1,20 +1,37 @@
-# PgCacheKey
-Attention! This gem intend to use only with PostrgreSQL, so it will not work other ways, BUT if your database have some
+#Attention!
+
+This gem intend to use only with PostrgreSQL >= 9.1, so it will not work other ways, BUT if your database have some
aggregation function you can get idea and create your own version of it.
+# Внимашка (рус)
+
+Данный gem работает только с PostrgreSQL >= 9.1, НО если у вас есть потребность в аналоге для другой БД вы
+легко можете, скопировав код, поменять все что нужно.
+
+# PgCacheKey
Simple replace for cache_key for collections to make it very fast.
-It's optimizing code near fragment_cache_key, replacing collection instatination with DB aggregation.
+It's optimizing code near fragment_cache_key, replacing collection and it's includes instatination with DB aggregation.
It respects all aspects of collection properties including order, limits, offsets and so.
Also comparing to rails 5 solution for collection cache key this one will not need to throw away all sub-collection caches
-when any elements of the whole collection updates.
+when any elements of the table updates.
+Rem: I mention my solution in https://github.com/rails/rails/issues/26330
+# PgCacheKey (рус)
+
+Назначение данного gem'а - ускорение генрации ключей кеша коллекций путем переноса генерации на плечи БД, что экономит на инстантинации коллекции и всех ее зависимостей. Особенно выгодно может быть использование в рельсах до 4.2 включительно, потому что в 4-х рельсах для генерации ключей коллекции она превращается в массив, т.е. инстанцируется, включая все связные коллекции.
+
+PgCacheKey зависит только от подмножества используемых записей и их порядка, поэтому в отличие от collection_cache_key в 5-х
+рельсах кеши всех подколлекций не летят в топку при изменении одного элемента в таблице.
+
+Rem: Данное решение было упомянуто мной в https://github.com/rails/rails/issues/26330
+
# Benchmark
-the numbers I personaly get while comparing with rails 4.2 implementation of cache_key are:
+the numbers I personally get while comparing with rails 4.2 implementation of cache_key are:
Complex model
without includes: 10 items in collection ~ x1.3 faster, 20 ~ 1.55, 50 ~ x2, 1000 ~ x15
with includes: 10 items in collection ~ x5+ faster, 20 ~ x5-6+, 50 ~ x8.5, 1000 ~ x35
@@ -25,12 +42,14 @@
with includes: 10 items in collection ~ x3.6 faster, 20 ~ x4, 50 ~ x5.6, 1000 ~ x32
Of course this is not the numbers for whole page rendering, but it's noticeable.
-Try it yourself.
+One of my real page goes from 0.8+ sec, for largest available pagination, to 0.6 sec per page
+To get your numbers try it yourself!
+
## Installation
Add this line to your application's Gemfile:
```ruby
@@ -44,11 +63,14 @@
Or install it yourself as:
$ gem install pg_cache_key
## Usage
+It works out of the box.
-It works out of the box for system uses pg.
+## Как использовать
+
+По идее работает само из коробки, но если будут траблы - пишите.
## Development
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.