• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Whats the theoretical thread size limit?

aphex

Moderator<br>All Things Apple
Moderator
How many characters (or lines) of text can you have in one reply...??

Until the Mean mod comes in here and locks it.

Watchful Mod
 
aphexII, you must really be bored 🙂

Interesting question nevertheless.
 
Just waiting for someone to keep pasting the same thing over and over until it cannot be pasted anymore 😛
 


<< aphexII, you must really be bored 🙂

Interesting question nevertheless.
>>


Why not test it out?
 


<< How many characters (or lines) of text can you have in one reply...?? >>



It dependeds on the size they set up to hold in their database, for a text field 64k perhaps? their data dictionary could tell us exactly.
 
I don't think there's a limit as I've seen some really huge threads...though I think it would be really dumb to test it...
 


<< I don't think there's a limit as I've seen some really huge threads...though I think it would be really dumb to test it... >>


awww let Lakersgo give it a shot...he hasn't been banned YET, but i am sure he has a couple strikes. 😀
 
testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing testing

+1


nope, couldn't reach the theoretical limit in my lab. try the TX or Cali labs.

of course, I hear the Canadian threads only test to 80% of a US post.
😛 😛 😛
 


<< I don't think there's a limit as I've seen some really huge threads...though I think it would be really dumb to test it... >>


aphexII, what are you asking? Do you want to know the max thread size (as in number of replies) or the max reply size (as in number of characters)? 2 entirely different kettles of fish.

A thread is nothing more than a record in a table with a primary key and sequence number. If you look at the url of the thread you'll see a "threadid" and "messid" - or primary key and sequence number, respectively. As far as maximum number of replies. Well, each reply would make another record in the table. I've seen Oracle tables with nearly 2 million records. The maximum number of records depends on a number of things like disk/memory space, table space size, and even rollback segment size.

The number of characters per reply depends on how the "reply" column in the table was defined. A column of type VARCHAR2 can only hold 4,000 characters, and CHAR only 2,000. I've seen some large replies, so it's safe to assume this wouldn't be enough. That would leave the LONG datatype which can hold 2 gigabytes worth of characters (one character is one byte) in Oracle7 and 4 gigabytes of characters in Oracle8i and newer. Either Zuni uses VARCHAR2 and parses out the replies into several columns or he uses LONG - which would mean 4 billion characters.

This all assumes he's using Oracle. Which I pray he is.

I'd love to see you guys try to overflow that. 😀 🙂
 
I mean in actual size of a single post... Not number of replies...

I know ive seen a few threads here that scroll for MANY pages down, i was just curious what a single post's limit was...
 


<< lets not let this get outta hand.. talk about server bandwidth hog.. >>



haha well i didnt mean for someone to prove it... i was just curious...
 


<< I mean in actual size of a single post... Not number of replies... >>


Did you read my entire post? Read the second paragraph.

I actually take the time to make an intelligent reply (one of few) and its all for naught. 🙁
 


<<

<< I mean in actual size of a single post... Not number of replies... >>


Did you read my entire post? Read the second paragraph.

I actually take the time to make an intelligent reply (one of few) and its all for naught. 🙁
>>



Just did... Wow... Could it really be that long???
 


<< Just did... Wow... Could it really be that long??? >>


Yep. If they're using Microsoft SQL Server instead of Oracle, then they are probably using the TEXT datatype which can hold 2^31 - 1 (2,147,483,647) characters (link)
 


<< well i have some free time......wha'd ya say we find out? >>



man, youd kill the non-subscribers 😀
 
I wonder why this hasn't been locked yet? Well, I'll give a reason to lock it...

Here's my Java program I'm writing...

import java.io.*;

public class MagicSquareTester
{
public boolean isMagic(int arr[][])
{
int sums[] = new int[8];

for (int k = 0; k < 3; k++)
sums[0] += arr[k][0];
int magicSum = sums[0];

for (int k = 0; k < 3; k++)
sums[1] += arr[k][1];
if (magicSum != sums[1])
return false;

for (int k = 0; k < 3; k++)
sums[2] += arr[k][2];
if (magicSum != sums[2])
return false;

for (int k = 0; k < 3; k++)
sums[3] += arr[0][k];
if (magicSum != sums[3])
return false;

for (int k = 0; k < 3; k++)
sums[4] += arr[1][k];
if (magicSum != sums[4])
return false;

for (int k = 0; k < 3; k++)
sums[5] += arr[2][k];
if (magicSum != sums[5])
return false;

for (int k = 0; k < 3; k++)
sums[6] += arr[k][k];
if (magicSum != sums[6])
return false;

for (int k = 0; k < 3; k++)
sums[7] += arr[k][3 - k - 1];
if (magicSum != sums[7])
return false;

return true;

}

public void print(int arr[][])
{
for (int j = 0; j < arr.length; j++)
{
for (int k = 0; k < arr[j].length; k++)
System.out.print(arr[j][k] + " ");
System.out.println();
}
}

public static void main(String argv[])
{
int magic[][] = { {6,7,2}, {1,5,9}, {8,3,4} };
int notMagic[][] = { {1,7,2}, {6,5,9}, {3,8,4} };

MagicSquareTester tester = new MagicSquareTester();
tester.print(magic);
if ( tester.isMagic(magic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
tester.print(notMagic);
if ( tester.isMagic(notMagic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
}

}

*******************************************************************

I wonder why this hasn't been locked yet? Well, I'll give a reason to lock it...

Here's my Java program I'm writing...

import java.io.*;

public class MagicSquareTester
{
public boolean isMagic(int arr[][])
{
int sums[] = new int[8];

for (int k = 0; k < 3; k++)
sums[0] += arr[k][0];
int magicSum = sums[0];

for (int k = 0; k < 3; k++)
sums[1] += arr[k][1];
if (magicSum != sums[1])
return false;

for (int k = 0; k < 3; k++)
sums[2] += arr[k][2];
if (magicSum != sums[2])
return false;

for (int k = 0; k < 3; k++)
sums[3] += arr[0][k];
if (magicSum != sums[3])
return false;

for (int k = 0; k < 3; k++)
sums[4] += arr[1][k];
if (magicSum != sums[4])
return false;

for (int k = 0; k < 3; k++)
sums[5] += arr[2][k];
if (magicSum != sums[5])
return false;

for (int k = 0; k < 3; k++)
sums[6] += arr[k][k];
if (magicSum != sums[6])
return false;

for (int k = 0; k < 3; k++)
sums[7] += arr[k][3 - k - 1];
if (magicSum != sums[7])
return false;

return true;

}

public void print(int arr[][])
{
for (int j = 0; j < arr.length; j++)
{
for (int k = 0; k < arr[j].length; k++)
System.out.print(arr[j][k] + " ");
System.out.println();
}
}

public static void main(String argv[])
{
int magic[][] = { {6,7,2}, {1,5,9}, {8,3,4} };
int notMagic[][] = { {1,7,2}, {6,5,9}, {3,8,4} };

MagicSquareTester tester = new MagicSquareTester();
tester.print(magic);
if ( tester.isMagic(magic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
tester.print(notMagic);
if ( tester.isMagic(notMagic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
}

}

*******************************************************************

I wonder why this hasn't been locked yet? Well, I'll give a reason to lock it...

Here's my Java program I'm writing...

import java.io.*;

public class MagicSquareTester
{
public boolean isMagic(int arr[][])
{
int sums[] = new int[8];

for (int k = 0; k < 3; k++)
sums[0] += arr[k][0];
int magicSum = sums[0];

for (int k = 0; k < 3; k++)
sums[1] += arr[k][1];
if (magicSum != sums[1])
return false;

for (int k = 0; k < 3; k++)
sums[2] += arr[k][2];
if (magicSum != sums[2])
return false;

for (int k = 0; k < 3; k++)
sums[3] += arr[0][k];
if (magicSum != sums[3])
return false;

for (int k = 0; k < 3; k++)
sums[4] += arr[1][k];
if (magicSum != sums[4])
return false;

for (int k = 0; k < 3; k++)
sums[5] += arr[2][k];
if (magicSum != sums[5])
return false;

for (int k = 0; k < 3; k++)
sums[6] += arr[k][k];
if (magicSum != sums[6])
return false;

for (int k = 0; k < 3; k++)
sums[7] += arr[k][3 - k - 1];
if (magicSum != sums[7])
return false;

return true;

}

public void print(int arr[][])
{
for (int j = 0; j < arr.length; j++)
{
for (int k = 0; k < arr[j].length; k++)
System.out.print(arr[j][k] + " ");
System.out.println();
}
}

public static void main(String argv[])
{
int magic[][] = { {6,7,2}, {1,5,9}, {8,3,4} };
int notMagic[][] = { {1,7,2}, {6,5,9}, {3,8,4} };

MagicSquareTester tester = new MagicSquareTester();
tester.print(magic);
if ( tester.isMagic(magic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
tester.print(notMagic);
if ( tester.isMagic(notMagic))
System.out.println("This is a magic square");
else
System.out.println("This is NOT a magic square");
}

}

*******************************************************************

EDIT: Due to popular request, I have modified my Java program. It is now complete. yes, it is worthless, but I guess some people just wanted to see the complete thing.
 


<< man, youd kill the non-subscribers 😀 >>


There's probably only a single database (possibly 2 - the second for the archives) that all the forums have to access. 2 different databases, one for non-subscribers and one for subscribers, would be a serious resource hog to keep in sync with each other.

A 4 gigabyte text string wouldn't cause too much damage, since it would take you forever to upload all of it to the servers. Your connection would probably time out anyway. If somehow you could send it all instantaneously, you'd overload/crash the entire forum, or at least bring it to a grinding halt while it tries to commit the transaction.

Edit: XZeroII, don't be an ass. We were having a somewhat legitimate conversation. Don't thread crap. Please, edit/remove your post.
 
Back
Top