Comments (3)
We fixed half of the issue by:
1 - removing the calls that were sensitive to latency-- entitlement IMM events-- but not using notificationQ.
2 - Create a dispatcher to fetch ready notifications across all queues and also prefetching a few notifications at once.
As a result we don't have to be aggressive in the polling and point 1 becomes less relevant.
Ordering still need to be addressed at some point.
from killbill.
We revisited that task-- for now we will not do the multiple locking strategy described above). Instead:
- Extract Bus+ NotificationQ into new killbill-common repo
- Fix Bus intensive queries by
2.1 Dispatch from the post itself-- from context of a different thread-- instaed of polling for event on disk
2.2 Still insert row on disk to cover failure scenarii and also for debugging purpose
2.3 Move Processed row into different table to keep main table with a short number of rows
2.4 Add a background polling mechanism for rows that were not processed - Revisit abstractions for:
3.1 Dealing with internal/external bus
3.2 Allow to plug KB lifecycle and initialize/start bus at the right time - Query optimization (remove NULL processing_owner to allow for better indexing)
- Design plugin service for notificationQ
from killbill.
The code has been extracted under killbill-commons:
- Bus and notificationQ code has been abstracted (we can create multiple bus'es and notificationsQ)
- The performance issue with the bus has been addressed by keeping in in memory queue and doing select using record_id
- The growing tables has been addressed by creating history tables.
This is all we will do for now. Closing the bug
from killbill.
Related Issues (20)
- KillBill KAUI keeps crashing when I attempt to install a new plugin HOT 16
- Incorrect start and end dates in an invoice
- Address Spotbugs errors HOT 1
- Incorrect invoicing with versioned catalogs and multi-phase plans HOT 1
- Missing Child invoices on the Parent account
- Plan#effectiveDateForExistingSubscriptions does not work for weekly plans HOT 1
- Transient issues with DB initialization when starting KB HOT 2
- Invoice list not showing the correct invoice amounts both through Kill Bill API and Kaui HOT 1
- Investigate possible issue with BUNDLE billing alignment and ANNUAL plans HOT 7
- Incorrect invoicing with versioned catalogs in some situations
- Allow usage plugins to access plugin properties HOT 1
- Incorrect invoicing with versioned catalogs for annual plans
- Add resiliency around global account lock
- Fix test failure on Windows HOT 1
- Invoice Items table amount, rate numeric overflow HOT 1
- Installation error on Debian HOT 2
- Accounts getting parked after invoice item refund HOT 2
- Issue with default value of updated_date column in the invoice_tracking_ids table HOT 3
- Incomplete http response from plugin
- "Unable to retrieve Kill Bill version" when upgrading from 0.22.31 to 0.24.4 (in docker) HOT 2
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 killbill.