Comments (5)
it looks like an i/o exception would bounce out to the handler and possibly disconnect the client. i guess we should catch exceptions when writing the journal, and kill the server if they happen, so that queues don't get into this weird state if the disk fills. does that sound okay?
from kestrel.
Hmm, possibly. The best approach, I suppose, would be to rollback journal operations, but it seems to me that simply isn't possible with the current system. Another approach is to place I/O operations ahead of in-memory data structure operations to raise I/O exceptions before modifying the queue, transaction table, or other PersistentQueue data. That should keep the PersistentQueue in a consistent state. Yet another approach is to close and reopen the queue on I/O Exceptions, however this may seemingly result in a huge number of journal reads as the journals are replayed. Perhaps this is just something to be aware of and need not be addressed?
from kestrel.
Thoughts?
from kestrel.
i think you're right that it shouldn't try to continue as if nothing happened.
i'm leaning toward catching i/o exceptions inside the journal code, and writing a fatal log message and calling system.exit. it would be an unambiguous signal that something has gone wrong with the machine, and i think if the machine is hosed, kestrel shouldn't try to paste over it.
from kestrel.
Okay, that does seem reasonable. One problem is that it might adversely affect folks using Kestrel as a library since the proposed fix would shutdown the JVM.
from kestrel.
Related Issues (20)
- Journal files not erased as they roll over HOT 4
- ThriftHandlerSpec fails. HOT 3
- Kestrel 2.9.2 doesn't initialize properly in Java HOT 4
- setting up fanout queues in Scala config files
- can not build from src. HOT 2
- Multiple open transactions on a connection HOT 1
- Scala 2.10 release? HOT 3
- List all queue names via thrift
- Archived Journal Files Do Not Compact as Documented HOT 2
- Kestrel is neither storing nor giving back the flags property value.
- Reliable Writes HOT 1
- Exception during startup (NumberFormatException) HOT 1
- still active HOT 5
- Freshly installed kestrel server fails with java.lang.IndexOutOfBoundsException HOT 1
- kestrel-master build fails in out of the box fresh build run(sbt launcher version 0.13.1 & Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65).
- Is this project still active?
- Any interest in a community fork of kestrel? HOT 6
- Read-behind gets stuck (None.get)
- Any update on releasing the internal Twitter changes? HOT 1
- download page is 404 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 kestrel.