Comments (9)
Also related is InvaliDB.
from node-reactive-postgres.
I've read (parts of some of) the papers on the InvaliDB solution (eg. http://www.vldb.org/pvldb/vol13/p3032-wingerath.pdf), and so far it's the most complete solution I've seen for the problem so far.
Unfortunately, it is closed-source, so is not directly usable outside of the Baqend service; that said, the papers go into a good amount of detail on the design of the system, so it's still a helpful resource for those attempting to build an equivalent open-source solution.
from node-reactive-postgres.
Attaching the paper describing above code.
QuocVinh2016_Article_SynchronousIncrementalUpdateOf.pdf
Also see:
from node-reactive-postgres.
Dear all,
Unfortunately i don't understand node.js. Anyway i think a MS-notification-service-like service for PostgreSQL will be very useful. If there is similar service, you can implement ASYNchronous programming to dramatically improve the performance of the system. We have naive thing like that for C# here: http://it.ued.udn.vn/chuyen-giao-cong-nghe/498-2015-08-03-17-51-21 (http://it.ued.udn.vn/myprojects/pgNotiServ/postgresql-notification-2014.rar).
from node-reactive-postgres.
Interesting. It really looks like we have similar interests. :-) Yes, node.js is chosen because it is great at asynchronous programming. So I would love to implement something like this in node.
from node-reactive-postgres.
An interesting read is how they do this in Hasura. Some notes:
- They also see this similar to materialized view maintenance.
- They currently re-run queries and do not do do incremental updates (same as this package currently).
- They do not use triggers (like this package can do) but use regular refresh interval.
- They do some additional things to batch queries together. Like merge same query with different parameters (like user ID) together. This package does not do any such optimizations.
So a takeaway could be that if you optimize query ru-running enough, maybe incremental updates are not really necessary?
from node-reactive-postgres.
Some other related projects:
- https://www.graphile.org/postgraphile/live-queries/ (one of many projects using replication stream of changes, this one re-runs queries based on changes detected from replication change stream)
- https://github.com/supabase/realtime (using replication stream of changes to broadcast them to clients)
- https://rxdb.info/query-change-detection.html (uses replication stream of changes but knows how to map that to updates to queries)
from node-reactive-postgres.
Noria is a caching layer where the main design is in fact incremental and efficient updating of materialized views. Very similar to what this issue is about.
from node-reactive-postgres.
event-reduce optimizes repeating queries.
from node-reactive-postgres.
Related Issues (18)
- Memory leak
- mode: 'full' is not implemented HOT 1
- Simple example of streaming data to client? HOT 4
- error: syntax error at or near "REFERENCING"
- Add query parameters support HOT 3
- having json fields in tables causing "could not identify an equality operator for type json" HOT 3
- async error error: permission denied to create extension "hstore" HOT 1
- Manager won't start HOT 3
- Update logic to detect if a source table has changed
- Deadlock or very long time to exit HOT 1
- Is it possible to get the initial SELECT response as an ARRAY of rows? HOT 5
- Response latency is suprisingly high in comparison with other projects HOT 1
- Back off if database is slow in responding
- Convert tests script into proper tests
- Allow multi-column unique index as well
- Make it optional to compute which columns changed
- In changed mode, fetch only columns which changed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-reactive-postgres.