diennea / blobit Goto Github PK
View Code? Open in Web Editor NEWBlobIt - a Distributed Large Object Storage
Home Page: https://blobit.org
License: Apache License 2.0
BlobIt - a Distributed Large Object Storage
Home Page: https://blobit.org
License: Apache License 2.0
We need to write an entry to the ledger before adding it to the list of active ledgers to work around a possible fault case in BookKeeper when there is no entry on the Bookie and one Bookie goes down.
See diennea/herddb#572 for more information
20-03-17-12-02-15 java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error java.util.concurrent.ExecutionException: java.lang.Exception: herddb.network.netty.NettyChannel$3@5bdb86aa: error while sending reply m
essage to PooledUnsafeDirectByteBuf(freed) while talking to null
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error java.util.concurrent.ExecutionException: java.lang.Exception: herddb.network.netty.NettyChannel$3@5bdb86aa: error while sending reply message to PooledUnsafeDi
rectByteBuf(freed) while talking to null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at magnews.gateway.archiver.Archiver.run(Archiver.java:319)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: java.lang.RuntimeException: Error java.util.concurrent.ExecutionException: java.lang.Exception: herddb.network.netty.NettyChannel$3@5bdb86aa: error while sending reply message to PooledUnsafeDirectByteBuf(freed) while talki
ng to null
at herddb.network.Channel.sendMessageWithPduReply(Channel.java:95)
at herddb.client.RoutedClientSideConnection.prepareQuery(RoutedClientSideConnection.java:347)
at herddb.client.RoutedClientSideConnection.executeScan(RoutedClientSideConnection.java:699)
at herddb.client.HDBConnection.executeScan(HDBConnection.java:345)
at herddb.jdbc.HerdDBPreparedStatement.executeQuery(HerdDBPreparedStatement.java:74)
at org.blobit.core.cluster.HerdDBMetadataStorageManager.listDeletableLedgers(HerdDBMetadataStorageManager.java:306)
at org.blobit.core.cluster.ClusterObjectManager.gcBucket(ClusterObjectManager.java:430)
at org.blobit.core.cluster.ClusterObjectManager.access$000(ClusterObjectManager.java:64)
at org.blobit.core.cluster.ClusterObjectManager$BucketHandleImpl.gc(ClusterObjectManager.java:96)
at magnews.gateway.store.blobit.BlobitMessageStore.endQueueCleanups(BlobitMessageStore.java:199)
at magnews.gateway.archiver.Archiver$QueueArchiverTask.run(Archiver.java:283)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
... 3 more
Caused by: java.lang.Exception: herddb.network.netty.NettyChannel$3@5bdb86aa: error while sending reply message to PooledUnsafeDirectByteBuf(freed)
at herddb.network.netty.NettyChannel$3.messageSent(NettyChannel.java:208)
at herddb.network.netty.NettyChannel$1.operationComplete(NettyChannel.java:142)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:533)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:114)
at io.netty.util.concurrent.PromiseCombiner.tryPromise(PromiseCombiner.java:170)
at io.netty.util.concurrent.PromiseCombiner.finish(PromiseCombiner.java:159)
at io.netty.handler.codec.MessageToMessageEncoder.writePromiseCombiner(MessageToMessageEncoder.java:139)
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:119)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708)
at io.netty.channel.AbstractChannelHandlerContext.access$1700(AbstractChannelHandlerContext.java:56)
at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1102)
at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1149)
at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1073)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:338)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more
Caused by: io.netty.channel.ExtendedClosedChannelException
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source)
We need to:
See https://github.com/diennea/herddb/pull/733/files as reference
When using 10 or more concurrent writers 2 or more writers get closed just after one insertion
We can create a layer over BlobIt in order to create a virtual file system, with these features:
We expect that one Filesystem resides on a single Bucket.
We can add one or more metadata tables in order to store directory metadata, this will ease lookups and queries
No need for ACLs, file locks or other POSIX features
Support a method on ObjectManager to write only a portion of a given byte array:
On ObjectManager:
public Future<String> put(String bucketId, byte[] data, int offset, int len);
It would be very useful an API to list named blobs, that is blobs with a custom name.
This API will use HerdDB SQL queries, so we can have an SQL-LIKE syntax.
Bucket.listObject(ObjectFilter filter, Consumer<ObjectMetadata> sink)
with filters built like ObjectFilter.nameLike("%myname%")
We will use this API on the CLI
Add license reference in pom like
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
Hello,
Im looking to use this application to upload and download packages as part of an application development.
Is this application having API's?
Is this application having CLI? if yes, please provide commands to install and use it
Is this application can be installed and run in Linux OS (Ubuntu,CentOS)?
It would be helpful, If the above information is known.
Thanks
INFO] [ERROR] /Users/enrico.olivelli/dev/blobit/target/checkout/blobit-core/src/test/java/org/blobit/core/common/NamesAPITest.java:[150,30] no suitable method found for equals(byte[],int,int,byte[],int,int)
[INFO] method java.lang.Object.equals(java.lang.Object) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(long[],long[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(int[],int[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(short[],short[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(char[],char[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(byte[],byte[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(boolean[],boolean[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(double[],double[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(float[],float[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
[INFO] method java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]) is not applicable
[INFO] (actual and formal argument lists differ in length)
In our blobit integration (In EmailSuccess.com), we encountered the exception "Attempt to write to a closed ledger" for a few seconds.
Can you help us fix this problem?
Caused by: org.blobit.core.api.ObjectManagerRuntimeException: org.blobit.core.api.ObjectManagerException: org.apache.bookkeeper.client.BKException$BKLedgerClosedException: Attempt to write to a closed ledger
at org.blobit.core.cluster.BucketWriter.lambda$writeBlob$0(BucketWriter.java:237)
at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
... 3 more
Caused by: org.blobit.core.api.ObjectManagerException: org.apache.bookkeeper.client.BKException$BKLedgerClosedException: Attempt to write to a closed ledger
... 7 more
Caused by: org.apache.bookkeeper.client.BKException$BKLedgerClosedException: Attempt to write to a closed ledger
at org.apache.bookkeeper.client.SyncCallbackUtils.finish(SyncCallbackUtils.java:83)
at org.apache.bookkeeper.client.SyncCallbackUtils$SyncAddCallback.addComplete(SyncCallbackUtils.java:251)
at org.apache.bookkeeper.client.AsyncCallback$AddCallback.addCompleteWithLatency(AsyncCallback.java:91)
at org.apache.bookkeeper.client.LedgerHandleAdv$1.safeRun(LedgerHandleAdv.java:249)
at org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more
It would be useful for testing a new CLI command that given a BLOB it describes it:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.